From 041b684d26d095aa0ee1bce139be04b56352282d Mon Sep 17 00:00:00 2001 From: Boblet Date: Fri, 13 May 2022 11:59:35 +0200 Subject: [PATCH 01/80] condenser and cooling tower block tooltip --- .../hbm/blocks/machine/MachineCondenser.java | 27 ++++++++++- .../hbm/blocks/machine/MachineTowerLarge.java | 32 ++++++++++++- .../hbm/blocks/machine/MachineTowerSmall.java | 31 +++++++++++- src/main/java/com/hbm/items/ModItems.java | 20 +++++++- .../java/com/hbm/items/armor/ArmorDiesel.java | 47 +++++++++++++++++++ .../TileEntityMachineAssemblerBase.java | 34 ++++++++++++++ .../machine/TileEntityMachineChemfac.java | 7 --- 7 files changed, 187 insertions(+), 11 deletions(-) create mode 100644 src/main/java/com/hbm/items/armor/ArmorDiesel.java create mode 100644 src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemblerBase.java diff --git a/src/main/java/com/hbm/blocks/machine/MachineCondenser.java b/src/main/java/com/hbm/blocks/machine/MachineCondenser.java index c174e28e2..b31340f09 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineCondenser.java +++ b/src/main/java/com/hbm/blocks/machine/MachineCondenser.java @@ -1,13 +1,20 @@ package com.hbm.blocks.machine; +import java.util.ArrayList; +import java.util.List; + +import com.hbm.blocks.ILookOverlay; import com.hbm.tileentity.machine.TileEntityCondenser; +import com.hbm.util.I18nUtil; import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; +import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; -public class MachineCondenser extends BlockContainer { +public class MachineCondenser extends BlockContainer implements ILookOverlay { public MachineCondenser(Material mat) { super(mat); @@ -17,4 +24,22 @@ public class MachineCondenser extends BlockContainer { public TileEntity createNewTileEntity(World world, int meta) { return new TileEntityCondenser(); } + + @Override + public void printHook(Pre event, World world, int x, int y, int z) { + + TileEntity te = world.getTileEntity(x, y, z); + + if(!(te instanceof TileEntityCondenser)) + return; + + TileEntityCondenser condenser = (TileEntityCondenser) te; + + List text = new ArrayList(); + + for(int i = 0; i < condenser.tanks.length; i++) + text.add((i < 1 ? (EnumChatFormatting.GREEN + "-> ") : (EnumChatFormatting.RED + "<- ")) + EnumChatFormatting.RESET + I18nUtil.resolveKey("hbmfluid." + condenser.tanks[i].getTankType().getName().toLowerCase()) + ": " + condenser.tanks[i].getFill() + "/" + condenser.tanks[i].getMaxFill() + "mB"); + + ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); + } } diff --git a/src/main/java/com/hbm/blocks/machine/MachineTowerLarge.java b/src/main/java/com/hbm/blocks/machine/MachineTowerLarge.java index d393dc138..6cce086b8 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineTowerLarge.java +++ b/src/main/java/com/hbm/blocks/machine/MachineTowerLarge.java @@ -1,15 +1,23 @@ package com.hbm.blocks.machine; +import java.util.ArrayList; +import java.util.List; + import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ILookOverlay; import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.TileEntityTowerLarge; +import com.hbm.tileentity.machine.TileEntityTowerSmall; +import com.hbm.util.I18nUtil; import net.minecraft.block.material.Material; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; +import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; import net.minecraftforge.common.util.ForgeDirection; -public class MachineTowerLarge extends BlockDummyable { +public class MachineTowerLarge extends BlockDummyable implements ILookOverlay { public MachineTowerLarge(Material mat) { super(mat); @@ -52,4 +60,26 @@ public class MachineTowerLarge extends BlockDummyable { this.makeExtra(world, x + dr2.offsetX * 4 + rot.offsetX * -3, y, z + dr2.offsetZ * 4 + rot.offsetZ * -3); } } + + @Override + public void printHook(Pre event, World world, int x, int y, int z) { + int[] pos = this.findCore(world, x, y, z); + + if(pos == null) + return; + + TileEntity te = world.getTileEntity(pos[0], pos[1], pos[2]); + + if(!(te instanceof TileEntityTowerSmall)) + return; + + TileEntityTowerSmall tower = (TileEntityTowerSmall) te; + + List text = new ArrayList(); + + for(int i = 0; i < tower.tanks.length; i++) + text.add((i < 1 ? (EnumChatFormatting.GREEN + "-> ") : (EnumChatFormatting.RED + "<- ")) + EnumChatFormatting.RESET + I18nUtil.resolveKey("hbmfluid." + tower.tanks[i].getTankType().getName().toLowerCase()) + ": " + tower.tanks[i].getFill() + "/" + tower.tanks[i].getMaxFill() + "mB"); + + ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); + } } diff --git a/src/main/java/com/hbm/blocks/machine/MachineTowerSmall.java b/src/main/java/com/hbm/blocks/machine/MachineTowerSmall.java index 42b4d5af7..ac1dd989e 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineTowerSmall.java +++ b/src/main/java/com/hbm/blocks/machine/MachineTowerSmall.java @@ -1,15 +1,22 @@ package com.hbm.blocks.machine; +import java.util.ArrayList; +import java.util.List; + import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ILookOverlay; import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.TileEntityTowerSmall; +import com.hbm.util.I18nUtil; import net.minecraft.block.material.Material; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; +import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; import net.minecraftforge.common.util.ForgeDirection; -public class MachineTowerSmall extends BlockDummyable { +public class MachineTowerSmall extends BlockDummyable implements ILookOverlay { public MachineTowerSmall(Material mat) { super(mat); @@ -49,4 +56,26 @@ public class MachineTowerSmall extends BlockDummyable { this.makeExtra(world, x + dr2.offsetX * 2, y, z + dr2.offsetZ * 2); } } + + @Override + public void printHook(Pre event, World world, int x, int y, int z) { + int[] pos = this.findCore(world, x, y, z); + + if(pos == null) + return; + + TileEntity te = world.getTileEntity(pos[0], pos[1], pos[2]); + + if(!(te instanceof TileEntityTowerSmall)) + return; + + TileEntityTowerSmall tower = (TileEntityTowerSmall) te; + + List text = new ArrayList(); + + for(int i = 0; i < tower.tanks.length; i++) + text.add((i < 1 ? (EnumChatFormatting.GREEN + "-> ") : (EnumChatFormatting.RED + "<- ")) + EnumChatFormatting.RESET + I18nUtil.resolveKey("hbmfluid." + tower.tanks[i].getTankType().getName().toLowerCase()) + ": " + tower.tanks[i].getFill() + "/" + tower.tanks[i].getMaxFill() + "mB"); + + ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); + } } diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index c3a51b593..7fcdb262d 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -1980,6 +1980,10 @@ public class ModItems { public static Item steamsuit_plate; public static Item steamsuit_legs; public static Item steamsuit_boots; + public static Item dieselsuit_helmet; + public static Item dieselsuit_plate; + public static Item dieselsuit_legs; + public static Item dieselsuit_boots; public static Item chainsaw; @@ -4940,7 +4944,7 @@ public class ModItems { t45_plate = new ArmorT45(aMatT45, 2, 1, 1000000, 10000, 1000, 5).cloneStats((ArmorFSB) t45_helmet).setUnlocalizedName("t45_plate").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":t45_plate"); t45_legs = new ArmorT45(aMatT45, 2, 2, 1000000, 10000, 1000, 5).cloneStats((ArmorFSB) t45_helmet).setUnlocalizedName("t45_legs").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":t45_legs"); t45_boots = new ArmorT45(aMatT45, 2, 3, 1000000, 10000, 1000, 5).cloneStats((ArmorFSB) t45_helmet).setUnlocalizedName("t45_boots").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":t45_boots"); - + ArmorMaterial aMatDesh = EnumHelper.addArmorMaterial("HBM_DESH", 150, new int[] { 3, 8, 6, 3 }, 0); aMatDesh.customCraftingMaterial = ModItems.ingot_desh; steamsuit_helmet = new ArmorDesh(aMatDesh, 2, 0, RefStrings.MODID + ":textures/armor/starmetal_1.png", Fluids.STEAM, 360000, 500, 50, 1).setThreshold(5F).setMod(0.8F) @@ -4955,6 +4959,20 @@ public class ModItems { steamsuit_plate = new ArmorDesh(aMatDesh, 2, 1, RefStrings.MODID + ":textures/armor/starmetal_1.png", Fluids.STEAM, 360000, 500, 50, 1).cloneStats((ArmorFSB) steamsuit_helmet).setUnlocalizedName("steamsuit_plate").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":steamsuit_plate"); steamsuit_legs = new ArmorDesh(aMatDesh, 2, 2, RefStrings.MODID + ":textures/armor/starmetal_2.png", Fluids.STEAM, 360000, 500, 50, 1).cloneStats((ArmorFSB) steamsuit_helmet).setUnlocalizedName("steamsuit_legs").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":steamsuit_legs"); steamsuit_boots = new ArmorDesh(aMatDesh, 2, 3, RefStrings.MODID + ":textures/armor/starmetal_1.png", Fluids.STEAM, 360000, 500, 50, 1).cloneStats((ArmorFSB) steamsuit_helmet).setUnlocalizedName("steamsuit_boots").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":steamsuit_boots"); + + ArmorMaterial aMatDiesel = EnumHelper.addArmorMaterial("HBM_BNUUY", 150, new int[] { 3, 8, 6, 3 }, 0); + aMatDiesel.customCraftingMaterial = ModItems.plate_copper; + dieselsuit_helmet = new ArmorDiesel(aMatDiesel, 2, 0, RefStrings.MODID + ":textures/armor/starmetal_1.png", Fluids.DIESEL, 360000, 500, 50, 1).setThreshold(5F).setMod(0.8F) + .setHasHardLanding(true) + .addEffect(new PotionEffect(Potion.digSpeed.id, 20, 4)) + .setBlastProtection(0.5F) + .addResistance("monoxide", 0F) + .addResistance("fall", 0) + .hides(EnumPlayerPart.HAT) + .setUnlocalizedName("dieselsuit_helmet").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":dieselsuit_helmet"); + dieselsuit_plate = new ArmorDiesel(aMatDiesel, 2, 1, RefStrings.MODID + ":textures/armor/starmetal_1.png", Fluids.DIESEL, 360000, 500, 50, 1).cloneStats((ArmorFSB) dieselsuit_helmet).setUnlocalizedName("dieselsuit_plate").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":dieselsuit_plate"); + dieselsuit_legs = new ArmorDiesel(aMatDiesel, 2, 2, RefStrings.MODID + ":textures/armor/starmetal_2.png", Fluids.DIESEL, 360000, 500, 50, 1).cloneStats((ArmorFSB) dieselsuit_helmet).setUnlocalizedName("dieselsuit_legs").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":dieselsuit_legs"); + dieselsuit_boots = new ArmorDiesel(aMatDiesel, 2, 3, RefStrings.MODID + ":textures/armor/starmetal_1.png", Fluids.DIESEL, 360000, 500, 50, 1).cloneStats((ArmorFSB) dieselsuit_helmet).setUnlocalizedName("dieselsuit_boots").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":dieselsuit_boots"); ArmorMaterial aMatAJR = EnumHelper.addArmorMaterial("HBM_T45AJR", 150, new int[] { 3, 8, 6, 3 }, 100); aMatAJR.customCraftingMaterial = ModItems.plate_armor_ajr; diff --git a/src/main/java/com/hbm/items/armor/ArmorDiesel.java b/src/main/java/com/hbm/items/armor/ArmorDiesel.java new file mode 100644 index 000000000..46aa0bb0f --- /dev/null +++ b/src/main/java/com/hbm/items/armor/ArmorDiesel.java @@ -0,0 +1,47 @@ +package com.hbm.items.armor; + +import com.google.common.collect.HashMultimap; +import com.google.common.collect.Multimap; +import com.hbm.handler.ArmorModHandler; +import com.hbm.inventory.fluid.FluidType; +import com.hbm.render.model.ModelArmorDesh; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.model.ModelBiped; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.entity.ai.attributes.AttributeModifier; +import net.minecraft.item.ItemStack; + +public class ArmorDiesel extends ArmorFSBFueled { + + public ArmorDiesel(ArmorMaterial material, int layer, int slot, String texture, FluidType fuelType, int maxFuel, int fillRate, int consumption, int drain) { + super(material, layer, slot, texture, fuelType, maxFuel, fillRate, consumption, drain); + } + + @Override + public Multimap getItemAttributeModifiers() { + + Multimap multimap = HashMultimap.create(); + multimap.put(SharedMonsterAttributes.knockbackResistance.getAttributeUnlocalizedName(), new AttributeModifier(ArmorModHandler.fixedUUIDs[this.armorType], "Armor modifier", 0.25D, 1)); + return multimap; + } + + @SideOnly(Side.CLIENT) + ModelArmorDesh[] models; + + @Override + @SideOnly(Side.CLIENT) + public ModelBiped getArmorModel(EntityLivingBase entityLiving, ItemStack itemStack, int armorSlot) { + + if(models == null) { + models = new ModelArmorDesh[4]; + + for(int i = 0; i < 4; i++) + models[i] = new ModelArmorDesh(i); + } + + return models[armorSlot]; + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemblerBase.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemblerBase.java new file mode 100644 index 000000000..3acb50d98 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemblerBase.java @@ -0,0 +1,34 @@ +package com.hbm.tileentity.machine; + +import com.hbm.tileentity.TileEntityMachineBase; + +import api.hbm.energy.IEnergyUser; +import net.minecraft.util.ChunkCoordinates; + +public abstract class TileEntityMachineAssemblerBase extends TileEntityMachineBase implements IEnergyUser { + + public long power; + public int[] progress; + public int[] maxProgress; + public boolean isProgressing; + + public TileEntityMachineAssemblerBase(int scount) { + super(scount); + + int count = this.getRecipeCount(); + + progress = new int[count]; + maxProgress = new int[count]; + } + + public abstract int getRecipeCount(); + public abstract int getTemplateIndex(int index); + + /** + * @param index + * @return A size 4 int array containing min input, max input and output indices in that order. + */ + public abstract int[] getSlotIndicesFromIndex(int index); + public abstract ChunkCoordinates[] getInputPositions(); + public abstract ChunkCoordinates[] getOutputPositions(); +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemfac.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemfac.java index 0df7de4a3..fb9f93a6c 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemfac.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemfac.java @@ -323,13 +323,6 @@ public class TileEntityMachineChemfac extends TileEntityMachineChemplantBase { @Override public int getMaxFluidFillForReceive(FluidType type) { - /*int fill = this.getMaxFluidFill(type); - - if(type == Fluids.WATER) - fill += water.getMaxFill(); - - return fill;*/ - return super.getMaxFluidFillForReceive(type); } From 47eb08dcd7ead53e0ed343106c418a1f8873eb0b Mon Sep 17 00:00:00 2001 From: Boblet Date: Fri, 13 May 2022 14:13:03 +0200 Subject: [PATCH 02/80] oops --- src/main/java/com/hbm/blocks/machine/MachineTowerLarge.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/hbm/blocks/machine/MachineTowerLarge.java b/src/main/java/com/hbm/blocks/machine/MachineTowerLarge.java index 6cce086b8..cf06998cc 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineTowerLarge.java +++ b/src/main/java/com/hbm/blocks/machine/MachineTowerLarge.java @@ -70,10 +70,10 @@ public class MachineTowerLarge extends BlockDummyable implements ILookOverlay { TileEntity te = world.getTileEntity(pos[0], pos[1], pos[2]); - if(!(te instanceof TileEntityTowerSmall)) + if(!(te instanceof TileEntityTowerLarge)) return; - TileEntityTowerSmall tower = (TileEntityTowerSmall) te; + TileEntityTowerLarge tower = (TileEntityTowerLarge) te; List text = new ArrayList(); From 5c08de449c38b825c3948e840a0d5788566e6b4e Mon Sep 17 00:00:00 2001 From: haru315 Date: Sat, 14 May 2022 09:47:37 +0900 Subject: [PATCH 03/80] use generalized spiral points algorithm --- .../com/hbm/explosion/ExplosionNukeRay.java | 168 +++++++++--------- 1 file changed, 86 insertions(+), 82 deletions(-) diff --git a/src/main/java/com/hbm/explosion/ExplosionNukeRay.java b/src/main/java/com/hbm/explosion/ExplosionNukeRay.java index 4131b4852..1e9cdaf3b 100644 --- a/src/main/java/com/hbm/explosion/ExplosionNukeRay.java +++ b/src/main/java/com/hbm/explosion/ExplosionNukeRay.java @@ -11,7 +11,7 @@ import net.minecraft.util.Vec3; import net.minecraft.world.World; public class ExplosionNukeRay { - + List affectedBlocks = new ArrayList(); int posX; int posY; @@ -28,6 +28,11 @@ public class ExplosionNukeRay { public boolean isAusf3Complete = false; private double overrideRange = 0; + + int gss_num_max; + int gss_num; + double gss_x; + double gss_y; public ExplosionNukeRay(World world, int x, int y, int z, int strength, int count, int speed, int length) { this.world = world; @@ -46,6 +51,39 @@ public class ExplosionNukeRay { //starts at around 80, becomes 8 at length 500 this.overrideRange = Math.max((Math.log(length) * 4 - 2.5D) * 10, 0); + + // Total number of points + this.gss_num_max = (int)(2.5 * Math.PI * Math.pow(this.strength,2)); + this.gss_num = 1; + + // The beginning of the generalized spiral points + this.gss_x = Math.PI; + this.gss_y = 0.0; + + } + // Raise one generalized spiral points + private void generateGssUp(){ + if (this.gss_num < this.gss_num_max) { + int k = this.gss_num + 1; + double hk = -1.0 + 2.0 * (k - 1.0) / (this.gss_num_max - 1.0); + this.gss_x = Math.acos(hk); + + double prev_lon = this.gss_y; + double lon = prev_lon + 3.6 / Math.sqrt(this.gss_num_max) / Math.sqrt(1.0 - hk * hk); + this.gss_y = lon % (Math.PI * 2); + } else { + this.gss_x = 0.0; + this.gss_y = 0.0; + } + this.gss_num++; + } + + // Get Cartesian coordinates for spherical coordinates + private Vec3 getSpherical2cartesian(){ + double dx = Math.sin(this.gss_x) * Math.cos(this.gss_y); + double dz = Math.sin(this.gss_x) * Math.sin(this.gss_y); + double dy = Math.cos(this.gss_x); + return Vec3.createVectorHelper(dx, dy, dz); } /*public void processBunch(int count) { @@ -104,7 +142,7 @@ public class ExplosionNukeRay { }*/ public void processTip(int count) { - + int processedBlocks = 0; int braker = 0; @@ -169,7 +207,7 @@ public class ExplosionNukeRay { int length = (int)Math.ceil(strength); float res = strength; - + FloatTriplet lastPos = null; for(int i = 0; i < length; i ++) { @@ -223,7 +261,7 @@ public class ExplosionNukeRay { int length = (int)Math.ceil(strength); float res = strength; - + FloatTriplet lastPos = null; for(int i = 0; i < length; i ++) { @@ -246,7 +284,7 @@ public class ExplosionNukeRay { if(res > 0 && world.getBlock((int)x0, (int)y0, (int)z0) != Blocks.air) { lastPos = new FloatTriplet(x0, y0, z0); } - + if(res <= 0 || i + 1 >= this.length) { if(affectedBlocks.size() < Integer.MAX_VALUE - 100 && lastPos != null) affectedBlocks.add(new FloatTriplet(lastPos.xCoord, lastPos.yCoord, lastPos.zCoord)); @@ -333,87 +371,53 @@ public class ExplosionNukeRay { public void collectTipMk4_5(int count) { int amountProcessed = 0; - - double bow = Math.PI * this.strength; - double bowCount = Math.ceil(bow); - - //Axial - //StartY starts at this.length - for(int v = startY; v <= bowCount; v++) { - - float part = (float) (Math.PI/bow); - float rot = part * -v; - - Vec3 heightVec = Vec3.createVectorHelper(0, -strength, 0); - heightVec.rotateAroundZ(rot); - - double y = heightVec.yCoord; - - double sectionRad = Math.sqrt(Math.pow(strength, 2) - Math.pow(y, 2)); - double circumference = 2 * Math.PI * sectionRad; - - //if(y < 2 && y > -2) - // circumference *= 1.25D; - - //circumference = Math.ceil(circumference); - - //Radial - //StartCir starts at circumference - for(int r = startCir; r < circumference; r ++) { - - Vec3 vec = Vec3.createVectorHelper(sectionRad, y, 0); - vec = vec.normalize(); - /*if(y > 0) - vec.rotateAroundZ((float) (y / sectionRad) * 0.15F);*/ - /*if(y < 0) - vec.rotateAroundZ((float) (y / sectionRad) * 0.15F);*/ - vec.rotateAroundY((float) (360 / circumference * r)); - - int length = (int)Math.ceil(strength); - - float res = strength; - - FloatTriplet lastPos = null; - - for(int i = 0; i < length; i ++) { - - if(i > this.length) - break; - - float x0 = (float) (posX + (vec.xCoord * i)); - float y0 = (float) (posY + (vec.yCoord * i)); - float z0 = (float) (posZ + (vec.zCoord * i)); - - double fac = 100 - ((double) i) / ((double) length) * 100; - fac *= 0.07D; - - if(!world.getBlock((int)x0, (int)y0, (int)z0).getMaterial().isLiquid()) - res -= Math.pow(world.getBlock((int)x0, (int)y0, (int)z0).getExplosionResistance(null), 7.5D - fac); - else - res -= Math.pow(Blocks.air.getExplosionResistance(null), 7.5D - fac); - - if(res > 0 && world.getBlock((int)x0, (int)y0, (int)z0) != Blocks.air) { - lastPos = new FloatTriplet(x0, y0, z0); - } - - if(res <= 0 || i + 1 >= this.length) { - if(affectedBlocks.size() < Integer.MAX_VALUE - 100 && lastPos != null) { - affectedBlocks.add(new FloatTriplet(lastPos.xCoord, lastPos.yCoord, lastPos.zCoord)); - } - break; - } + + while (this.gss_num_max >= this.gss_num){ + // 一般化螺旋集合を 一個上げる + this.generateGssUp(); + + //球面座標を直交座標を取得 + Vec3 vec = this.getSpherical2cartesian(); + + int length = (int)Math.ceil(strength); + + float res = strength; + + FloatTriplet lastPos = null; + + for(int i = 0; i < length; i ++) { + + if(i > this.length) + break; + + float x0 = (float) (posX + (vec.xCoord * i)); + float y0 = (float) (posY + (vec.yCoord * i)); + float z0 = (float) (posZ + (vec.zCoord * i)); + + double fac = 100 - ((double) i) / ((double) length) * 100; + fac *= 0.07D; + + if(!world.getBlock((int)x0, (int)y0, (int)z0).getMaterial().isLiquid()) + res -= Math.pow(world.getBlock((int)x0, (int)y0, (int)z0).getExplosionResistance(null), 7.5D - fac); + else + res -= Math.pow(Blocks.air.getExplosionResistance(null), 7.5D - fac); + + if(res > 0 && world.getBlock((int)x0, (int)y0, (int)z0) != Blocks.air) { + lastPos = new FloatTriplet(x0, y0, z0); } - - amountProcessed++; - - if(amountProcessed >= count) { - startY = v; - startCir = startCir + 1; - return; + + if(res <= 0 || i + 1 >= this.length) { + if(affectedBlocks.size() < Integer.MAX_VALUE - 100 && lastPos != null) { + affectedBlocks.add(new FloatTriplet(lastPos.xCoord, lastPos.yCoord, lastPos.zCoord)); + } + break; } } + amountProcessed++; + if(amountProcessed >= count) { + return; + } } - isAusf3Complete = true; } From 17c742416fe346cb4e0404b5eba5d69e79af9f70 Mon Sep 17 00:00:00 2001 From: haru315 Date: Sat, 14 May 2022 10:46:10 +0900 Subject: [PATCH 04/80] use generalized spiral points algorithm --- src/main/java/com/hbm/explosion/ExplosionNukeRay.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/hbm/explosion/ExplosionNukeRay.java b/src/main/java/com/hbm/explosion/ExplosionNukeRay.java index 1e9cdaf3b..fbcec5d42 100644 --- a/src/main/java/com/hbm/explosion/ExplosionNukeRay.java +++ b/src/main/java/com/hbm/explosion/ExplosionNukeRay.java @@ -373,10 +373,11 @@ public class ExplosionNukeRay { int amountProcessed = 0; while (this.gss_num_max >= this.gss_num){ - // 一般化螺旋集合を 一個上げる + + // Raise one generalized spiral points this.generateGssUp(); - //球面座標を直交座標を取得 + // Get Cartesian coordinates for spherical coordinates Vec3 vec = this.getSpherical2cartesian(); int length = (int)Math.ceil(strength); From d65c2a7505afbab401debd0f81dec20dad19710d Mon Sep 17 00:00:00 2001 From: haru315 Date: Sat, 14 May 2022 23:08:22 +0900 Subject: [PATCH 05/80] Minor corrections and moving code around, commenting out unused portions --- .../com/hbm/explosion/ExplosionNukeRay.java | 320 +++++++++--------- 1 file changed, 161 insertions(+), 159 deletions(-) diff --git a/src/main/java/com/hbm/explosion/ExplosionNukeRay.java b/src/main/java/com/hbm/explosion/ExplosionNukeRay.java index fbcec5d42..a36975d17 100644 --- a/src/main/java/com/hbm/explosion/ExplosionNukeRay.java +++ b/src/main/java/com/hbm/explosion/ExplosionNukeRay.java @@ -2,9 +2,6 @@ package com.hbm.explosion; import java.util.ArrayList; import java.util.List; -import java.util.Random; - -import com.hbm.interfaces.Untested; import net.minecraft.init.Blocks; import net.minecraft.util.Vec3; @@ -12,79 +9,191 @@ import net.minecraft.world.World; public class ExplosionNukeRay { - List affectedBlocks = new ArrayList(); + List affectedBlocks = new ArrayList<>(); int posX; int posY; int posZ; - Random rand = new Random(); World world; + int strength; + int length; + int processed; + + int gspNumMax; + int gspNum; + double gspX; + double gspY; + + public boolean isAusf3Complete = false; + + /*[[unused]] int count; int speed; - int processed; - int length; int startY; int startCir; - public boolean isAusf3Complete = false; - + Random rand = new Random(); private double overrideRange = 0; + */ - int gss_num_max; - int gss_num; - double gss_x; - double gss_y; - public ExplosionNukeRay(World world, int x, int y, int z, int strength, int count, int speed, int length) { this.world = world; this.posX = x; this.posY = y; this.posZ = z; this.strength = strength; - this.count = count; - this.speed = speed; this.length = length; //Ausf3, must be double - //this.startY = strength; //Mk 4.5, must be int32 + + // Total number of points + this.gspNumMax = (int)(2.5 * Math.PI * Math.pow(this.strength,2)); + this.gspNum = 1; + + // The beginning of the generalized spiral points + this.gspX = Math.PI; + this.gspY = 0.0; + + + /*[[unused]] + // this.startY = strength; this.startY = 0; this.startCir = 0; + + this.count = count; + this.speed = speed; //starts at around 80, becomes 8 at length 500 this.overrideRange = Math.max((Math.log(length) * 4 - 2.5D) * 10, 0); - - // Total number of points - this.gss_num_max = (int)(2.5 * Math.PI * Math.pow(this.strength,2)); - this.gss_num = 1; - - // The beginning of the generalized spiral points - this.gss_x = Math.PI; - this.gss_y = 0.0; - + */ } - // Raise one generalized spiral points - private void generateGssUp(){ - if (this.gss_num < this.gss_num_max) { - int k = this.gss_num + 1; - double hk = -1.0 + 2.0 * (k - 1.0) / (this.gss_num_max - 1.0); - this.gss_x = Math.acos(hk); - double prev_lon = this.gss_y; - double lon = prev_lon + 3.6 / Math.sqrt(this.gss_num_max) / Math.sqrt(1.0 - hk * hk); - this.gss_y = lon % (Math.PI * 2); + // Raise one generalized spiral points + private void generateGspUp(){ + if (this.gspNum < this.gspNumMax) { + int k = this.gspNum + 1; + double hk = -1.0 + 2.0 * (k - 1.0) / (this.gspNumMax - 1.0); + this.gspX = Math.acos(hk); + + double prev_lon = this.gspY; + double lon = prev_lon + 3.6 / Math.sqrt(this.gspNumMax) / Math.sqrt(1.0 - hk * hk); + this.gspY = lon % (Math.PI * 2); } else { - this.gss_x = 0.0; - this.gss_y = 0.0; + this.gspX = 0.0; + this.gspY = 0.0; } - this.gss_num++; + this.gspNum++; } // Get Cartesian coordinates for spherical coordinates private Vec3 getSpherical2cartesian(){ - double dx = Math.sin(this.gss_x) * Math.cos(this.gss_y); - double dz = Math.sin(this.gss_x) * Math.sin(this.gss_y); - double dy = Math.cos(this.gss_x); + double dx = Math.sin(this.gspX) * Math.cos(this.gspY); + double dz = Math.sin(this.gspX) * Math.sin(this.gspY); + double dy = Math.cos(this.gspX); return Vec3.createVectorHelper(dx, dy, dz); } + + //currently used by mk4 + public void collectTipMk4_5(int count) { + + int amountProcessed = 0; + + while (this.gspNumMax >= this.gspNum){ + // Get Cartesian coordinates for spherical coordinates + Vec3 vec = this.getSpherical2cartesian(); + + int length = (int)Math.ceil(strength); + float res = strength; + FloatTriplet lastPos = null; + + for(int i = 0; i < length; i ++) { + + if(i > this.length) + break; + + float x0 = (float) (posX + (vec.xCoord * i)); + float y0 = (float) (posY + (vec.yCoord * i)); + float z0 = (float) (posZ + (vec.zCoord * i)); + + double fac = 100 - ((double) i) / ((double) length) * 100; + fac *= 0.07D; + + if(!world.getBlock((int)x0, (int)y0, (int)z0).getMaterial().isLiquid()) + res -= Math.pow(world.getBlock((int)x0, (int)y0, (int)z0).getExplosionResistance(null), 7.5D - fac); + else + res -= Math.pow(Blocks.air.getExplosionResistance(null), 7.5D - fac); + + if(res > 0 && world.getBlock((int)x0, (int)y0, (int)z0) != Blocks.air) { + lastPos = new FloatTriplet(x0, y0, z0); + } + + if(res <= 0 || i + 1 >= this.length) { + if(affectedBlocks.size() < Integer.MAX_VALUE - 100 && lastPos != null) { + affectedBlocks.add(lastPos); + } + break; + } + } + // Raise one generalized spiral points + this.generateGspUp(); + + amountProcessed++; + if(amountProcessed >= count) { + return; + } + } + isAusf3Complete = true; + } + + public void processTip(int count) { + + int processedBlocks = 0; + int braker = 0; + + for(int l = 0; l < Integer.MAX_VALUE; l++) { + + if(processedBlocks >= count) + return; + + if(braker >= count * 50) + return; + + if(l > affectedBlocks.size() - 1) + break; + + if(affectedBlocks.isEmpty()) + return; + + int in = affectedBlocks.size() - 1; + + float x = affectedBlocks.get(in).xCoord; + float y = affectedBlocks.get(in).yCoord; + float z = affectedBlocks.get(in).zCoord; + + world.setBlock((int)x, (int)y, (int)z, Blocks.air); + + Vec3 vec = Vec3.createVectorHelper(x - this.posX, y - this.posY, z - this.posZ); + double pX = vec.xCoord / vec.lengthVector(); + double pY = vec.yCoord / vec.lengthVector(); + double pZ = vec.zCoord / vec.lengthVector(); + + for(int i = 0; i < vec.lengthVector(); i ++) { + int x0 = (int)(posX + pX * i); + int y0 = (int)(posY + pY * i); + int z0 = (int)(posZ + pZ * i); + + if(!world.isAirBlock(x0, y0, z0)) { + world.setBlock(x0, y0, z0, Blocks.air); + processedBlocks++; + } + + braker++; + } + + affectedBlocks.remove(in); + } + + processed += count; + } /*public void processBunch(int count) { for(int l = processed; l < processed + count; l++) { @@ -140,58 +249,7 @@ public class ExplosionNukeRay { } } }*/ - - public void processTip(int count) { - - int processedBlocks = 0; - int braker = 0; - - for(int l = 0; l < Integer.MAX_VALUE; l++) { - - if(processedBlocks >= count) - return; - - if(braker >= count * 50) - return; - - if(l > affectedBlocks.size() - 1) - break; - - if(affectedBlocks.isEmpty()) - return; - - int in = affectedBlocks.size() - 1; - - float x = affectedBlocks.get(in).xCoord; - float y = affectedBlocks.get(in).yCoord; - float z = affectedBlocks.get(in).zCoord; - - world.setBlock((int)x, (int)y, (int)z, Blocks.air); - - Vec3 vec = Vec3.createVectorHelper(x - this.posX, y - this.posY, z - this.posZ); - double pX = vec.xCoord / vec.lengthVector(); - double pY = vec.yCoord / vec.lengthVector(); - double pZ = vec.zCoord / vec.lengthVector(); - - for(int i = 0; i < vec.lengthVector(); i ++) { - int x0 = (int)(posX + pX * i); - int y0 = (int)(posY + pY * i); - int z0 = (int)(posZ + pZ * i); - - if(!world.isAirBlock(x0, y0, z0)) { - world.setBlock(x0, y0, z0, Blocks.air); - processedBlocks++; - } - - braker++; - } - - affectedBlocks.remove(in); - } - - processed += count; - } - +/* @Untested //override range public void collectTip(int count) { @@ -223,21 +281,19 @@ public class ExplosionNukeRay { res -= Math.pow(world.getBlock((int)x0, (int)y0, (int)z0).getExplosionResistance(null), 1.25); else res -= Math.pow(Blocks.air.getExplosionResistance(null), 1.25); - - /* - * Blast resistance calculations are still done to preserve the general shape, - * but if the blast were to be stopped within this range we go through with it anyway. - * There is currently no blast resistance limit on this, could change in the future. - */ + + //Blast resistance calculations are still done to preserve the general shape, + //but if the blast were to be stopped within this range we go through with it anyway. + //There is currently no blast resistance limit on this, could change in the future. boolean inOverrideRange = this.overrideRange >= length; if((res > 0 || inOverrideRange) && world.getBlock((int)x0, (int)y0, (int)z0) != Blocks.air) { lastPos = new FloatTriplet(x0, y0, z0); } - /* - * Only stop if we are either out of range or if the remaining strength is 0 while being outside the override range - */ + + // Only stop if we are either out of range or if the remaining strength is 0 while being outside the override range + if((res <= 0 && !inOverrideRange) || i + 1 >= this.length) { if(affectedBlocks.size() < Integer.MAX_VALUE - 100 && lastPos != null) affectedBlocks.add(new FloatTriplet(lastPos.xCoord, lastPos.yCoord, lastPos.zCoord)); @@ -246,7 +302,8 @@ public class ExplosionNukeRay { } } } - +*/ + /* public void collectTipExperimental(int count) { for(int k = 0; k < count; k++) { @@ -293,7 +350,7 @@ public class ExplosionNukeRay { } } } - + */ /*public void collectTipAusf3(int count) { int amountProcessed = 0; @@ -366,61 +423,6 @@ public class ExplosionNukeRay { isAusf3Complete = true; }*/ - - //currently used by mk4 - public void collectTipMk4_5(int count) { - - int amountProcessed = 0; - - while (this.gss_num_max >= this.gss_num){ - - // Raise one generalized spiral points - this.generateGssUp(); - - // Get Cartesian coordinates for spherical coordinates - Vec3 vec = this.getSpherical2cartesian(); - - int length = (int)Math.ceil(strength); - - float res = strength; - - FloatTriplet lastPos = null; - - for(int i = 0; i < length; i ++) { - - if(i > this.length) - break; - - float x0 = (float) (posX + (vec.xCoord * i)); - float y0 = (float) (posY + (vec.yCoord * i)); - float z0 = (float) (posZ + (vec.zCoord * i)); - - double fac = 100 - ((double) i) / ((double) length) * 100; - fac *= 0.07D; - - if(!world.getBlock((int)x0, (int)y0, (int)z0).getMaterial().isLiquid()) - res -= Math.pow(world.getBlock((int)x0, (int)y0, (int)z0).getExplosionResistance(null), 7.5D - fac); - else - res -= Math.pow(Blocks.air.getExplosionResistance(null), 7.5D - fac); - - if(res > 0 && world.getBlock((int)x0, (int)y0, (int)z0) != Blocks.air) { - lastPos = new FloatTriplet(x0, y0, z0); - } - - if(res <= 0 || i + 1 >= this.length) { - if(affectedBlocks.size() < Integer.MAX_VALUE - 100 && lastPos != null) { - affectedBlocks.add(new FloatTriplet(lastPos.xCoord, lastPos.yCoord, lastPos.zCoord)); - } - break; - } - } - amountProcessed++; - if(amountProcessed >= count) { - return; - } - } - isAusf3Complete = true; - } //Dysfunctional, punches hole into ground /*public void collectTipAusf3(int count) { From 8779cb303216b61bf738858601b508fb35e8be75 Mon Sep 17 00:00:00 2001 From: Bob Date: Sun, 15 May 2022 00:10:01 +0200 Subject: [PATCH 06/80] the allmighty flare stack --- .../com/hbm/blocks/machine/MachineDiesel.java | 2 +- .../hbm/blocks/machine/MachineGasFlare.java | 179 +- .../blocks/machine/MachineSeleniumEngine.java | 2 +- .../hbm/blocks/machine/MachineTurbofan.java | 2 +- .../hbm/entity/particle/EntityGasFlameFX.java | 6 +- .../container/ContainerMachineGasFlare.java | 40 +- .../com/hbm/inventory/fluid/FluidType.java | 13 + .../java/com/hbm/inventory/fluid/Fluids.java | 107 +- .../hbm/inventory/fluid/types/Antimatter.java | 12 + .../inventory/fluid/types/CombustibleGas.java | 11 + .../inventory/fluid/types/FlammableGas.java | 11 + .../fluid/types/FlammableOilGas.java | 11 + .../{ => types}/FluidTypeCombustible.java | 2 +- .../fluid/{ => types}/FluidTypeFlammable.java | 3 +- .../com/hbm/inventory/fluid/types/Fuel.java | 11 + .../com/hbm/inventory/fluid/types/Gas.java | 12 + .../com/hbm/inventory/fluid/types/Oil.java | 11 + .../inventory/fluid/types/Petrochemical.java | 12 + .../inventory/fluid/types/RadioactiveGas.java | 12 + .../fluid/types/RadioactiveLiquid.java | 12 + .../hbm/inventory/gui/GUIMachineGasFlare.java | 51 +- src/main/java/com/hbm/main/ClientProxy.java | 7 + .../java/com/hbm/main/ResourceManager.java | 4 +- .../hbm/render/item/ItemRenderLibrary.java | 8 +- .../hbm/render/tileentity/RenderGasFlare.java | 28 +- .../machine/TileEntityMachineDiesel.java | 4 +- .../machine/TileEntityMachineIGenerator.java | 2 +- .../TileEntityMachineSeleniumEngine.java | 4 +- .../oil/TileEntityMachineGasFlare.java | 291 +- src/main/resources/assets/hbm/lang/de_DE.lang | 3 + src/main/resources/assets/hbm/lang/en_US.lang | 3 + .../hbm/models/machines/flare_stack.obj | 7139 ++++++++++ .../resources/assets/hbm/models/oilFlare.obj | 895 -- .../assets/hbm/models/rbmk/crane_console.obj | 10721 ++++++++++++---- .../gui/generators/gui_flare_stack.png | Bin 0 -> 4187 bytes .../textures/models/machines/flare_stack.png | Bin 0 -> 4682 bytes .../hbm/textures/models/oilFlareTexture.png | Bin 4801 -> 0 bytes 37 files changed, 16085 insertions(+), 3546 deletions(-) create mode 100644 src/main/java/com/hbm/inventory/fluid/types/Antimatter.java create mode 100644 src/main/java/com/hbm/inventory/fluid/types/CombustibleGas.java create mode 100644 src/main/java/com/hbm/inventory/fluid/types/FlammableGas.java create mode 100644 src/main/java/com/hbm/inventory/fluid/types/FlammableOilGas.java rename src/main/java/com/hbm/inventory/fluid/{ => types}/FluidTypeCombustible.java (97%) rename src/main/java/com/hbm/inventory/fluid/{ => types}/FluidTypeFlammable.java (92%) create mode 100644 src/main/java/com/hbm/inventory/fluid/types/Fuel.java create mode 100644 src/main/java/com/hbm/inventory/fluid/types/Gas.java create mode 100644 src/main/java/com/hbm/inventory/fluid/types/Oil.java create mode 100644 src/main/java/com/hbm/inventory/fluid/types/Petrochemical.java create mode 100644 src/main/java/com/hbm/inventory/fluid/types/RadioactiveGas.java create mode 100644 src/main/java/com/hbm/inventory/fluid/types/RadioactiveLiquid.java create mode 100644 src/main/resources/assets/hbm/models/machines/flare_stack.obj delete mode 100644 src/main/resources/assets/hbm/models/oilFlare.obj create mode 100644 src/main/resources/assets/hbm/textures/gui/generators/gui_flare_stack.png create mode 100644 src/main/resources/assets/hbm/textures/models/machines/flare_stack.png delete mode 100644 src/main/resources/assets/hbm/textures/models/oilFlareTexture.png diff --git a/src/main/java/com/hbm/blocks/machine/MachineDiesel.java b/src/main/java/com/hbm/blocks/machine/MachineDiesel.java index b15d1dc59..ecc409fa8 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineDiesel.java +++ b/src/main/java/com/hbm/blocks/machine/MachineDiesel.java @@ -5,7 +5,7 @@ import java.util.Random; import com.hbm.blocks.ITooltipProvider; import com.hbm.blocks.ModBlocks; -import com.hbm.inventory.fluid.FluidTypeCombustible.FuelGrade; +import com.hbm.inventory.fluid.types.FluidTypeCombustible.FuelGrade; import com.hbm.lib.RefStrings; import com.hbm.main.MainRegistry; import com.hbm.tileentity.machine.TileEntityMachineDiesel; diff --git a/src/main/java/com/hbm/blocks/machine/MachineGasFlare.java b/src/main/java/com/hbm/blocks/machine/MachineGasFlare.java index 520ec209e..a7bc46a26 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineGasFlare.java +++ b/src/main/java/com/hbm/blocks/machine/MachineGasFlare.java @@ -1,176 +1,63 @@ package com.hbm.blocks.machine; -import java.util.Random; +import java.util.List; +import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ITooltipProvider; import com.hbm.blocks.ModBlocks; -import com.hbm.handler.MultiblockHandler; -import com.hbm.interfaces.IMultiblock; -import com.hbm.main.MainRegistry; -import com.hbm.tileentity.machine.TileEntityDummy; +import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.oil.TileEntityMachineGasFlare; -import cpw.mods.fml.common.network.internal.FMLNetworkHandler; -import net.minecraft.block.Block; -import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; -import net.minecraft.entity.EntityLivingBase; -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.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; -public class MachineGasFlare extends BlockContainer implements IMultiblock { +public class MachineGasFlare extends BlockDummyable implements ITooltipProvider { - private final Random field_149933_a = new Random(); - private Random rand; - private static boolean keepInventory; - - public MachineGasFlare(Material p_i45386_1_) { - super(p_i45386_1_); - rand = new Random(); - } - - @Override - public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_) - { - return Item.getItemFromBlock(ModBlocks.machine_flare); - } - - @Override - public int getRenderType() { - return -1; + public MachineGasFlare(Material mat) { + super(mat); } @Override - public boolean isOpaqueCube() { - return false; - } - - @Override - public boolean renderAsNormalBlock() { - return false; + public TileEntity createNewTileEntity(World world, int meta) { + + if(meta >= 12) return new TileEntityMachineGasFlare(); + if(meta >= 6) return new TileEntityProxyCombo(false, true, true); + return null; } @Override public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { - if(world.isRemote) - { - return true; - } else if(!player.isSneaking()) - { - TileEntityMachineGasFlare entity = (TileEntityMachineGasFlare) world.getTileEntity(x, y, z); - if(entity != null) - { - FMLNetworkHandler.openGui(player, MainRegistry.instance, ModBlocks.guiID_machine_flare, world, x, y, z); - } - return true; - } else { - return false; - } + return this.standardOpenBehavior(world, x, y, z, player, ModBlocks.guiID_machine_flare); } @Override - public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { - return new TileEntityMachineGasFlare(); + public int[] getDimensions() { + return new int[] {11, 0, 1, 1, 1, 1}; } - - @Override - public void breakBlock(World p_149749_1_, int p_149749_2_, int p_149749_3_, int p_149749_4_, Block p_149749_5_, int p_149749_6_) - { - if (!keepInventory) - { - TileEntityMachineGasFlare tileentityfurnace = (TileEntityMachineGasFlare)p_149749_1_.getTileEntity(p_149749_2_, p_149749_3_, p_149749_4_); - - if (tileentityfurnace != null) - { - for (int i1 = 0; i1 < tileentityfurnace.getSizeInventory(); ++i1) - { - ItemStack itemstack = tileentityfurnace.getStackInSlot(i1); - - if (itemstack != null) - { - float f = this.field_149933_a.nextFloat() * 0.8F + 0.1F; - float f1 = this.field_149933_a.nextFloat() * 0.8F + 0.1F; - float f2 = this.field_149933_a.nextFloat() * 0.8F + 0.1F; - - while (itemstack.stackSize > 0) - { - int j1 = this.field_149933_a.nextInt(21) + 10; - - if (j1 > itemstack.stackSize) - { - j1 = itemstack.stackSize; - } - - itemstack.stackSize -= j1; - EntityItem entityitem = new EntityItem(p_149749_1_, p_149749_2_ + f, p_149749_3_ + f1, p_149749_4_ + f2, new ItemStack(itemstack.getItem(), j1, itemstack.getItemDamage())); - - if (itemstack.hasTagCompound()) - { - entityitem.getEntityItem().setTagCompound((NBTTagCompound)itemstack.getTagCompound().copy()); - } - - float f3 = 0.05F; - entityitem.motionX = (float)this.field_149933_a.nextGaussian() * f3; - entityitem.motionY = (float)this.field_149933_a.nextGaussian() * f3 + 0.2F; - entityitem.motionZ = (float)this.field_149933_a.nextGaussian() * f3; - p_149749_1_.spawnEntityInWorld(entityitem); - } - } - } - - p_149749_1_.func_147453_f(p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_); - } - } - - super.breakBlock(p_149749_1_, p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_, p_149749_6_); - } @Override - public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack itemStack) { + public int getOffset() { + return 1; + } - if(MultiblockHandler.checkSpace(world, x, y, z, MultiblockHandler.flareDimension)) { - MultiblockHandler.fillUp(world, x, y, z, MultiblockHandler.flareDimension, ModBlocks.dummy_block_flare); + @Override + public void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) { + super.fillSpace(world, x, y, z, dir, o); + this.makeExtra(world, x + dir.offsetX * o + 1, y, z + dir.offsetZ * o); + this.makeExtra(world, x + dir.offsetX * o - 1, y, z + dir.offsetZ * o); + this.makeExtra(world, x + dir.offsetX * o, y, z + dir.offsetZ * o + 1); + this.makeExtra(world, x + dir.offsetX * o, y, z + dir.offsetZ * o - 1); + } - DummyBlockFlare.safeBreak = true; - world.setBlock(x, y, z + 1, ModBlocks.dummy_port_flare); - TileEntity te = world.getTileEntity(x, y, z + 1); - if(te instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - world.setBlock(x, y, z - 1, ModBlocks.dummy_port_flare); - TileEntity te2 = world.getTileEntity(x, y, z - 1); - if(te instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te2; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - world.setBlock(x + 1, y, z, ModBlocks.dummy_port_flare); - TileEntity te3 = world.getTileEntity(x + 1, y, z); - if(te3 instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te3; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - world.setBlock(x - 1, y, z, ModBlocks.dummy_port_flare); - TileEntity te4 = world.getTileEntity(x - 1, y, z); - if(te4 instanceof TileEntityDummy) { - TileEntityDummy dummy = (TileEntityDummy)te4; - dummy.targetX = x; - dummy.targetY = y; - dummy.targetZ = z; - } - DummyBlockFlare.safeBreak = false; - - } else - world.func_147480_a(x, y, z, true); + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + + list.add(EnumChatFormatting.YELLOW + "Fuel efficiency:"); + list.add(EnumChatFormatting.YELLOW + "-Flammable Gasses: 50%"); } } diff --git a/src/main/java/com/hbm/blocks/machine/MachineSeleniumEngine.java b/src/main/java/com/hbm/blocks/machine/MachineSeleniumEngine.java index 78754095c..54fab6acb 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineSeleniumEngine.java +++ b/src/main/java/com/hbm/blocks/machine/MachineSeleniumEngine.java @@ -5,7 +5,7 @@ import java.util.Random; import com.hbm.blocks.ITooltipProvider; import com.hbm.blocks.ModBlocks; -import com.hbm.inventory.fluid.FluidTypeCombustible.FuelGrade; +import com.hbm.inventory.fluid.types.FluidTypeCombustible.FuelGrade; import com.hbm.main.MainRegistry; import com.hbm.tileentity.machine.TileEntityMachineSeleniumEngine; diff --git a/src/main/java/com/hbm/blocks/machine/MachineTurbofan.java b/src/main/java/com/hbm/blocks/machine/MachineTurbofan.java index cdc203283..fa6c9a40f 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineTurbofan.java +++ b/src/main/java/com/hbm/blocks/machine/MachineTurbofan.java @@ -7,7 +7,7 @@ import com.hbm.blocks.ITooltipProvider; import com.hbm.blocks.ModBlocks; import com.hbm.handler.MultiblockHandler; import com.hbm.interfaces.IMultiblock; -import com.hbm.inventory.fluid.FluidTypeCombustible.FuelGrade; +import com.hbm.inventory.fluid.types.FluidTypeCombustible.FuelGrade; import com.hbm.items.ModItems; import com.hbm.main.MainRegistry; import com.hbm.tileentity.machine.TileEntityDummy; diff --git a/src/main/java/com/hbm/entity/particle/EntityGasFlameFX.java b/src/main/java/com/hbm/entity/particle/EntityGasFlameFX.java index a0812bd94..66b3a0db7 100644 --- a/src/main/java/com/hbm/entity/particle/EntityGasFlameFX.java +++ b/src/main/java/com/hbm/entity/particle/EntityGasFlameFX.java @@ -35,7 +35,7 @@ public class EntityGasFlameFX extends EntityModFX this.smokeParticleScale = this.particleScale; //this.particleMaxAge = (int)(8.0D / (Math.random() * 0.8D + 0.2D)); //this.particleMaxAge = (int)((float)this.particleMaxAge * p_i1226_14_); - this.noClip = false; + this.noClip = true; } /** @@ -71,9 +71,7 @@ public class EntityGasFlameFX extends EntityModFX this.motionZ *= 0.699999988079071D; } - this.posX += this.motionX; - this.posY += this.motionY; - this.posZ += this.motionZ; + this.moveEntity(motionX, motionY, motionZ); } @Override diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineGasFlare.java b/src/main/java/com/hbm/inventory/container/ContainerMachineGasFlare.java index 0049a64ba..2382ddd5c 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerMachineGasFlare.java +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineGasFlare.java @@ -1,8 +1,10 @@ package com.hbm.inventory.container; import com.hbm.inventory.SlotMachineOutput; +import com.hbm.items.machine.IItemFluidIdentifier; import com.hbm.tileentity.machine.oil.TileEntityMachineGasFlare; +import api.hbm.energy.IBatteryItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Container; @@ -18,18 +20,25 @@ public class ContainerMachineGasFlare extends Container { testNuke = tedf; - this.addSlotToContainer(new Slot(tedf, 0, 44, 53)); - this.addSlotToContainer(new Slot(tedf, 1, 134, 17)); - this.addSlotToContainer(new SlotMachineOutput(tedf, 2, 134, 53)); + //Battery + this.addSlotToContainer(new Slot(tedf, 0, 143, 71)); + //Fluid in + this.addSlotToContainer(new Slot(tedf, 1, 17, 17)); + //Fluid out + this.addSlotToContainer(new SlotMachineOutput(tedf, 2, 17, 53)); + //Fluid ID + this.addSlotToContainer(new Slot(tedf, 3, 35, 71)); + + int offset = 37; for(int i = 0; i < 3; i++) { for(int j = 0; j < 9; j++) { - this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 84 + i * 18)); + this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 84 + i * 18 + offset)); } } for(int i = 0; i < 9; i++) { - this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 142)); + this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 142 + offset)); } } @@ -47,12 +56,25 @@ public class ContainerMachineGasFlare extends Container { ItemStack var5 = var4.getStack(); var3 = var5.copy(); - if(par2 <= 1) { - if(!this.mergeItemStack(var5, 3, this.inventorySlots.size(), true)) { + if(par2 <= 3) { + if(!this.mergeItemStack(var5, 4, this.inventorySlots.size(), true)) { return null; } - } else if(!this.mergeItemStack(var5, 0, 2, false)) { - return null; + } else { + + if(var3.getItem() instanceof IItemFluidIdentifier) { + if(!this.mergeItemStack(var5, 3, 4, true)) { + return null; + } + } else if(var3.getItem() instanceof IBatteryItem) { + if(!this.mergeItemStack(var5, 0, 1, true)) { + return null; + } + } else { + if(!this.mergeItemStack(var5, 1, 2, true)) { + return null; + } + } } if(var5.stackSize == 0) { diff --git a/src/main/java/com/hbm/inventory/fluid/FluidType.java b/src/main/java/com/hbm/inventory/fluid/FluidType.java index db655e5ca..57d838824 100644 --- a/src/main/java/com/hbm/inventory/fluid/FluidType.java +++ b/src/main/java/com/hbm/inventory/fluid/FluidType.java @@ -173,9 +173,22 @@ public class FluidType { if(traits.contains(FluidTrait.NO_CONTAINER)) info.add(EnumChatFormatting.RED + "Cannot be stored in any universal tank"); if(traits.contains(FluidTrait.LEAD_CONTAINER)) info.add(EnumChatFormatting.YELLOW + "Requires hazardous material tank to hold"); + + info.add(""); + info.add(EnumChatFormatting.RED + "[DEBUG]"); + + for(FluidTrait trait : traits) { + info.add(EnumChatFormatting.RED + "-" + trait.name()); + } } + /** + * Metadata for describing how the fluid acts, like being corrosive, not having fluid IDs or being only stored in certain containers. + */ public static enum FluidTrait { + LIQUID, + GASEOUS, + PETROCHEMICAL, AMAT, CORROSIVE, CORROSIVE_2, diff --git a/src/main/java/com/hbm/inventory/fluid/Fluids.java b/src/main/java/com/hbm/inventory/fluid/Fluids.java index 22d9b1972..5e4693e50 100644 --- a/src/main/java/com/hbm/inventory/fluid/Fluids.java +++ b/src/main/java/com/hbm/inventory/fluid/Fluids.java @@ -6,7 +6,8 @@ import java.util.List; import com.hbm.inventory.fluid.FluidType.ExtContainer; import com.hbm.inventory.fluid.FluidType.FluidTrait; -import com.hbm.inventory.fluid.FluidTypeCombustible.FuelGrade; +import com.hbm.inventory.fluid.types.*; +import com.hbm.inventory.fluid.types.FluidTypeCombustible.FuelGrade; import com.hbm.render.util.EnumSymbol; public class Fluids { @@ -112,83 +113,83 @@ public class Fluids { NONE = new FluidType( "NONE", 0x888888, 0, 0, 0, EnumSymbol.NONE); WATER = new FluidType( "WATER", 0x3333FF, 0, 0, 0, EnumSymbol.NONE); - STEAM = new FluidType( "STEAM", 0xe5e5e5, 3, 0, 0, EnumSymbol.NONE).setTemp(100).setCompression(0.01D); - HOTSTEAM = new FluidType( "HOTSTEAM", 0xE7D6D6, 4, 0, 0, EnumSymbol.NONE).setTemp(300).setCompression(0.1D); - SUPERHOTSTEAM = new FluidType( "SUPERHOTSTEAM", 0xE7B7B7, 4, 0, 0, EnumSymbol.NONE).setTemp(450).setCompression(1D); - ULTRAHOTSTEAM = new FluidType( "ULTRAHOTSTEAM", 0xE39393, 4, 0, 0, EnumSymbol.NONE).setTemp(600).setCompression(10D); + STEAM = new Gas( "STEAM", 0xe5e5e5, 3, 0, 0, EnumSymbol.NONE).setTemp(100).setCompression(0.01D); + HOTSTEAM = new Gas( "HOTSTEAM", 0xE7D6D6, 4, 0, 0, EnumSymbol.NONE).setTemp(300).setCompression(0.1D); + SUPERHOTSTEAM = new Gas( "SUPERHOTSTEAM", 0xE7B7B7, 4, 0, 0, EnumSymbol.NONE).setTemp(450).setCompression(1D); + ULTRAHOTSTEAM = new Gas( "ULTRAHOTSTEAM", 0xE39393, 4, 0, 0, EnumSymbol.NONE).setTemp(600).setCompression(10D); COOLANT = new FluidType( "COOLANT", 0xd8fcff, 1, 0, 0, EnumSymbol.NONE).setHeatCap(0.25D); LAVA = new FluidType( "LAVA", 0xFF3300, 4, 0, 0, EnumSymbol.NOWATER).setTemp(1200); - DEUTERIUM = new FluidTypeCombustible( "DEUTERIUM", 0x0000FF, 3, 4, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.HIGH, 10_000).setHeatEnergy(5_000); - TRITIUM = new FluidTypeCombustible( "TRITIUM", 0x000099, 3, 4, 0, EnumSymbol.RADIATION).setCombustionEnergy(FuelGrade.HIGH, 10_000).setHeatEnergy(5_000); - OIL = new FluidTypeFlammable( "OIL", 0x020202, 2, 1, 0, EnumSymbol.NONE).addContainers(0x424242, ExtContainer.CANISTER); - HOTOIL = new FluidTypeFlammable( "HOTOIL", 0x300900, 2, 3, 0, EnumSymbol.NONE).setTemp(350); - HEAVYOIL = new FluidTypeFlammable( "HEAVYOIL", 0x141312, 2, 1, 0, EnumSymbol.NONE).addContainers(0x513F39, ExtContainer.CANISTER); - BITUMEN = new FluidType( "BITUMEN", 0x1f2426, 2, 0, 0, EnumSymbol.NONE).addContainers(0x5A5877, ExtContainer.CANISTER); - SMEAR = new FluidTypeFlammable( "SMEAR", 0x190f01, 2, 1, 0, EnumSymbol.NONE).setHeatEnergy(50_000).addContainers(0x624F3B, ExtContainer.CANISTER); - HEATINGOIL = new FluidTypeCombustible( "HEATINGOIL", 0x211806, 2, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.LOW, 100_000).setHeatEnergy(150_000).addContainers(0x694235, ExtContainer.CANISTER); //TODO: and so forth - RECLAIMED = new FluidTypeCombustible( "RECLAIMED", 0x332b22, 2, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.LOW, 200_000).setHeatEnergy(100_000).addContainers(0xF65723, ExtContainer.CANISTER); - PETROIL = new FluidTypeCombustible( "PETROIL", 0x44413d, 1, 3, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.MEDIUM, 300_000).setHeatEnergy(125_000).addContainers(0x2369F6, ExtContainer.CANISTER); - LUBRICANT = new FluidType( "LUBRICANT", 0x606060, 2, 1, 0, EnumSymbol.NONE).addContainers(0xF1CC05, ExtContainer.CANISTER); - NAPHTHA = new FluidTypeFlammable( "NAPHTHA", 0x595744, 2, 1, 0, EnumSymbol.NONE).addContainers(0x5F6D44, ExtContainer.CANISTER); - DIESEL = new FluidTypeCombustible( "DIESEL", 0xf2eed5, 1, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.HIGH, 500_000).setHeatEnergy(200_000).addContainers(0xFF2C2C, ExtContainer.CANISTER); - LIGHTOIL = new FluidTypeFlammable( "LIGHTOIL", 0x8c7451, 1, 2, 0, EnumSymbol.NONE).addContainers(0xB46B52, ExtContainer.CANISTER); - KEROSENE = new FluidTypeCombustible( "KEROSENE", 0xffa5d2, 1, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.AERO, 1_250_000).setHeatEnergy(300_000).addContainers(0xFF377D, ExtContainer.CANISTER); - GAS = new FluidTypeFlammable( "GAS", 0xfffeed, 1, 4, 1, EnumSymbol.NONE); - PETROLEUM = new FluidTypeFlammable( "PETROLEUM", 0x7cb7c9, 1, 4, 1, EnumSymbol.NONE); - LPG = new FluidTypeCombustible( "LPG", 0x4747EA, 1, 3, 1, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.HIGH, 450_000).setHeatEnergy(200_000); - BIOGAS = new FluidTypeFlammable( "BIOGAS", 0xbfd37c, 1, 4, 1, EnumSymbol.NONE); - BIOFUEL = new FluidTypeCombustible( "BIOFUEL", 0xeef274, 1, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.HIGH, 400_000).setHeatEnergy(150_000).addContainers(0x9EB623, ExtContainer.CANISTER); - NITAN = new FluidTypeCombustible( "NITAN", 0x8018ad, 2, 4, 1, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.HIGH, 5_000_000).setHeatEnergy(2_000_000).addContainers(0x6B238C, ExtContainer.CANISTER); - UF6 = new FluidType( "UF6", 0xD1CEBE, 4, 0, 2, EnumSymbol.RADIATION).addTraits(FluidTrait.CORROSIVE); - PUF6 = new FluidType( "PUF6", 0x4C4C4C, 4, 0, 4, EnumSymbol.RADIATION).addTraits(FluidTrait.CORROSIVE); + DEUTERIUM = new CombustibleGas( "DEUTERIUM", 0x0000FF, 3, 4, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.HIGH, 10_000).setHeatEnergy(5_000); + TRITIUM = new CombustibleGas( "TRITIUM", 0x000099, 3, 4, 0, EnumSymbol.RADIATION).setCombustionEnergy(FuelGrade.HIGH, 10_000).setHeatEnergy(5_000); + OIL = new Oil( "OIL", 0x020202, 2, 1, 0, EnumSymbol.NONE).addContainers(0x424242, ExtContainer.CANISTER); + HOTOIL = new Oil( "HOTOIL", 0x300900, 2, 3, 0, EnumSymbol.NONE).setTemp(350); + HEAVYOIL = new Oil( "HEAVYOIL", 0x141312, 2, 1, 0, EnumSymbol.NONE).addContainers(0x513F39, ExtContainer.CANISTER); + BITUMEN = new Petrochemical( "BITUMEN", 0x1f2426, 2, 0, 0, EnumSymbol.NONE).addContainers(0x5A5877, ExtContainer.CANISTER); + SMEAR = new Oil( "SMEAR", 0x190f01, 2, 1, 0, EnumSymbol.NONE).setHeatEnergy(50_000).addContainers(0x624F3B, ExtContainer.CANISTER); + HEATINGOIL = new Fuel( "HEATINGOIL", 0x211806, 2, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.LOW, 100_000).setHeatEnergy(150_000).addContainers(0x694235, ExtContainer.CANISTER); + RECLAIMED = new Fuel( "RECLAIMED", 0x332b22, 2, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.LOW, 200_000).setHeatEnergy(100_000).addContainers(0xF65723, ExtContainer.CANISTER); + PETROIL = new Fuel( "PETROIL", 0x44413d, 1, 3, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.MEDIUM, 300_000).setHeatEnergy(125_000).addContainers(0x2369F6, ExtContainer.CANISTER); + LUBRICANT = new Petrochemical( "LUBRICANT", 0x606060, 2, 1, 0, EnumSymbol.NONE).addContainers(0xF1CC05, ExtContainer.CANISTER); + NAPHTHA = new Oil( "NAPHTHA", 0x595744, 2, 1, 0, EnumSymbol.NONE).addContainers(0x5F6D44, ExtContainer.CANISTER); + DIESEL = new Fuel( "DIESEL", 0xf2eed5, 1, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.HIGH, 500_000).setHeatEnergy(200_000).addContainers(0xFF2C2C, ExtContainer.CANISTER); + LIGHTOIL = new Oil( "LIGHTOIL", 0x8c7451, 1, 2, 0, EnumSymbol.NONE).addContainers(0xB46B52, ExtContainer.CANISTER); + KEROSENE = new Fuel( "KEROSENE", 0xffa5d2, 1, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.AERO, 1_250_000).setHeatEnergy(300_000).addContainers(0xFF377D, ExtContainer.CANISTER); + GAS = new FlammableOilGas( "GAS", 0xfffeed, 1, 4, 1, EnumSymbol.NONE).setHeatEnergy(10_000); + PETROLEUM = new FlammableOilGas( "PETROLEUM", 0x7cb7c9, 1, 4, 1, EnumSymbol.NONE).setHeatEnergy(25_000); + LPG = new Fuel( "LPG", 0x4747EA, 1, 3, 1, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.HIGH, 450_000).setHeatEnergy(200_000); + BIOGAS = new FlammableOilGas( "BIOGAS", 0xbfd37c, 1, 4, 1, EnumSymbol.NONE); + BIOFUEL = new Fuel( "BIOFUEL", 0xeef274, 1, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.HIGH, 400_000).setHeatEnergy(150_000).addContainers(0x9EB623, ExtContainer.CANISTER); + NITAN = new Fuel( "NITAN", 0x8018ad, 2, 4, 1, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.HIGH, 5_000_000).setHeatEnergy(2_000_000).addContainers(0x6B238C, ExtContainer.CANISTER); + UF6 = new RadioactiveGas( "UF6", 0xD1CEBE, 4, 0, 2, EnumSymbol.RADIATION).addTraits(FluidTrait.CORROSIVE); + PUF6 = new RadioactiveGas( "PUF6", 0x4C4C4C, 4, 0, 4, EnumSymbol.RADIATION).addTraits(FluidTrait.CORROSIVE); SAS3 = new FluidType( "SAS3", 0x4ffffc, 5, 0, 4, EnumSymbol.RADIATION).addTraits(FluidTrait.CORROSIVE); SCHRABIDIC = new FluidType( "SCHRABIDIC", 0x006B6B, 5, 0, 5, EnumSymbol.ACID).addTraits(FluidTrait.CORROSIVE_2); - AMAT = new FluidType( "AMAT", 0x010101, 5, 0, 5, EnumSymbol.ANTIMATTER).addTraits(FluidTrait.AMAT); - ASCHRAB = new FluidType( "ASCHRAB", 0xb50000, 5, 0, 5, EnumSymbol.ANTIMATTER).addTraits(FluidTrait.AMAT); + AMAT = new Antimatter( "AMAT", 0x010101, 5, 0, 5, EnumSymbol.ANTIMATTER); + ASCHRAB = new Antimatter( "ASCHRAB", 0xb50000, 5, 0, 5, EnumSymbol.ANTIMATTER); ACID = new FluidType( "ACID", 0xfff7aa, 3, 0, 3, EnumSymbol.OXIDIZER).addTraits(FluidTrait.CORROSIVE); WATZ = new FluidType( "WATZ", 0x86653E, 4, 0, 3, EnumSymbol.ACID).addTraits(FluidTrait.CORROSIVE_2); CRYOGEL = new FluidType( "CRYOGEL", 0x32ffff, 2, 0, 0, EnumSymbol.CROYGENIC).setTemp(-170); - HYDROGEN = new FluidTypeCombustible( "HYDROGEN", 0x4286f4, 3, 4, 0, EnumSymbol.CROYGENIC).setCombustionEnergy(FuelGrade.HIGH, 10_000).setHeatEnergy(5_000); + HYDROGEN = new FluidTypeCombustible( "HYDROGEN", 0x4286f4, 3, 4, 0, EnumSymbol.CROYGENIC).setCombustionEnergy(FuelGrade.HIGH, 10_000).setHeatEnergy(5_000).addTraits(FluidTrait.LIQUID); OXYGEN = new FluidType( "OXYGEN", 0x98bdf9, 3, 0, 0, EnumSymbol.CROYGENIC); XENON = new FluidType( "XENON", 0xba45e8, 0, 0, 0, EnumSymbol.ASPHYXIANT); BALEFIRE = new FluidType( "BALEFIRE", 0x28e02e, 4, 4, 3, EnumSymbol.RADIATION).setTemp(1500).addTraits(FluidTrait.CORROSIVE); MERCURY = new FluidType( "MERCURY", 0x808080, 2, 0, 0, EnumSymbol.NONE); PAIN = new FluidType( "PAIN", 0x938541, 2, 0, 1, EnumSymbol.ACID).setTemp(300).addTraits(FluidTrait.CORROSIVE); - WASTEFLUID = new FluidType( "WASTEFLUID", 0x544400, 2, 0, 1, EnumSymbol.RADIATION).addTraits(FluidTrait.NO_CONTAINER); - WASTEGAS = new FluidType( "WASTEGAS", 0xB8B8B8, 2, 0, 1, EnumSymbol.RADIATION).addTraits(FluidTrait.NO_CONTAINER); - GASOLINE = new FluidTypeCombustible( "GASOLINE", 0x445772, 1, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.HIGH, 1_000_000).setHeatEnergy(400_000).addContainers(0x2F7747, ExtContainer.CANISTER); - COALGAS = new FluidTypeCombustible( "COALGAS", 0x445772, 1, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.MEDIUM, 150_000).setHeatEnergy(75_000); - SPENTSTEAM = new FluidType( "SPENTSTEAM", 0x445772, 2, 0, 0, EnumSymbol.NONE).addTraits(FluidTrait.NO_CONTAINER).setCompression(1D); - FRACKSOL = new FluidType( "FRACKSOL", 0x798A6B, 1, 3, 3, EnumSymbol.ACID).addTraits(FluidTrait.CORROSIVE).addContainers(0x4F887F, ExtContainer.CANISTER); + WASTEFLUID = new RadioactiveLiquid( "WASTEFLUID", 0x544400, 2, 0, 1, EnumSymbol.RADIATION).addTraits(FluidTrait.NO_CONTAINER); + WASTEGAS = new RadioactiveGas( "WASTEGAS", 0xB8B8B8, 2, 0, 1, EnumSymbol.RADIATION).addTraits(FluidTrait.NO_CONTAINER); + GASOLINE = new Fuel( "GASOLINE", 0x445772, 1, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.HIGH, 1_000_000).setHeatEnergy(400_000).addContainers(0x2F7747, ExtContainer.CANISTER); + COALGAS = new Fuel( "COALGAS", 0x445772, 1, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.MEDIUM, 150_000).setHeatEnergy(75_000); + SPENTSTEAM = new Gas( "SPENTSTEAM", 0x445772, 2, 0, 0, EnumSymbol.NONE).addTraits(FluidTrait.NO_CONTAINER).setCompression(1D); + FRACKSOL = new Petrochemical( "FRACKSOL", 0x798A6B, 1, 3, 3, EnumSymbol.ACID).addTraits(FluidTrait.CORROSIVE).addContainers(0x4F887F, ExtContainer.CANISTER); PLASMA_DT = new FluidType( "PLASMA_DT", 0xF7AFDE, 0, 4, 0, EnumSymbol.RADIATION).setTemp(3250).addTraits(FluidTrait.NO_CONTAINER, FluidTrait.NO_ID); PLASMA_HD = new FluidType( "PLASMA_HD", 0xF0ADF4, 0, 4, 0, EnumSymbol.RADIATION).setTemp(2500).addTraits(FluidTrait.NO_CONTAINER, FluidTrait.NO_ID); PLASMA_HT = new FluidType( "PLASMA_HT", 0xD1ABF2, 0, 4, 0, EnumSymbol.RADIATION).setTemp(3000).addTraits(FluidTrait.NO_CONTAINER, FluidTrait.NO_ID); PLASMA_XM = new FluidType( "PLASMA_XM", 0xC6A5FF, 0, 4, 1, EnumSymbol.RADIATION).setTemp(4250).addTraits(FluidTrait.NO_CONTAINER, FluidTrait.NO_ID); PLASMA_BF = new FluidType( "PLASMA_BF", 0xA7F1A3, 4, 5, 4, EnumSymbol.ANTIMATTER).setTemp(8500).addTraits(FluidTrait.NO_CONTAINER, FluidTrait.NO_ID); - CARBONDIOXIDE = new FluidType( "CARBONDIOXIDE", 0x404040, 3, 0, 0, EnumSymbol.ASPHYXIANT); + CARBONDIOXIDE = new Gas( "CARBONDIOXIDE", 0x404040, 3, 0, 0, EnumSymbol.ASPHYXIANT); PLASMA_DH3 = new FluidType( "PLASMA_DH3", 0xFF83AA, 0, 4, 0, EnumSymbol.RADIATION).setTemp(3480).addTraits(FluidTrait.NO_CONTAINER, FluidTrait.NO_ID); - HELIUM3 = new FluidType( "HELIUM3", 0xFCF0C4, 3, 4, 0, EnumSymbol.ASPHYXIANT); + HELIUM3 = new Gas( "HELIUM3", 0xFCF0C4, 3, 4, 0, EnumSymbol.ASPHYXIANT); DEATH = new FluidType( "DEATH", 0x717A88, 2, 0, 1, EnumSymbol.ACID).setTemp(300).addTraits(FluidTrait.CORROSIVE_2, FluidTrait.LEAD_CONTAINER); - ETHANOL = new FluidTypeCombustible( "ETHANOL", 0xe0ffff, 2, 3, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.HIGH, 200_000).setHeatEnergy(75_000).addContainers(0xEAFFF3, ExtContainer.CANISTER); + ETHANOL = new Fuel( "ETHANOL", 0xe0ffff, 2, 3, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.HIGH, 200_000).setHeatEnergy(75_000).addContainers(0xEAFFF3, ExtContainer.CANISTER); HEAVYWATER = new FluidType( "HEAVYWATER", 0x00a0b0, 1, 0, 0, EnumSymbol.NONE); - CRACKOIL = new FluidTypeFlammable( "CRACKOIL", 0x020202, 2, 1, 0, EnumSymbol.NONE); - COALOIL = new FluidTypeFlammable( "COALOIL", 0x020202, 2, 1, 0, EnumSymbol.NONE); - HOTCRACKOIL = new FluidTypeFlammable( "HOTCRACKOIL", 0x300900, 2, 3, 0, EnumSymbol.NONE).setTemp(350); - NAPHTHA_CRACK = new FluidTypeFlammable( "NAPHTHA_CRACK", 0x595744, 2, 1, 0, EnumSymbol.NONE); - LIGHTOIL_CRACK = new FluidTypeFlammable( "LIGHTOIL_CRACK", 0x8c7451, 1, 2, 0, EnumSymbol.NONE); - DIESEL_CRACK = new FluidTypeCombustible( "DIESEL_CRACK", 0xf2eed5, 1, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.HIGH, 450_000).setHeatEnergy(200_000); - AROMATICS = new FluidTypeFlammable( "AROMATICS", 0x68A09A, 1, 4, 1, EnumSymbol.NONE); - UNSATURATEDS = new FluidTypeFlammable( "UNSATURATEDS", 0x628FAE, 1, 4, 1, EnumSymbol.NONE); - SALIENT = new FluidType(69, "SALIENT", 0x457F2D, 0, 0, 0, EnumSymbol.NONE); + CRACKOIL = new Oil( "CRACKOIL", 0x020202, 2, 1, 0, EnumSymbol.NONE); + COALOIL = new Oil( "COALOIL", 0x020202, 2, 1, 0, EnumSymbol.NONE); + HOTCRACKOIL = new Oil( "HOTCRACKOIL", 0x300900, 2, 3, 0, EnumSymbol.NONE).setTemp(350); + NAPHTHA_CRACK = new Oil( "NAPHTHA_CRACK", 0x595744, 2, 1, 0, EnumSymbol.NONE); + LIGHTOIL_CRACK = new Oil( "LIGHTOIL_CRACK", 0x8c7451, 1, 2, 0, EnumSymbol.NONE); + DIESEL_CRACK = new Fuel( "DIESEL_CRACK", 0xf2eed5, 1, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.HIGH, 450_000).setHeatEnergy(200_000); + AROMATICS = new Oil( "AROMATICS", 0x68A09A, 1, 4, 1, EnumSymbol.NONE); + UNSATURATEDS = new Oil( "UNSATURATEDS", 0x628FAE, 1, 4, 1, EnumSymbol.NONE); + SALIENT = new FluidType( "SALIENT", 0x457F2D, 0, 0, 0, EnumSymbol.NONE); XPJUICE = new FluidType( "XPJUICE", 0xBBFF09, 0, 0, 0, EnumSymbol.NONE); ENDERJUICE = new FluidType( "ENDERJUICE", 0x127766, 0, 0, 0, EnumSymbol.NONE); - PETROIL_LEADED = new FluidTypeCombustible( "PETROIL_LEADED", 0x44413d, 1, 3, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.MEDIUM, 450_000).setHeatEnergy(((FluidTypeFlammable)PETROIL).getHeatEnergy()); - GASOLINE_LEADED = new FluidTypeCombustible( "GASOLINE_LEADED", 0x445772, 1, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.HIGH, 1_500_000).setHeatEnergy(((FluidTypeFlammable)GASOLINE).getHeatEnergy()); - COALGAS_LEADED = new FluidTypeCombustible( "COALGAS_LEADED", 0x445772, 1, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.MEDIUM, 250_000).setHeatEnergy(((FluidTypeFlammable)COALGAS).getHeatEnergy()); + PETROIL_LEADED = new Fuel( "PETROIL_LEADED", 0x44413d, 1, 3, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.MEDIUM, 450_000).setHeatEnergy(((FluidTypeFlammable)PETROIL).getHeatEnergy()); + GASOLINE_LEADED = new Fuel( "GASOLINE_LEADED", 0x445772, 1, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.HIGH, 1_500_000).setHeatEnergy(((FluidTypeFlammable)GASOLINE).getHeatEnergy()); + COALGAS_LEADED = new Fuel( "COALGAS_LEADED", 0x445772, 1, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.MEDIUM, 250_000).setHeatEnergy(((FluidTypeFlammable)COALGAS).getHeatEnergy()); SULFURIC_ACID = new FluidType( "SULFURIC_ACID", 0xB0AA64, 3, 0, 2, EnumSymbol.ACID).addTraits(FluidTrait.CORROSIVE); COOLANT_HOT = new FluidType( "COOLANT_HOT", 0x99525E, 1, 0, 0, EnumSymbol.NONE).setTemp(600).setHeatCap(COOLANT.heatCap); MUG = new FluidType( "MUG", 0x4B2D28, 0, 0, 0, EnumSymbol.NONE).setHeatCap(1D); - MUG_HOT = new FluidType( "MUG_HOT", 0x6B2A20, 0, 0, 0, EnumSymbol.NONE).setHeatCap(MUG.heatCap).setTemp(500); + MUG_HOT = new FluidType(78, "MUG_HOT", 0x6B2A20, 0, 0, 0, EnumSymbol.NONE).setHeatCap(MUG.heatCap).setTemp(500); // ^ ^ ^ ^ ^ ^ ^ ^ diff --git a/src/main/java/com/hbm/inventory/fluid/types/Antimatter.java b/src/main/java/com/hbm/inventory/fluid/types/Antimatter.java new file mode 100644 index 000000000..a077efc53 --- /dev/null +++ b/src/main/java/com/hbm/inventory/fluid/types/Antimatter.java @@ -0,0 +1,12 @@ +package com.hbm.inventory.fluid.types; + +import com.hbm.inventory.fluid.FluidType; +import com.hbm.render.util.EnumSymbol; + +public class Antimatter extends FluidType { + + public Antimatter(String name, int color, int p, int f, int r, EnumSymbol symbol) { + super(name, color, p, f, r, symbol); + this.addTraits(FluidTrait.AMAT); + } +} diff --git a/src/main/java/com/hbm/inventory/fluid/types/CombustibleGas.java b/src/main/java/com/hbm/inventory/fluid/types/CombustibleGas.java new file mode 100644 index 000000000..b260f0fe1 --- /dev/null +++ b/src/main/java/com/hbm/inventory/fluid/types/CombustibleGas.java @@ -0,0 +1,11 @@ +package com.hbm.inventory.fluid.types; + +import com.hbm.render.util.EnumSymbol; + +public class CombustibleGas extends FluidTypeCombustible { + + public CombustibleGas(String compat, int color, int p, int f, int r, EnumSymbol symbol) { + super(compat, color, p, f, r, symbol); + this.addTraits(FluidTrait.GASEOUS); + } +} diff --git a/src/main/java/com/hbm/inventory/fluid/types/FlammableGas.java b/src/main/java/com/hbm/inventory/fluid/types/FlammableGas.java new file mode 100644 index 000000000..0216a9029 --- /dev/null +++ b/src/main/java/com/hbm/inventory/fluid/types/FlammableGas.java @@ -0,0 +1,11 @@ +package com.hbm.inventory.fluid.types; + +import com.hbm.render.util.EnumSymbol; + +public class FlammableGas extends FluidTypeFlammable { + + public FlammableGas(String compat, int color, int p, int f, int r, EnumSymbol symbol) { + super(compat, color, p, f, r, symbol); + this.addTraits(FluidTrait.GASEOUS); + } +} diff --git a/src/main/java/com/hbm/inventory/fluid/types/FlammableOilGas.java b/src/main/java/com/hbm/inventory/fluid/types/FlammableOilGas.java new file mode 100644 index 000000000..d7909ffda --- /dev/null +++ b/src/main/java/com/hbm/inventory/fluid/types/FlammableOilGas.java @@ -0,0 +1,11 @@ +package com.hbm.inventory.fluid.types; + +import com.hbm.render.util.EnumSymbol; + +public class FlammableOilGas extends FlammableGas { + + public FlammableOilGas(String compat, int color, int p, int f, int r, EnumSymbol symbol) { + super(compat, color, p, f, r, symbol); + this.addTraits(FluidTrait.PETROCHEMICAL); + } +} diff --git a/src/main/java/com/hbm/inventory/fluid/FluidTypeCombustible.java b/src/main/java/com/hbm/inventory/fluid/types/FluidTypeCombustible.java similarity index 97% rename from src/main/java/com/hbm/inventory/fluid/FluidTypeCombustible.java rename to src/main/java/com/hbm/inventory/fluid/types/FluidTypeCombustible.java index 3f1702cd3..449d4b673 100644 --- a/src/main/java/com/hbm/inventory/fluid/FluidTypeCombustible.java +++ b/src/main/java/com/hbm/inventory/fluid/types/FluidTypeCombustible.java @@ -1,4 +1,4 @@ -package com.hbm.inventory.fluid; +package com.hbm.inventory.fluid.types; import java.util.List; diff --git a/src/main/java/com/hbm/inventory/fluid/FluidTypeFlammable.java b/src/main/java/com/hbm/inventory/fluid/types/FluidTypeFlammable.java similarity index 92% rename from src/main/java/com/hbm/inventory/fluid/FluidTypeFlammable.java rename to src/main/java/com/hbm/inventory/fluid/types/FluidTypeFlammable.java index 3b928c809..37bf5e8e0 100644 --- a/src/main/java/com/hbm/inventory/fluid/FluidTypeFlammable.java +++ b/src/main/java/com/hbm/inventory/fluid/types/FluidTypeFlammable.java @@ -1,7 +1,8 @@ -package com.hbm.inventory.fluid; +package com.hbm.inventory.fluid.types; import java.util.List; +import com.hbm.inventory.fluid.FluidType; import com.hbm.render.util.EnumSymbol; import com.hbm.util.BobMathUtil; diff --git a/src/main/java/com/hbm/inventory/fluid/types/Fuel.java b/src/main/java/com/hbm/inventory/fluid/types/Fuel.java new file mode 100644 index 000000000..d37c3fa20 --- /dev/null +++ b/src/main/java/com/hbm/inventory/fluid/types/Fuel.java @@ -0,0 +1,11 @@ +package com.hbm.inventory.fluid.types; + +import com.hbm.render.util.EnumSymbol; + +public class Fuel extends FluidTypeCombustible { + + public Fuel(String compat, int color, int p, int f, int r, EnumSymbol symbol) { + super(compat, color, p, f, r, symbol); + this.addTraits(FluidTrait.LIQUID, FluidTrait.PETROCHEMICAL); + } +} diff --git a/src/main/java/com/hbm/inventory/fluid/types/Gas.java b/src/main/java/com/hbm/inventory/fluid/types/Gas.java new file mode 100644 index 000000000..103492c6a --- /dev/null +++ b/src/main/java/com/hbm/inventory/fluid/types/Gas.java @@ -0,0 +1,12 @@ +package com.hbm.inventory.fluid.types; + +import com.hbm.inventory.fluid.FluidType; +import com.hbm.render.util.EnumSymbol; + +public class Gas extends FluidType { + + public Gas(String name, int color, int p, int f, int r, EnumSymbol symbol) { + super(name, color, p, f, r, symbol); + this.addTraits(FluidTrait.GASEOUS); + } +} diff --git a/src/main/java/com/hbm/inventory/fluid/types/Oil.java b/src/main/java/com/hbm/inventory/fluid/types/Oil.java new file mode 100644 index 000000000..915895d89 --- /dev/null +++ b/src/main/java/com/hbm/inventory/fluid/types/Oil.java @@ -0,0 +1,11 @@ +package com.hbm.inventory.fluid.types; + +import com.hbm.render.util.EnumSymbol; + +public class Oil extends FluidTypeFlammable { + + public Oil(String compat, int color, int p, int f, int r, EnumSymbol symbol) { + super(compat, color, p, f, r, symbol); + this.addTraits(FluidTrait.LIQUID, FluidTrait.PETROCHEMICAL); + } +} diff --git a/src/main/java/com/hbm/inventory/fluid/types/Petrochemical.java b/src/main/java/com/hbm/inventory/fluid/types/Petrochemical.java new file mode 100644 index 000000000..ec6258ae8 --- /dev/null +++ b/src/main/java/com/hbm/inventory/fluid/types/Petrochemical.java @@ -0,0 +1,12 @@ +package com.hbm.inventory.fluid.types; + +import com.hbm.inventory.fluid.FluidType; +import com.hbm.render.util.EnumSymbol; + +public class Petrochemical extends FluidType { + + public Petrochemical(String name, int color, int p, int f, int r, EnumSymbol symbol) { + super(name, color, p, f, r, symbol); + this.addTraits(FluidTrait.LIQUID, FluidTrait.PETROCHEMICAL); + } +} diff --git a/src/main/java/com/hbm/inventory/fluid/types/RadioactiveGas.java b/src/main/java/com/hbm/inventory/fluid/types/RadioactiveGas.java new file mode 100644 index 000000000..9e7127205 --- /dev/null +++ b/src/main/java/com/hbm/inventory/fluid/types/RadioactiveGas.java @@ -0,0 +1,12 @@ +package com.hbm.inventory.fluid.types; + +import com.hbm.inventory.fluid.FluidType; +import com.hbm.render.util.EnumSymbol; + +public class RadioactiveGas extends FluidType { + + public RadioactiveGas(String name, int color, int p, int f, int r, EnumSymbol symbol) { + super(name, color, p, f, r, symbol); + this.addTraits(FluidTrait.GASEOUS); + } +} diff --git a/src/main/java/com/hbm/inventory/fluid/types/RadioactiveLiquid.java b/src/main/java/com/hbm/inventory/fluid/types/RadioactiveLiquid.java new file mode 100644 index 000000000..a5fa99234 --- /dev/null +++ b/src/main/java/com/hbm/inventory/fluid/types/RadioactiveLiquid.java @@ -0,0 +1,12 @@ +package com.hbm.inventory.fluid.types; + +import com.hbm.inventory.fluid.FluidType; +import com.hbm.render.util.EnumSymbol; + +public class RadioactiveLiquid extends FluidType { + + public RadioactiveLiquid(String name, int color, int p, int f, int r, EnumSymbol symbol) { + super(name, color, p, f, r, symbol); + this.addTraits(FluidTrait.LIQUID); + } +} diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineGasFlare.java b/src/main/java/com/hbm/inventory/gui/GUIMachineGasFlare.java index 64854f31c..13e5012c8 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineGasFlare.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineGasFlare.java @@ -2,19 +2,25 @@ package com.hbm.inventory.gui; import org.lwjgl.opengl.GL11; -import com.hbm.inventory.FluidTank; import com.hbm.inventory.container.ContainerMachineGasFlare; +import com.hbm.inventory.fluid.FluidType.FluidTrait; +import com.hbm.inventory.fluid.types.FluidTypeFlammable; import com.hbm.lib.RefStrings; +import com.hbm.packet.NBTControlPacket; +import com.hbm.packet.PacketDispatcher; import com.hbm.tileentity.machine.oil.TileEntityMachineGasFlare; +import com.hbm.util.I18nUtil; import net.minecraft.client.Minecraft; +import net.minecraft.client.audio.PositionedSoundRecord; import net.minecraft.client.resources.I18n; import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.ResourceLocation; public class GUIMachineGasFlare extends GuiInfoContainer { - private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/gui_gasFlare.png"); + private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/generators/gui_flare_stack.png"); private TileEntityMachineGasFlare flare; public GUIMachineGasFlare(InventoryPlayer invPlayer, TileEntityMachineGasFlare tedf) { @@ -22,22 +28,43 @@ public class GUIMachineGasFlare extends GuiInfoContainer { flare = tedf; this.xSize = 176; - this.ySize = 166; + this.ySize = 203; } @Override public void drawScreen(int mouseX, int mouseY, float f) { super.drawScreen(mouseX, mouseY, f); - flare.tank.renderTankInfo(this, mouseX, mouseY, guiLeft + 80, guiTop + 69 - 52, 34, 52); - this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 8, guiTop + 69 - 52, 16, 52, flare.power, flare.maxPower); + this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 79, guiTop + 20, 35, 10, mouseX, mouseY, I18nUtil.resolveKeyArray("flare.valve")); + this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 79, guiTop + 54, 35, 14, mouseX, mouseY, I18nUtil.resolveKeyArray("flare.ignition")); + + flare.tank.renderTankInfo(this, mouseX, mouseY, guiLeft + 35, guiTop + 69 - 52, 16, 52); + this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 143, guiTop + 69 - 52, 16, 52, flare.power, flare.maxPower); + } + + protected void mouseClicked(int x, int y, int i) { + super.mouseClicked(x, y, i); + + if(guiLeft + 89 <= x && guiLeft + 89 + 16 > x && guiTop + 20 < y && guiTop + 20 + 10 >= y) { + mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); + NBTTagCompound data = new NBTTagCompound(); + data.setBoolean("valve", true); + PacketDispatcher.wrapper.sendToServer(new NBTControlPacket(data, flare.xCoord, flare.yCoord, flare.zCoord)); + + } else if(guiLeft + 89 <= x && guiLeft + 89 + 16 > x && guiTop + 54 < y && guiTop + 54 + 14 >= y) { + mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); + NBTTagCompound data = new NBTTagCompound(); + data.setBoolean("dial", true); + PacketDispatcher.wrapper.sendToServer(new NBTControlPacket(data, flare.xCoord, flare.yCoord, flare.zCoord)); + } + } @Override protected void drawGuiContainerForegroundLayer( int i, int j) { - String name = this.flare.hasCustomInventoryName() ? this.flare.getInventoryName() : I18n.format(this.flare.getInventoryName()); + //String name = this.flare.hasCustomInventoryName() ? this.flare.getInventoryName() : I18n.format(this.flare.getInventoryName()); - this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); + //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); } @@ -48,8 +75,14 @@ public class GUIMachineGasFlare extends GuiInfoContainer { drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); int j = (int)flare.getPowerScaled(52); - drawTexturedModalRect(guiLeft + 8, guiTop + 69 - j, 176, 52 - j, 16, j); + drawTexturedModalRect(guiLeft + 143, guiTop + 69 - j, 176, 94 - j, 16, j); + + if(flare.isOn) drawTexturedModalRect(guiLeft + 79, guiTop + 20, 176, 0, 35, 10); + if(flare.doesBurn) drawTexturedModalRect(guiLeft + 79, guiTop + 54, 176, 10, 35, 14); - flare.tank.renderTank(guiLeft + 80, guiTop + 69, this.zLevel, 34, 52); + if(flare.isOn && flare.doesBurn && flare.tank.getTankType().traits.contains(FluidTrait.GASEOUS) && flare.tank.getTankType() instanceof FluidTypeFlammable) + drawTexturedModalRect(guiLeft + 88, guiTop + 34, 176, 24, 18, 18); + + flare.tank.renderTank(guiLeft + 35, guiTop + 69, this.zLevel, 16, 52); } } diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index 3d31e736e..6bdd8b90e 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -29,6 +29,7 @@ import net.minecraftforge.client.MinecraftForgeClient; import net.minecraftforge.client.model.AdvancedModelLoader; import net.minecraftforge.common.MinecraftForge; +import java.awt.Color; import java.awt.Desktop; import java.net.URI; import java.util.HashMap; @@ -1504,6 +1505,12 @@ public class ClientProxy extends ServerProxy { fx.setBaseScale(data.getFloat("base")); fx.setMaxScale(data.getFloat("max")); fx.setLife(data.getInteger("life") / (particleSetting + 1)); + + if(data.hasKey("color")) { + Color color = new Color(data.getInteger("color")); + fx.setRBGColorF(color.getRed() / 255F, color.getGreen() / 255F, color.getBlue() / 255F); + } + Minecraft.getMinecraft().effectRenderer.addEffect(fx); } } diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index 97fbcc12d..d286cd492 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -74,7 +74,7 @@ public class ResourceManager { public static final IModelCustom solidifier = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/solidifier.obj")); //Flare Stack - public static final IModelCustom oilflare = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/oilFlare.obj")); + public static final IModelCustom oilflare = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/flare_stack.obj")); //Tank public static final IModelCustom fluidtank = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/fluidtank.obj")); @@ -369,7 +369,7 @@ public class ResourceManager { public static final ResourceLocation solidifier_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/solidifier.png"); //Flare Stack - public static final ResourceLocation oilflare_tex = new ResourceLocation(RefStrings.MODID, "textures/models/oilFlareTexture.png"); + public static final ResourceLocation oilflare_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/flare_stack.png"); //Tank public static final ResourceLocation tank_tex = new ResourceLocation(RefStrings.MODID, "textures/models/tank.png"); diff --git a/src/main/java/com/hbm/render/item/ItemRenderLibrary.java b/src/main/java/com/hbm/render/item/ItemRenderLibrary.java index 48eee5a59..6d707e972 100644 --- a/src/main/java/com/hbm/render/item/ItemRenderLibrary.java +++ b/src/main/java/com/hbm/render/item/ItemRenderLibrary.java @@ -325,13 +325,15 @@ public class ItemRenderLibrary { renderers.put(Item.getItemFromBlock(ModBlocks.machine_flare), new ItemRenderBase() { public void renderInventory() { GL11.glTranslated(0, -4, 0); - GL11.glScaled(2.5, 2.5, 2.5); + GL11.glScaled(2.25, 2.25, 2.25); } public void renderCommon() { GL11.glScaled(0.5, 0.5, 0.5); - GL11.glDisable(GL11.GL_CULL_FACE); + GL11.glDisable(GL11.GL_CULL_FACE); + GL11.glShadeModel(GL11.GL_SMOOTH); bindTexture(ResourceManager.oilflare_tex); ResourceManager.oilflare.renderAll(); - GL11.glEnable(GL11.GL_CULL_FACE); + GL11.glShadeModel(GL11.GL_FLAT); + GL11.glEnable(GL11.GL_CULL_FACE); }}); renderers.put(Item.getItemFromBlock(ModBlocks.machine_refinery), new ItemRenderBase() { diff --git a/src/main/java/com/hbm/render/tileentity/RenderGasFlare.java b/src/main/java/com/hbm/render/tileentity/RenderGasFlare.java index 582fbfc60..d25f4aef1 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderGasFlare.java +++ b/src/main/java/com/hbm/render/tileentity/RenderGasFlare.java @@ -2,30 +2,28 @@ package com.hbm.render.tileentity; import org.lwjgl.opengl.GL11; -import com.hbm.lib.RefStrings; import com.hbm.main.ResourceManager; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.model.AdvancedModelLoader; -import net.minecraftforge.client.model.IModelCustom; public class RenderGasFlare extends TileEntitySpecialRenderer { - @Override + @Override public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float f) { - - GL11.glPushMatrix(); - GL11.glTranslated(x + 0.5D, y, z + 0.5D); - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glDisable(GL11.GL_CULL_FACE); + + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5D, y, z + 0.5D); + GL11.glEnable(GL11.GL_LIGHTING); GL11.glRotatef(180, 0F, 1F, 0F); - bindTexture(ResourceManager.oilflare_tex); - - ResourceManager.oilflare.renderAll(); + GL11.glDisable(GL11.GL_CULL_FACE); + GL11.glShadeModel(GL11.GL_SMOOTH); + bindTexture(ResourceManager.oilflare_tex); + ResourceManager.oilflare.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + GL11.glEnable(GL11.GL_CULL_FACE); - GL11.glPopMatrix(); - } + GL11.glPopMatrix(); + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDiesel.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDiesel.java index dc3ca8f13..ea8611233 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDiesel.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDiesel.java @@ -7,9 +7,9 @@ import com.hbm.interfaces.IFluidContainer; import com.hbm.inventory.FluidContainerRegistry; import com.hbm.inventory.FluidTank; import com.hbm.inventory.fluid.FluidType; -import com.hbm.inventory.fluid.FluidTypeCombustible; -import com.hbm.inventory.fluid.FluidTypeCombustible.FuelGrade; import com.hbm.inventory.fluid.Fluids; +import com.hbm.inventory.fluid.types.FluidTypeCombustible; +import com.hbm.inventory.fluid.types.FluidTypeCombustible.FuelGrade; import com.hbm.items.ModItems; import com.hbm.lib.Library; import com.hbm.tileentity.TileEntityMachineBase; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineIGenerator.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineIGenerator.java index aa875a734..cc517b12f 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineIGenerator.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineIGenerator.java @@ -8,8 +8,8 @@ import com.hbm.blocks.BlockDummyable; import com.hbm.interfaces.IFluidAcceptor; import com.hbm.inventory.FluidTank; import com.hbm.inventory.fluid.FluidType; -import com.hbm.inventory.fluid.FluidTypeFlammable; import com.hbm.inventory.fluid.Fluids; +import com.hbm.inventory.fluid.types.FluidTypeFlammable; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemRTGPellet; import com.hbm.lib.Library; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSeleniumEngine.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSeleniumEngine.java index 5060a0753..bac764a9f 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSeleniumEngine.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSeleniumEngine.java @@ -7,9 +7,9 @@ import com.hbm.interfaces.IFluidContainer; import com.hbm.inventory.FluidContainerRegistry; import com.hbm.inventory.FluidTank; import com.hbm.inventory.fluid.FluidType; -import com.hbm.inventory.fluid.FluidTypeCombustible; import com.hbm.inventory.fluid.Fluids; -import com.hbm.inventory.fluid.FluidTypeCombustible.FuelGrade; +import com.hbm.inventory.fluid.types.FluidTypeCombustible; +import com.hbm.inventory.fluid.types.FluidTypeCombustible.FuelGrade; import com.hbm.items.ModItems; import com.hbm.lib.Library; import com.hbm.packet.AuxElectricityPacket; diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineGasFlare.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineGasFlare.java index 9e78ed2fd..e039d7d51 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineGasFlare.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineGasFlare.java @@ -1,216 +1,82 @@ package com.hbm.tileentity.machine.oil; -import java.util.Random; +import java.util.List; import com.hbm.entity.particle.EntityGasFlameFX; -import com.hbm.explosion.ExplosionThermo; +import com.hbm.interfaces.IControlReceiver; import com.hbm.interfaces.IFluidAcceptor; import com.hbm.interfaces.IFluidContainer; import com.hbm.inventory.FluidTank; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; +import com.hbm.inventory.fluid.FluidType.FluidTrait; +import com.hbm.inventory.fluid.types.FluidTypeFlammable; import com.hbm.lib.Library; -import com.hbm.packet.AuxElectricityPacket; -import com.hbm.packet.PacketDispatcher; -import com.hbm.tileentity.TileEntityLoadedBase; +import com.hbm.main.MainRegistry; +import com.hbm.tileentity.TileEntityMachineBase; -import api.hbm.energy.IBatteryItem; import api.hbm.energy.IEnergyGenerator; import api.hbm.fluid.IFluidStandardReceiver; -import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.ISidedInventory; -import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.DamageSource; -public class TileEntityMachineGasFlare extends TileEntityLoadedBase implements ISidedInventory, IEnergyGenerator, IFluidContainer, IFluidAcceptor, IFluidStandardReceiver { +public class TileEntityMachineGasFlare extends TileEntityMachineBase implements IEnergyGenerator, IFluidContainer, IFluidAcceptor, IFluidStandardReceiver, IControlReceiver { - private ItemStack slots[]; - public long power; public static final long maxPower = 100000; public FluidTank tank; - - private static final int[] slots_top = new int[] {1}; - private static final int[] slots_bottom = new int[] {2, 0}; - private static final int[] slots_side = new int[] {0}; - Random rand = new Random(); - - private String customName; - + public boolean isOn = false; + public boolean doesBurn = false; + public TileEntityMachineGasFlare() { - slots = new ItemStack[3]; + super(4); tank = new FluidTank(Fluids.GAS, 64000, 0); } @Override - public int getSizeInventory() { - return slots.length; + public String getName() { + return "container.gasFlare"; } - @Override - public ItemStack getStackInSlot(int i) { - return slots[i]; - } - - @Override - public ItemStack getStackInSlotOnClosing(int i) { - if(slots[i] != null) - { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } else { - return null; - } - } - - @Override - public void setInventorySlotContents(int i, ItemStack itemStack) { - slots[i] = itemStack; - if(itemStack != null && itemStack.stackSize > getInventoryStackLimit()) - { - itemStack.stackSize = getInventoryStackLimit(); - } - } - - @Override - public String getInventoryName() { - return this.hasCustomInventoryName() ? this.customName : "container.gasFlare"; - } - - @Override - public boolean hasCustomInventoryName() { - return this.customName != null && this.customName.length() > 0; - } - - public void setCustomName(String name) { - this.customName = name; - } - - @Override - public int getInventoryStackLimit() { - return 64; - } - - @Override - public boolean isUseableByPlayer(EntityPlayer player) { - if(worldObj.getTileEntity(xCoord, yCoord, zCoord) != this) - { - return false; - }else{ - return player.getDistanceSq(xCoord + 0.5D, yCoord + 0.5D, zCoord + 0.5D) <=128; - } - } - - //You scrubs aren't needed for anything (right now) - @Override - public void openInventory() {} - @Override - public void closeInventory() {} - - @Override - public boolean isItemValidForSlot(int i, ItemStack itemStack) { - if(i == 0) - if(itemStack.getItem() instanceof IBatteryItem) - return true; - - if(i == 1) - return true; - - return false; - } - - @Override - public ItemStack decrStackSize(int i, int j) { - if(slots[i] != null) - { - if(slots[i].stackSize <= j) - { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } - ItemStack itemStack1 = slots[i].splitStack(j); - if (slots[i].stackSize == 0) - { - slots[i] = null; - } - - return itemStack1; - } else { - return null; - } - } - @Override public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt); - NBTTagList list = nbt.getTagList("items", 10); - this.power = nbt.getLong("powerTime"); tank.readFromNBT(nbt, "gas"); - slots = new ItemStack[getSizeInventory()]; - - for(int i = 0; i < list.tagCount(); i++) - { - NBTTagCompound nbt1 = list.getCompoundTagAt(i); - byte b0 = nbt1.getByte("slot"); - if(b0 >= 0 && b0 < slots.length) - { - slots[b0] = ItemStack.loadItemStackFromNBT(nbt1); - } - } } - + @Override public void writeToNBT(NBTTagCompound nbt) { super.writeToNBT(nbt); nbt.setLong("powerTime", power); tank.writeToNBT(nbt, "gas"); - NBTTagList list = new NBTTagList(); - - for(int i = 0; i < slots.length; i++) - { - if(slots[i] != null) - { - NBTTagCompound nbt1 = new NBTTagCompound(); - nbt1.setByte("slot", (byte)i); - slots[i].writeToNBT(nbt1); - list.appendTag(nbt1); - } - } - nbt.setTag("items", list); - } - - @Override - public int[] getAccessibleSlotsFromSide(int p_94128_1_) - { - return p_94128_1_ == 0 ? slots_bottom : (p_94128_1_ == 1 ? slots_top : slots_side); - } - - @Override - public boolean canInsertItem(int i, ItemStack itemStack, int j) { - return this.isItemValidForSlot(i, itemStack); } - @Override - public boolean canExtractItem(int i, ItemStack itemStack, int j) { - return false; - } - public long getPowerScaled(long i) { return (power * i) / maxPower; } - + + @Override + public boolean hasPermission(EntityPlayer player) { + return player.getDistanceSq(xCoord, yCoord, zCoord) <= 256; + } + + @Override + public void receiveControl(NBTTagCompound data) { + if(data.hasKey("valve")) this.isOn = !this.isOn; + if(data.hasKey("dial")) this.doesBurn = !this.doesBurn; + this.worldObj.markTileEntityChunkModified(this.xCoord, this.yCoord, this.zCoord, this); + } + @Override public void updateEntity() { - + if(!worldObj.isRemote) { this.sendPower(worldObj, xCoord + 2, yCoord, zCoord, Library.POS_X); @@ -222,40 +88,99 @@ public class TileEntityMachineGasFlare extends TileEntityLoadedBase implements I this.trySubscribe(tank.getTankType(), worldObj, xCoord - 2, yCoord, zCoord, Library.NEG_X); this.trySubscribe(tank.getTankType(), worldObj, xCoord, yCoord, zCoord + 2, Library.POS_Z); this.trySubscribe(tank.getTankType(), worldObj, xCoord, yCoord, zCoord - 2, Library.NEG_Z); - + + tank.setType(3, slots); tank.loadTank(1, 2, slots); tank.updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); - if(tank.getFill() >= 10) { - tank.setFill(tank.getFill() - 10); - power += 50; + if(isOn && tank.getFill() > 0) { - if(power > maxPower) - power = maxPower; - - worldObj.spawnEntityInWorld(new EntityGasFlameFX(worldObj, this.xCoord + 0.5F, this.yCoord + 11F, this.zCoord + 0.5F, 0.0, 0.0, 0.0)); - ExplosionThermo.setEntitiesOnFire(worldObj, this.xCoord, this.yCoord + 11, zCoord, 5); - - if(worldObj.getTotalWorldTime() % 5 == 0) - this.worldObj.playSoundEffect(this.xCoord, this.yCoord + 11, this.zCoord, "hbm:weapon.flamethrowerShoot", 1.5F, 1F); + if(!doesBurn || !(tank.getTankType() instanceof FluidTypeFlammable)) { + + if(tank.getTankType().traits.contains(FluidTrait.GASEOUS)) { + int eject = Math.min(10, tank.getFill()); + tank.setFill(tank.getFill() - eject); + tank.getTankType().onFluidRelease(this, tank, eject); + + if(worldObj.getTotalWorldTime() % 7 == 0) + this.worldObj.playSoundEffect(this.xCoord, this.yCoord + 11, this.zCoord, "random.fizz", 1.5F, 0.5F); + } + } else { + + if(tank.getTankType().traits.contains(FluidTrait.GASEOUS) && tank.getTankType() instanceof FluidTypeFlammable) { + int eject = Math.min(10, tank.getFill()); + tank.setFill(tank.getFill() - eject); + power += ((FluidTypeFlammable) tank.getTankType()).getHeatEnergy() * eject / 2_000; // divided by 1000 per mB and 2 for the 50% penalty + + if(power > maxPower) + power = maxPower; + + worldObj.spawnEntityInWorld(new EntityGasFlameFX(worldObj, this.xCoord + 0.5F, this.yCoord + 11.75F, this.zCoord + 0.5F, + worldObj.rand.nextGaussian() * 0.15, 0.2, worldObj.rand.nextGaussian() * 0.15)); + + List list = worldObj.getEntitiesWithinAABB(Entity.class, AxisAlignedBB.getBoundingBox(xCoord - 1, yCoord + 12, zCoord - 2, xCoord + 2, yCoord + 17, zCoord + 2)); + for(Entity e : list) { + e.setFire(5); + e.attackEntityFrom(DamageSource.onFire, 5F); + } + + if(worldObj.getTotalWorldTime() % 3 == 0) + this.worldObj.playSoundEffect(this.xCoord, this.yCoord + 11, this.zCoord, "hbm:weapon.flamethrowerShoot", 1.5F, 0.75F); + } + } } - - power = Library.chargeItemsFromTE(slots, 0, power, maxPower); - PacketDispatcher.wrapper.sendToAllAround(new AuxElectricityPacket(xCoord, yCoord, zCoord, power), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50)); + power = Library.chargeItemsFromTE(slots, 0, power, maxPower); + + NBTTagCompound data = new NBTTagCompound(); + data.setLong("power", this.power); + data.setBoolean("isOn", isOn); + data.setBoolean("doesBurn", doesBurn); + this.networkPack(data, 50); + + } else { + + if(isOn && tank.getFill() > 0) { + + if(!doesBurn || !(tank.getTankType() instanceof FluidTypeFlammable)) { + + if(tank.getTankType().traits.contains(FluidTrait.GASEOUS)) { + + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "tower"); + data.setFloat("lift", 1F); + data.setFloat("base", 0.25F); + data.setFloat("max", 3F); + data.setInteger("life", 150 + worldObj.rand.nextInt(20)); + data.setInteger("color", tank.getTankType().getColor()); + + data.setDouble("posX", xCoord + 0.5); + data.setDouble("posZ", zCoord + 0.5); + data.setDouble("posY", yCoord + 11); + + MainRegistry.proxy.effectNT(data); + } + } + } } - + } + @Override + public void networkUnpack(NBTTagCompound nbt) { + this.power = nbt.getLong("power"); + this.isOn = nbt.getBoolean("isOn"); + this.doesBurn = nbt.getBoolean("doesBurn"); + } + @Override public AxisAlignedBB getRenderBoundingBox() { return TileEntity.INFINITE_EXTENT_AABB; } - + @Override @SideOnly(Side.CLIENT) - public double getMaxRenderDistanceSquared() - { + public double getMaxRenderDistanceSquared() { return 65536.0D; } diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index fa6096b93..31249fea5 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -408,6 +408,9 @@ entity.hbm.entity_bullet.name=Patrone entity.hbm.entity_rocket.name=Rakete entity.hbm.entity_schrabnel.name=Schrabnel +flare.ignition=Zündung +flare.valve=Flussventil + fluid.acid_fluid=Säure fluid.corium_fluid=Corium fluid.mud_fluid=Giftiger Schlamm diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index c779beee7..62123447b 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -606,6 +606,9 @@ entity.hbm.entity_bullet.name=Bullet entity.hbm.entity_rocket.name=Rocket entity.hbm.entity_schrabnel.name=Schrabnel +flare.ignition=Ignition +flare.valve=Flow Valve + fluid.acid_fluid=Acid fluid.corium_fluid=Corium fluid.mud_fluid=Poisonous Mud diff --git a/src/main/resources/assets/hbm/models/machines/flare_stack.obj b/src/main/resources/assets/hbm/models/machines/flare_stack.obj new file mode 100644 index 000000000..c8de78e4a --- /dev/null +++ b/src/main/resources/assets/hbm/models/machines/flare_stack.obj @@ -0,0 +1,7139 @@ +# Blender v2.79 (sub 0) OBJ File: 'flare_stack.blend' +# www.blender.org +o Plane +v -1.500000 0.000000 1.500000 +v 1.500000 0.000000 1.500000 +v -1.500000 0.000000 -1.500000 +v 1.500000 0.000000 -1.500000 +v -1.500000 1.750000 1.500000 +v 1.500000 1.750000 1.500000 +v -1.500000 1.750000 -1.500000 +v 1.500000 1.750000 -1.500000 +v -1.500000 2.250000 0.625000 +v 1.500000 2.250000 0.625000 +v -1.500000 2.250000 -0.625000 +v 1.500000 2.250000 -0.625000 +v 0.625000 2.250000 1.500000 +v 0.625000 2.250000 -1.500000 +v -0.625000 2.250000 1.500000 +v -0.625000 2.250000 -1.500000 +v -0.750000 3.000000 -0.312500 +v -0.750000 3.000000 0.312500 +v 0.312500 3.000000 -0.750000 +v -0.312500 3.000000 -0.750000 +v 0.750000 3.000000 0.312500 +v 0.750000 3.000000 -0.312500 +v -0.312500 3.000000 0.750000 +v 0.312500 3.000000 0.750000 +v -0.750000 10.000000 -0.312500 +v -0.750000 10.000000 0.312500 +v 0.312500 10.000000 -0.750000 +v -0.312500 10.000000 -0.750000 +v 0.750000 10.000000 0.312500 +v 0.750000 10.000000 -0.312500 +v -0.312500 10.000000 0.750000 +v 0.312500 10.000000 0.750000 +v -0.375000 12.000000 -0.156250 +v -0.375000 12.000000 0.156250 +v 0.156250 12.000000 -0.375000 +v -0.156250 12.000000 -0.375000 +v 0.375000 12.000000 0.156250 +v 0.375000 12.000000 -0.156250 +v -0.156250 12.000000 0.375000 +v 0.156250 12.000000 0.375000 +v -0.562500 12.000000 -0.234375 +v -0.562500 12.000000 0.234375 +v 0.234375 12.000000 -0.562500 +v -0.234375 12.000000 -0.562500 +v 0.562500 12.000000 0.234375 +v 0.562500 12.000000 -0.234375 +v -0.234375 12.000000 0.562500 +v 0.234375 12.000000 0.562500 +v -0.375000 11.000000 -0.156250 +v -0.375000 11.000000 0.156250 +v 0.156250 11.000000 -0.375000 +v -0.156250 11.000000 -0.375000 +v 0.375000 11.000000 0.156250 +v 0.375000 11.000000 -0.156250 +v -0.156250 11.000000 0.375000 +v 0.156250 11.000000 0.375000 +v 1.500000 0.875000 0.375000 +v 1.500000 0.125000 0.375000 +v 1.500000 0.875000 -0.375000 +v 1.500000 0.125000 -0.375000 +v 1.500000 0.687500 0.187500 +v 1.500000 0.312500 0.187500 +v 1.500000 0.687500 -0.187500 +v 1.500000 0.312500 -0.187500 +v 1.375000 0.875000 -0.375000 +v 1.375000 0.875000 0.375000 +v 1.375000 0.125000 0.375000 +v 1.375000 0.125000 -0.375000 +v 1.375000 0.687500 -0.187500 +v 1.375000 0.687500 0.187500 +v 1.375000 0.312500 0.187500 +v 1.375000 0.312500 -0.187500 +v -1.500000 0.875000 -0.375000 +v -1.500000 0.125000 -0.375000 +v -1.500000 0.875000 0.375000 +v -1.500000 0.125000 0.375000 +v -1.500000 0.687500 -0.187500 +v -1.500000 0.312500 -0.187500 +v -1.500000 0.687500 0.187500 +v -1.500000 0.312500 0.187500 +v -1.375000 0.875000 0.375000 +v -1.375000 0.875000 -0.375000 +v -1.375000 0.125000 -0.375000 +v -1.375000 0.125000 0.375000 +v -1.375000 0.687500 0.187500 +v -1.375000 0.687500 -0.187500 +v -1.375000 0.312500 -0.187500 +v -1.375000 0.312500 0.187500 +v 0.375000 0.875000 -1.500000 +v 0.375000 0.125000 -1.500000 +v -0.375000 0.875000 -1.500000 +v -0.375000 0.125000 -1.500000 +v 0.187500 0.687500 -1.500000 +v 0.187500 0.312500 -1.500000 +v -0.187500 0.687500 -1.500000 +v -0.187500 0.312500 -1.500000 +v -0.375000 0.875000 -1.375000 +v 0.375000 0.875000 -1.375000 +v 0.375000 0.125000 -1.375000 +v -0.375000 0.125000 -1.375000 +v -0.187500 0.687500 -1.375000 +v 0.187500 0.687500 -1.375000 +v 0.187500 0.312500 -1.375000 +v -0.187500 0.312500 -1.375000 +v -0.375000 0.875000 1.500000 +v -0.375000 0.125000 1.500000 +v 0.375000 0.875000 1.500000 +v 0.375000 0.125000 1.500000 +v -0.187500 0.687500 1.500000 +v -0.187500 0.312500 1.500000 +v 0.187500 0.687500 1.500000 +v 0.187500 0.312500 1.500000 +v 0.375000 0.875000 1.375000 +v -0.375000 0.875000 1.375000 +v -0.375000 0.125000 1.375000 +v 0.375000 0.125000 1.375000 +v 0.187500 0.687500 1.375000 +v -0.187500 0.687500 1.375000 +v -0.187500 0.312500 1.375000 +v 0.187500 0.312500 1.375000 +v -0.750000 9.750000 -0.312500 +v -0.750000 9.750000 0.312500 +v 0.312500 9.750000 -0.750000 +v -0.312500 9.750000 -0.750000 +v 0.750000 9.750000 0.312500 +v 0.750000 9.750000 -0.312500 +v -0.312500 9.750000 0.750000 +v 0.312500 9.750000 0.750000 +v -0.875000 9.750000 0.375000 +v 0.875000 9.750000 0.375000 +v -0.875000 9.750000 -0.375000 +v 0.875000 9.750000 -0.375000 +v 0.375000 9.750000 0.875000 +v 0.375000 9.750000 -0.875000 +v -0.375000 9.750000 0.875000 +v -0.375000 9.750000 -0.875000 +v -0.750000 9.875000 -0.312500 +v -0.750000 9.875000 0.312500 +v 0.312500 9.875000 -0.750000 +v -0.312500 9.875000 -0.750000 +v 0.750000 9.875000 0.312500 +v 0.750000 9.875000 -0.312500 +v -0.312500 9.875000 0.750000 +v 0.312500 9.875000 0.750000 +v -0.875000 9.875000 -0.375000 +v -0.875000 9.875000 0.375000 +v 0.375000 9.875000 -0.875000 +v -0.375000 9.875000 -0.875000 +v 0.875000 9.875000 0.375000 +v 0.875000 9.875000 -0.375000 +v -0.375000 9.875000 0.875000 +v 0.375000 9.875000 0.875000 +v -1.500000 3.750000 0.625000 +v 1.500000 3.750000 0.625000 +v -1.500000 3.750000 -0.625000 +v 1.500000 3.750000 -0.625000 +v 0.625000 3.750000 1.500000 +v 0.625000 3.750000 -1.500000 +v -0.625000 3.750000 1.500000 +v -0.625000 3.750000 -1.500000 +v 0.406250 3.750000 1.000000 +v 0.406250 3.750000 -1.000000 +v -0.406250 3.750000 1.000000 +v -0.406250 3.750000 -1.000000 +v 1.000000 3.750000 -0.406250 +v -1.000000 3.750000 -0.406250 +v 1.000000 3.750000 0.406250 +v -1.000000 3.750000 0.406250 +v -1.500000 3.875000 -0.625000 +v -1.500000 3.875000 0.625000 +v 0.625000 3.875000 -1.500000 +v -0.625000 3.875000 -1.500000 +v 1.500000 3.875000 0.625000 +v 1.500000 3.875000 -0.625000 +v -0.625000 3.875000 1.500000 +v 0.625000 3.875000 1.500000 +v -0.406250 3.875000 1.000000 +v 0.406250 3.875000 1.000000 +v 1.000000 3.875000 0.406250 +v 1.000000 3.875000 -0.406250 +v 0.406250 3.875000 -1.000000 +v -0.406250 3.875000 -1.000000 +v -1.000000 3.875000 -0.406250 +v -1.000000 3.875000 0.406250 +v 0.786612 3.375000 0.062500 +v 0.875000 3.286612 0.062500 +v 0.786612 3.375000 -0.062500 +v 0.875000 3.286612 -0.062500 +v -0.875000 3.286612 0.062500 +v -0.786612 3.375000 0.062500 +v -0.875000 3.286612 -0.062500 +v -0.786612 3.375000 -0.062500 +v -1.361136 3.772747 -0.062500 +v -1.361136 3.772747 0.062500 +v -1.272748 3.861136 0.062500 +v -1.272748 3.861136 -0.062500 +v 1.361136 3.772747 0.062500 +v 1.361136 3.772747 -0.062500 +v 1.272748 3.861136 -0.062500 +v 1.272748 3.861136 0.062500 +v 0.062500 3.375000 -0.786612 +v 0.062500 3.286612 -0.875000 +v -0.062500 3.375000 -0.786612 +v -0.062500 3.286612 -0.875000 +v 0.062500 3.286612 0.875000 +v 0.062500 3.375000 0.786612 +v -0.062500 3.286612 0.875000 +v -0.062500 3.375000 0.786612 +v -0.062500 3.772747 1.361136 +v 0.062500 3.772747 1.361136 +v 0.062500 3.861136 1.272748 +v -0.062500 3.861136 1.272748 +v 0.062500 3.772747 -1.361136 +v -0.062500 3.772747 -1.361136 +v -0.062500 3.861136 -1.272748 +v 0.062500 3.861136 -1.272748 +v 0.600413 3.375000 -0.512024 +v 0.662913 3.286612 -0.574524 +v 0.512024 3.375000 -0.600413 +v 0.574524 3.286612 -0.662913 +v -0.574524 3.286612 0.662913 +v -0.512024 3.375000 0.600413 +v -0.662913 3.286612 0.574524 +v -0.600413 3.375000 0.512024 +v -1.006663 3.772747 0.918274 +v -0.918274 3.772747 1.006663 +v -0.855774 3.861136 0.944163 +v -0.944163 3.861136 0.855774 +v 1.006663 3.772747 -0.918275 +v 0.918274 3.772747 -1.006663 +v 0.855774 3.861136 -0.944163 +v 0.944163 3.861136 -0.855775 +v -0.512024 3.375000 -0.600413 +v -0.574524 3.286612 -0.662913 +v -0.600413 3.375000 -0.512024 +v -0.662913 3.286612 -0.574524 +v 0.662913 3.286612 0.574524 +v 0.600413 3.375000 0.512024 +v 0.574524 3.286612 0.662913 +v 0.512024 3.375000 0.600413 +v 0.918274 3.772747 1.006663 +v 1.006663 3.772747 0.918274 +v 0.944163 3.861136 0.855774 +v 0.855774 3.861136 0.944163 +v -0.918275 3.772747 -1.006663 +v -1.006663 3.772747 -0.918274 +v -0.944163 3.861136 -0.855774 +v -0.855775 3.861136 -0.944163 +v -0.875000 11.250000 0.375000 +v 0.875000 11.250000 0.375000 +v -0.875000 11.250000 -0.375000 +v 0.875000 11.250000 -0.375000 +v 0.375000 11.250000 0.875000 +v 0.375000 11.250000 -0.875000 +v -0.375000 11.250000 0.875000 +v -0.375000 11.250000 -0.875000 +v -0.875000 11.375000 -0.375000 +v -0.875000 11.375000 0.375000 +v 0.375000 11.375000 -0.875000 +v -0.375000 11.375000 -0.875000 +v 0.875000 11.375000 0.375000 +v 0.875000 11.375000 -0.375000 +v -0.375000 11.375000 0.875000 +v 0.375000 11.375000 0.875000 +v -0.437500 11.250000 1.000000 +v 0.437500 11.250000 1.000000 +v -0.437500 11.250000 -1.000000 +v 0.437500 11.250000 -1.000000 +v 1.000000 11.250000 0.437500 +v 1.000000 11.250000 -0.437500 +v -1.000000 11.250000 0.437500 +v -1.000000 11.250000 -0.437500 +v -0.437500 11.375000 1.000000 +v 0.437500 11.375000 1.000000 +v -0.437500 11.375000 -1.000000 +v 0.437500 11.375000 -1.000000 +v 1.000000 11.375000 0.437500 +v 1.000000 11.375000 -0.437500 +v -1.000000 11.375000 0.437500 +v -1.000000 11.375000 -0.437500 +v -0.968750 11.375000 0.062500 +v -0.906250 11.375000 0.062500 +v -0.968750 11.375000 -0.062500 +v -0.906250 11.375000 -0.062500 +v -0.968750 12.000000 -0.062500 +v -0.968750 12.000000 0.062500 +v -0.906250 12.000000 0.062500 +v -0.906250 12.000000 -0.062500 +v 0.968750 11.375000 -0.062500 +v 0.906250 11.375000 -0.062500 +v 0.968750 11.375000 0.062500 +v 0.906250 11.375000 0.062500 +v 0.968750 12.000000 0.062500 +v 0.968750 12.000000 -0.062500 +v 0.906250 12.000000 -0.062500 +v 0.906250 12.000000 0.062500 +v 0.062500 11.375000 0.968750 +v 0.062500 11.375000 0.906250 +v -0.062500 11.375000 0.968750 +v -0.062500 11.375000 0.906250 +v -0.062500 12.000000 0.968750 +v 0.062500 12.000000 0.968750 +v 0.062500 12.000000 0.906250 +v -0.062500 12.000000 0.906250 +v -0.062500 11.375000 -0.968750 +v -0.062500 11.375000 -0.906250 +v 0.062500 11.375000 -0.968750 +v 0.062500 11.375000 -0.906250 +v 0.062500 12.000000 -0.968750 +v -0.062500 12.000000 -0.968750 +v -0.062500 12.000000 -0.906250 +v 0.062500 12.000000 -0.906250 +v -0.640815 11.375000 0.729204 +v -0.596621 11.375000 0.685010 +v -0.729204 11.375000 0.640815 +v -0.685010 11.375000 0.596621 +v -0.729204 12.000000 0.640815 +v -0.640815 12.000000 0.729204 +v -0.596621 12.000000 0.685010 +v -0.685010 12.000000 0.596621 +v 0.640815 11.375000 -0.729204 +v 0.596621 11.375000 -0.685010 +v 0.729204 11.375000 -0.640816 +v 0.685010 11.375000 -0.596621 +v 0.729204 12.000000 -0.640816 +v 0.640815 12.000000 -0.729204 +v 0.596621 12.000000 -0.685010 +v 0.685010 12.000000 -0.596621 +v 0.729204 11.375000 0.640815 +v 0.685010 11.375000 0.596621 +v 0.640815 11.375000 0.729204 +v 0.596621 11.375000 0.685010 +v 0.640815 12.000000 0.729204 +v 0.729204 12.000000 0.640815 +v 0.685010 12.000000 0.596621 +v 0.596621 12.000000 0.685010 +v -0.729204 11.375000 -0.640815 +v -0.685010 11.375000 -0.596621 +v -0.640816 11.375000 -0.729204 +v -0.596621 11.375000 -0.685010 +v -0.640816 12.000000 -0.729204 +v -0.729204 12.000000 -0.640815 +v -0.685010 12.000000 -0.596621 +v -0.596621 12.000000 -0.685010 +v -0.928833 11.375000 0.452385 +v -0.871091 11.375000 0.428467 +v -0.976668 11.375000 0.336900 +v -0.918926 11.375000 0.312982 +v -0.976668 12.000000 0.336900 +v -0.928833 12.000000 0.452385 +v -0.871091 12.000000 0.428467 +v -0.918926 12.000000 0.312982 +v 0.928833 11.375000 -0.452385 +v 0.871091 11.375000 -0.428467 +v 0.976668 11.375000 -0.336900 +v 0.918926 11.375000 -0.312982 +v 0.976668 12.000000 -0.336900 +v 0.928833 12.000000 -0.452385 +v 0.871091 12.000000 -0.428467 +v 0.918926 12.000000 -0.312982 +v 0.452385 11.375000 0.928833 +v 0.428467 11.375000 0.871091 +v 0.336900 11.375000 0.976668 +v 0.312982 11.375000 0.918926 +v 0.336900 12.000000 0.976668 +v 0.452385 12.000000 0.928833 +v 0.428467 12.000000 0.871091 +v 0.312982 12.000000 0.918926 +v -0.452385 11.375000 -0.928833 +v -0.428467 11.375000 -0.871091 +v -0.336900 11.375000 -0.976668 +v -0.312982 11.375000 -0.918926 +v -0.336900 12.000000 -0.976668 +v -0.452385 12.000000 -0.928833 +v -0.428467 12.000000 -0.871091 +v -0.312982 12.000000 -0.918926 +v -0.336900 11.375000 0.976668 +v -0.312982 11.375000 0.918926 +v -0.452385 11.375000 0.928833 +v -0.428467 11.375000 0.871091 +v -0.452385 12.000000 0.928833 +v -0.336900 12.000000 0.976668 +v -0.312982 12.000000 0.918926 +v -0.428467 12.000000 0.871091 +v 0.336900 11.375000 -0.976668 +v 0.312982 11.375000 -0.918926 +v 0.452385 11.375000 -0.928833 +v 0.428467 11.375000 -0.871091 +v 0.452385 12.000000 -0.928833 +v 0.336900 12.000000 -0.976668 +v 0.312982 12.000000 -0.918926 +v 0.428467 12.000000 -0.871091 +v 0.976668 11.375000 0.336900 +v 0.918926 11.375000 0.312982 +v 0.928833 11.375000 0.452385 +v 0.871091 11.375000 0.428467 +v 0.928833 12.000000 0.452385 +v 0.976668 12.000000 0.336900 +v 0.918926 12.000000 0.312982 +v 0.871091 12.000000 0.428467 +v -0.976669 11.375000 -0.336900 +v -0.918926 11.375000 -0.312982 +v -0.928833 11.375000 -0.452385 +v -0.871091 11.375000 -0.428467 +v -0.928833 12.000000 -0.452385 +v -0.976669 12.000000 -0.336900 +v -0.918926 12.000000 -0.312982 +v -0.871091 12.000000 -0.428467 +v -0.812500 10.875000 -0.062500 +v -0.812500 9.875000 0.062500 +v -0.812500 10.875000 0.062500 +v -0.812500 9.875000 -0.062500 +v -0.937500 11.250000 -0.062500 +v -0.937500 11.250000 0.062500 +v 0.812500 10.875000 0.062500 +v 0.812500 9.875000 -0.062500 +v 0.812500 10.875000 -0.062500 +v 0.812500 9.875000 0.062500 +v 0.937500 11.250000 0.062500 +v 0.937500 11.250000 -0.062500 +v -0.062500 10.875000 0.812500 +v 0.062500 9.875000 0.812500 +v 0.062500 10.875000 0.812500 +v -0.062500 9.875000 0.812500 +v -0.062500 11.250000 0.937500 +v 0.062500 11.250000 0.937500 +v 0.062500 10.875000 -0.812500 +v -0.062500 9.875000 -0.812500 +v -0.062500 10.875000 -0.812500 +v 0.062500 9.875000 -0.812500 +v 0.062500 11.250000 -0.937500 +v -0.062500 11.250000 -0.937500 +v -0.618718 10.875000 0.530330 +v -0.530330 9.875000 0.618718 +v -0.530330 10.875000 0.618718 +v -0.618718 9.875000 0.530330 +v -0.707107 11.250000 0.618718 +v -0.618718 11.250000 0.707107 +v 0.618718 10.875000 -0.530330 +v 0.530330 9.875000 -0.618718 +v 0.530330 10.875000 -0.618718 +v 0.618718 9.875000 -0.530330 +v 0.707107 11.250000 -0.618719 +v 0.618718 11.250000 -0.707107 +v 0.530330 10.875000 0.618718 +v 0.618718 9.875000 0.530330 +v 0.618718 10.875000 0.530330 +v 0.530330 9.875000 0.618718 +v 0.618719 11.250000 0.707107 +v 0.707107 11.250000 0.618718 +v -0.530330 10.875000 -0.618718 +v -0.618719 9.875000 -0.530330 +v -0.618719 10.875000 -0.530330 +v -0.530330 9.875000 -0.618718 +v -0.618719 11.250000 -0.707107 +v -0.707107 11.250000 -0.618718 +v -0.750000 3.250000 -0.312500 +v -0.750000 3.250000 0.312500 +v 0.312500 3.250000 -0.750000 +v -0.312500 3.250000 -0.750000 +v 0.750000 3.250000 0.312500 +v 0.750000 3.250000 -0.312500 +v -0.312500 3.250000 0.750000 +v 0.312500 3.250000 0.750000 +v -0.875000 3.250000 0.375000 +v 0.875000 3.250000 0.375000 +v -0.875000 3.250000 -0.375000 +v 0.875000 3.250000 -0.375000 +v 0.375000 3.250000 0.875000 +v 0.375000 3.250000 -0.875000 +v -0.375000 3.250000 0.875000 +v -0.375000 3.250000 -0.875000 +v -0.750000 3.375000 -0.312500 +v -0.750000 3.375000 0.312500 +v 0.312500 3.375000 -0.750000 +v -0.312500 3.375000 -0.750000 +v 0.750000 3.375000 0.312500 +v 0.750000 3.375000 -0.312500 +v -0.312500 3.375000 0.750000 +v 0.312500 3.375000 0.750000 +v -0.875000 3.375000 -0.375000 +v -0.875000 3.375000 0.375000 +v 0.375000 3.375000 -0.875000 +v -0.375000 3.375000 -0.875000 +v 0.875000 3.375000 0.375000 +v 0.875000 3.375000 -0.375000 +v -0.375000 3.375000 0.875000 +v 0.375000 3.375000 0.875000 +v 0.375000 8.875000 0.875000 +v -0.375000 8.875000 0.875000 +v 0.875000 8.875000 -0.375000 +v 0.875000 8.875000 0.375000 +v -0.375000 8.875000 -0.875000 +v 0.375000 8.875000 -0.875000 +v -0.875000 8.875000 0.375000 +v -0.875000 8.875000 -0.375000 +v 0.312500 8.875000 0.750000 +v -0.312500 8.875000 0.750000 +v 0.750000 8.875000 -0.312500 +v 0.750000 8.875000 0.312500 +v -0.312500 8.875000 -0.750000 +v 0.312500 8.875000 -0.750000 +v -0.750000 8.875000 0.312500 +v -0.750000 8.875000 -0.312500 +v -0.375000 8.750000 -0.875000 +v -0.375000 8.750000 0.875000 +v 0.375000 8.750000 -0.875000 +v 0.375000 8.750000 0.875000 +v 0.875000 8.750000 -0.375000 +v -0.875000 8.750000 -0.375000 +v 0.875000 8.750000 0.375000 +v -0.875000 8.750000 0.375000 +v 0.312500 8.750000 0.750000 +v -0.312500 8.750000 0.750000 +v 0.750000 8.750000 -0.312500 +v 0.750000 8.750000 0.312500 +v -0.312500 8.750000 -0.750000 +v 0.312500 8.750000 -0.750000 +v -0.750000 8.750000 0.312500 +v -0.750000 8.750000 -0.312500 +v -0.855775 9.361135 -0.944163 +v -0.944163 9.361135 -0.855774 +v -1.006663 9.272747 -0.918274 +v -0.918275 9.272747 -1.006663 +v 0.855774 9.361135 0.944163 +v 0.944163 9.361135 0.855774 +v 1.006663 9.272747 0.918274 +v 0.918274 9.272747 1.006663 +v 0.512024 8.875000 0.600413 +v 0.574524 8.786612 0.662913 +v 0.600413 8.875000 0.512024 +v 0.662913 8.786612 0.574524 +v -0.662913 8.786612 -0.574524 +v -0.600413 8.875000 -0.512024 +v -0.574524 8.786612 -0.662913 +v -0.512024 8.875000 -0.600413 +v 0.944163 9.361135 -0.855775 +v 0.855774 9.361135 -0.944163 +v 0.918274 9.272747 -1.006663 +v 1.006663 9.272747 -0.918275 +v -0.944163 9.361135 0.855774 +v -0.855774 9.361135 0.944163 +v -0.918274 9.272747 1.006663 +v -1.006663 9.272747 0.918274 +v -0.600413 8.875000 0.512024 +v -0.662913 8.786612 0.574524 +v -0.512024 8.875000 0.600413 +v -0.574524 8.786612 0.662913 +v 0.574524 8.786612 -0.662913 +v 0.512024 8.875000 -0.600413 +v 0.662913 8.786612 -0.574524 +v 0.600413 8.875000 -0.512024 +v 0.062500 9.361135 -1.272748 +v -0.062500 9.361135 -1.272748 +v -0.062500 9.272747 -1.361136 +v 0.062500 9.272747 -1.361136 +v -0.062500 9.361135 1.272748 +v 0.062500 9.361135 1.272748 +v 0.062500 9.272747 1.361136 +v -0.062500 9.272747 1.361136 +v -0.062500 8.875000 0.786612 +v -0.062500 8.786612 0.875000 +v 0.062500 8.875000 0.786612 +v 0.062500 8.786612 0.875000 +v -0.062500 8.786612 -0.875000 +v -0.062500 8.875000 -0.786612 +v 0.062500 8.786612 -0.875000 +v 0.062500 8.875000 -0.786612 +v 1.272748 9.361135 0.062500 +v 1.272748 9.361135 -0.062500 +v 1.361136 9.272747 -0.062500 +v 1.361136 9.272747 0.062500 +v -1.272748 9.361135 -0.062500 +v -1.272748 9.361135 0.062500 +v -1.361136 9.272747 0.062500 +v -1.361136 9.272747 -0.062500 +v -0.786612 8.875000 -0.062500 +v -0.875000 8.786612 -0.062500 +v -0.786612 8.875000 0.062500 +v -0.875000 8.786612 0.062500 +v 0.875000 8.786612 -0.062500 +v 0.786612 8.875000 -0.062500 +v 0.875000 8.786612 0.062500 +v 0.786612 8.875000 0.062500 +v -1.000000 9.375000 0.406250 +v -1.000000 9.375000 -0.406250 +v -0.406250 9.375000 -1.000000 +v 0.406250 9.375000 -1.000000 +v 1.000000 9.375000 -0.406250 +v 1.000000 9.375000 0.406250 +v 0.406250 9.375000 1.000000 +v -0.406250 9.375000 1.000000 +v 0.625000 9.375000 1.500000 +v -0.625000 9.375000 1.500000 +v 1.500000 9.375000 -0.625000 +v 1.500000 9.375000 0.625000 +v -0.625000 9.375000 -1.500000 +v 0.625000 9.375000 -1.500000 +v -1.500000 9.375000 0.625000 +v -1.500000 9.375000 -0.625000 +v -1.000000 9.250000 0.406250 +v 1.000000 9.250000 0.406250 +v -1.000000 9.250000 -0.406250 +v 1.000000 9.250000 -0.406250 +v -0.406250 9.250000 -1.000000 +v -0.406250 9.250000 1.000000 +v 0.406250 9.250000 -1.000000 +v 0.406250 9.250000 1.000000 +v -0.625000 9.250000 -1.500000 +v -0.625000 9.250000 1.500000 +v 0.625000 9.250000 -1.500000 +v 0.625000 9.250000 1.500000 +v 1.500000 9.250000 -0.625000 +v -1.500000 9.250000 -0.625000 +v 1.500000 9.250000 0.625000 +v -1.500000 9.250000 0.625000 +v -1.000000 1.750000 -1.250000 +v -1.176777 1.750000 -1.176777 +v -1.250000 1.750000 -1.000000 +v -1.176777 1.750000 -0.823223 +v -1.000000 1.750000 -0.750000 +v -0.823223 1.750000 -0.823223 +v -0.750000 1.750000 -1.000000 +v -0.823223 1.750000 -1.176777 +v -1.000000 10.000000 -1.250000 +v -1.176777 10.000000 -1.176777 +v -1.250000 10.000000 -1.000000 +v -1.176777 10.000000 -0.823223 +v -1.000000 10.000000 -0.750000 +v -0.823223 10.000000 -0.823223 +v -0.750000 10.000000 -1.000000 +v -0.823223 10.000000 -1.176777 +v -1.000000 10.000000 -1.375000 +v -1.265165 10.000000 -1.265165 +v -1.375000 10.000000 -1.000000 +v -1.265165 10.000000 -0.734835 +v -1.000000 10.000000 -0.625000 +v -0.734835 10.000000 -0.734835 +v -0.625000 10.000000 -1.000000 +v -0.734835 10.000000 -1.265165 +v -1.000000 10.750000 -1.375000 +v -1.265165 10.750000 -1.265165 +v -1.375000 10.750000 -1.000000 +v -1.265165 10.750000 -0.734835 +v -1.000000 10.750000 -0.625000 +v -0.734835 10.750000 -0.734835 +v -0.625000 10.750000 -1.000000 +v -0.734835 10.750000 -1.265165 +v -1.000000 11.000000 -1.250000 +v -1.176777 11.000000 -1.176777 +v -1.250000 11.000000 -1.000000 +v -1.176777 11.000000 -0.823223 +v -1.000000 11.000000 -0.750000 +v -0.823223 11.000000 -0.823223 +v -0.750000 11.000000 -1.000000 +v -0.823223 11.000000 -1.176777 +v -1.000000 11.000000 -1.187500 +v -1.132582 11.000000 -1.132582 +v -1.187500 11.000000 -1.000000 +v -1.132582 11.000000 -0.867418 +v -1.000000 11.000000 -0.812500 +v -0.867417 11.000000 -0.867418 +v -0.812500 11.000000 -1.000000 +v -0.867417 11.000000 -1.132582 +v -1.132582 10.000000 -1.132582 +v -1.000000 10.000000 -1.187500 +v -1.187500 10.000000 -1.000000 +v -1.132582 10.000000 -0.867418 +v -1.000000 10.000000 -0.812500 +v -0.867417 10.000000 -0.867418 +v -0.812500 10.000000 -1.000000 +v -0.867417 10.000000 -1.132582 +v 1.250000 2.000000 -0.375000 +v 1.161612 2.000000 -0.338388 +v 1.125000 2.000000 -0.250000 +v 1.161612 2.000000 -0.161612 +v 1.250000 2.000000 -0.125000 +v 1.338388 2.000000 -0.161612 +v 1.375000 2.000000 -0.250000 +v 1.338388 2.000000 -0.338388 +v 1.875000 3.625000 -0.250000 +v 1.838388 3.625000 -0.161612 +v 1.750000 3.625000 -0.125000 +v 1.661612 3.625000 -0.161612 +v 1.625000 3.625000 -0.250000 +v 1.661612 3.625000 -0.338389 +v 1.750000 3.625000 -0.375000 +v 1.838388 3.625000 -0.338389 +v 1.375000 3.625000 -0.250000 +v 1.375000 3.588389 -0.161612 +v 1.375000 3.500000 -0.125000 +v 1.375000 3.411612 -0.161612 +v 1.375000 3.375000 -0.250000 +v 1.375000 3.411612 -0.338389 +v 1.375000 3.500000 -0.375000 +v 1.375000 3.588389 -0.338389 +v 1.198223 3.551777 -0.250000 +v 1.224112 3.525889 -0.161612 +v 1.286612 3.463389 -0.125000 +v 1.349112 3.400889 -0.161612 +v 1.349112 3.400889 -0.338389 +v 1.286612 3.463389 -0.375000 +v 1.224112 3.525889 -0.338389 +v 1.125000 3.375000 -0.250000 +v 1.161612 3.375000 -0.161612 +v 1.250000 3.375000 -0.125000 +v 1.338388 3.375000 -0.161612 +v 1.338388 3.375000 -0.338389 +v 1.250000 3.375000 -0.375000 +v 1.161612 3.375000 -0.338389 +v 1.838388 4.000000 -0.338389 +v 1.750000 4.000000 -0.375000 +v 1.661612 4.000000 -0.338389 +v 1.625000 4.000000 -0.250000 +v 1.661612 4.000000 -0.161612 +v 1.750000 4.000000 -0.125000 +v 1.838388 4.000000 -0.161612 +v 1.875000 4.000000 -0.250000 +v 1.625000 3.375000 -0.250000 +v 1.625000 3.411612 -0.161612 +v 1.625000 3.500000 -0.125000 +v 1.625000 3.588389 -0.161612 +v 1.625000 3.588389 -0.338389 +v 1.625000 3.500000 -0.375000 +v 1.625000 3.411612 -0.338389 +v 1.801776 3.448224 -0.250000 +v 1.775888 3.474112 -0.161612 +v 1.713388 3.536612 -0.125000 +v 1.650888 3.599112 -0.161612 +v 1.650888 3.599112 -0.338389 +v 1.713388 3.536612 -0.375000 +v 1.775888 3.474112 -0.338389 +v 0.875000 4.250000 -0.250000 +v 0.911612 4.250000 -0.161612 +v 1.000000 4.250000 -0.125000 +v 1.088388 4.250000 -0.161612 +v 1.125000 4.250000 -0.250000 +v 1.088388 4.250000 -0.338389 +v 1.000000 4.250000 -0.375000 +v 0.911612 4.250000 -0.338389 +v 0.948223 4.073224 -0.250000 +v 0.974112 4.099112 -0.161612 +v 1.036612 4.161612 -0.125000 +v 1.099112 4.224112 -0.161612 +v 1.099112 4.224112 -0.338389 +v 1.036612 4.161612 -0.375000 +v 0.974112 4.099112 -0.338389 +v 1.125000 4.000000 -0.250000 +v 1.125000 4.036612 -0.161612 +v 1.125000 4.125000 -0.125000 +v 1.125000 4.213388 -0.161612 +v 1.125000 4.213388 -0.338389 +v 1.125000 4.125000 -0.375000 +v 1.125000 4.036612 -0.338389 +v 1.801777 4.176777 -0.250000 +v 1.775888 4.150888 -0.161612 +v 1.713388 4.088388 -0.125000 +v 1.650888 4.025888 -0.161612 +v 1.650888 4.025888 -0.338389 +v 1.713388 4.088388 -0.375000 +v 1.775888 4.150888 -0.338389 +v 1.625000 4.250000 -0.250000 +v 1.625000 4.213388 -0.161612 +v 1.625000 4.125000 -0.125000 +v 1.625000 4.036612 -0.161612 +v 1.625000 4.036612 -0.338389 +v 1.625000 4.125000 -0.375000 +v 1.625000 4.213388 -0.338389 +v 1.875000 9.125000 -0.250000 +v 1.838388 9.125000 -0.161612 +v 1.750000 9.125000 -0.125000 +v 1.661612 9.125000 -0.161612 +v 1.625000 9.125000 -0.250000 +v 1.661612 9.125000 -0.338389 +v 1.750000 9.125000 -0.375000 +v 1.838388 9.125000 -0.338389 +v 1.125000 9.125000 -0.250000 +v 1.125000 9.088388 -0.161612 +v 1.125000 9.000000 -0.125000 +v 1.125000 8.911612 -0.161612 +v 1.125000 8.875000 -0.250000 +v 1.125000 8.911612 -0.338389 +v 1.125000 9.000000 -0.375000 +v 1.125000 9.088388 -0.338389 +v 0.948223 9.051777 -0.250000 +v 0.974112 9.025888 -0.161612 +v 1.036612 8.963388 -0.125000 +v 1.099112 8.900888 -0.161612 +v 1.099112 8.900888 -0.338389 +v 1.036612 8.963388 -0.375000 +v 0.974112 9.025888 -0.338389 +v 0.875000 8.875000 -0.250000 +v 0.911612 8.875000 -0.161612 +v 1.000000 8.875000 -0.125000 +v 1.088388 8.875000 -0.161612 +v 1.088388 8.875000 -0.338389 +v 1.000000 8.875000 -0.375000 +v 0.911612 8.875000 -0.338389 +v 1.838388 9.500000 -0.338389 +v 1.750000 9.500000 -0.375000 +v 1.661612 9.500000 -0.338389 +v 1.625000 9.500000 -0.250000 +v 1.661612 9.500000 -0.161612 +v 1.750000 9.500000 -0.125000 +v 1.838388 9.500000 -0.161612 +v 1.875000 9.500000 -0.250000 +v 1.625000 8.875000 -0.250000 +v 1.625000 8.911612 -0.161612 +v 1.625000 9.000000 -0.125000 +v 1.625000 9.088388 -0.161612 +v 1.625000 9.088388 -0.338389 +v 1.625000 9.000000 -0.375000 +v 1.625000 8.911612 -0.338389 +v 1.801776 8.948223 -0.250000 +v 1.775888 8.974112 -0.161612 +v 1.713388 9.036612 -0.125000 +v 1.650888 9.099112 -0.161612 +v 1.650888 9.099112 -0.338389 +v 1.713388 9.036612 -0.375000 +v 1.775888 8.974112 -0.338389 +v 0.875000 9.750000 -0.250000 +v 0.911612 9.750000 -0.161612 +v 1.000000 9.750000 -0.125000 +v 1.088388 9.750000 -0.161612 +v 1.125000 9.750000 -0.250000 +v 1.088388 9.750000 -0.338389 +v 1.000000 9.750000 -0.375000 +v 0.911612 9.750000 -0.338389 +v 0.948223 9.573223 -0.250000 +v 0.974112 9.599112 -0.161612 +v 1.036612 9.661612 -0.125000 +v 1.099112 9.724112 -0.161612 +v 1.099112 9.724112 -0.338389 +v 1.036612 9.661612 -0.375000 +v 0.974112 9.599112 -0.338389 +v 1.125000 9.500000 -0.250000 +v 1.125000 9.536612 -0.161612 +v 1.125000 9.625000 -0.125000 +v 1.125000 9.713388 -0.161612 +v 1.125000 9.713388 -0.338389 +v 1.125000 9.625000 -0.375000 +v 1.125000 9.536612 -0.338389 +v 1.801777 9.676777 -0.250000 +v 1.775888 9.650888 -0.161612 +v 1.713388 9.588388 -0.125000 +v 1.650888 9.525888 -0.161612 +v 1.650888 9.525888 -0.338389 +v 1.713388 9.588388 -0.375000 +v 1.775888 9.650888 -0.338389 +v 1.625000 9.750000 -0.250000 +v 1.625000 9.713388 -0.161612 +v 1.625000 9.625000 -0.125000 +v 1.625000 9.536612 -0.161612 +v 1.625000 9.536612 -0.338389 +v 1.625000 9.625000 -0.375000 +v 1.625000 9.713388 -0.338389 +v 1.088388 10.375000 -0.338389 +v 1.000000 10.375000 -0.375000 +v 0.911612 10.375000 -0.338389 +v 0.875000 10.375000 -0.250000 +v 0.911612 10.375000 -0.161612 +v 1.000000 10.375000 -0.125000 +v 1.088388 10.375000 -0.161612 +v 1.125000 10.375000 -0.250000 +v 1.051777 10.551777 -0.250000 +v 1.025888 10.525888 -0.161612 +v 0.963388 10.463388 -0.125000 +v 0.900888 10.400888 -0.161612 +v 0.900888 10.400888 -0.338389 +v 0.963388 10.463388 -0.375000 +v 1.025888 10.525888 -0.338389 +v 0.875000 10.625000 -0.250000 +v 0.875000 10.588388 -0.161612 +v 0.875000 10.500000 -0.125000 +v 0.875000 10.411612 -0.161612 +v 0.875000 10.411612 -0.338389 +v 0.875000 10.500000 -0.375000 +v 0.875000 10.588388 -0.338389 +v 0.500000 10.625000 -0.250000 +v 0.500000 10.588388 -0.161612 +v 0.500000 10.500000 -0.125000 +v 0.500000 10.411612 -0.161612 +v 0.500000 10.375000 -0.250000 +v 0.500000 10.411612 -0.338389 +v 0.500000 10.500000 -0.375000 +v 0.500000 10.588388 -0.338389 +v -1.500000 1.750000 0.625000 +v 1.500000 1.750000 0.625000 +v -1.500000 1.750000 -0.625000 +v 1.500000 1.750000 -0.625000 +v 0.625000 1.750000 1.500000 +v 0.625000 1.750000 -1.500000 +v -0.625000 1.750000 1.500000 +v -0.625000 1.750000 -1.500000 +v 0.000000 8.062500 0.750000 +v -0.176776 8.062500 0.823223 +v -0.250000 8.062500 1.000000 +v -0.176777 8.062500 1.176776 +v 0.000000 8.062500 1.250000 +v 0.176777 8.062500 1.176776 +v 0.250000 8.062500 1.000000 +v 0.176777 8.062500 0.823223 +v 0.000001 7.062500 1.250000 +v 0.176778 7.062500 1.176776 +v 0.000001 7.062500 0.750000 +v 0.176778 7.062500 0.823223 +v 0.250001 7.062500 1.000000 +v -0.249999 7.062500 1.000000 +v -0.176776 7.062500 1.176776 +v -0.176776 7.062500 0.823223 +v 0.000000 6.062500 0.750000 +v -0.176776 6.062500 0.823223 +v -0.250000 6.062500 1.000000 +v -0.176777 6.062500 1.176776 +v 0.000000 6.062500 1.250000 +v 0.176777 6.062500 1.176776 +v 0.250000 6.062500 1.000000 +v 0.176777 6.062500 0.823223 +v 0.000001 5.062500 1.250000 +v 0.176778 5.062500 1.176776 +v 0.000001 5.062500 0.750000 +v 0.176778 5.062500 0.823223 +v 0.250001 5.062500 1.000000 +v -0.249999 5.062500 1.000000 +v -0.176776 5.062500 1.176776 +v -0.176776 5.062500 0.823223 +v -0.750000 7.749999 1.000000 +v -0.713388 7.749999 1.088388 +v -0.625000 7.749999 1.125000 +v -0.536612 7.749999 1.088388 +v -0.500000 7.749999 1.000000 +v -0.536612 7.749999 0.911612 +v -0.625000 7.749999 0.875000 +v -0.713388 7.749999 0.911612 +v -0.676777 7.573222 1.000000 +v -0.650888 7.599111 1.088388 +v -0.588388 7.661611 1.125000 +v -0.525888 7.724111 1.088388 +v -0.525888 7.724111 0.911612 +v -0.588388 7.661611 0.875000 +v -0.650888 7.599111 0.911612 +v -0.500000 7.499999 1.000000 +v -0.500000 7.536611 1.088388 +v -0.500000 7.624999 1.125000 +v -0.500000 7.713387 1.088388 +v -0.500000 7.713387 0.911612 +v -0.500000 7.624999 0.875000 +v -0.500000 7.536611 0.911612 +v -1.155330 9.124999 1.530330 +v -1.191941 9.124999 1.441941 +v -1.155330 9.124999 1.353553 +v -1.066941 9.124999 1.316942 +v -0.978553 9.124999 1.353553 +v -0.941941 9.124999 1.441942 +v -0.978553 9.124999 1.530330 +v -1.066942 9.124999 1.566942 +v -0.713388 9.124999 1.088388 +v -0.775888 9.088387 1.025888 +v -0.801776 8.999999 1.000000 +v -0.775888 8.911611 1.025888 +v -0.713388 8.874999 1.088388 +v -0.650888 8.911611 1.150888 +v -0.625000 8.999999 1.176777 +v -0.650888 9.088387 1.150888 +v -0.588388 9.051776 0.963388 +v -0.669194 9.025887 0.919194 +v -0.739276 8.963387 0.937500 +v -0.757582 8.900887 1.007582 +v -0.632582 8.900887 1.132582 +v -0.562500 8.963387 1.114277 +v -0.544194 9.025887 1.044194 +v -0.536611 8.874999 0.911612 +v -0.625000 8.874999 0.875000 +v -0.713388 8.874999 0.911612 +v -0.750000 8.874999 1.000000 +v -0.625000 8.874999 1.125000 +v -0.536611 8.874999 1.088388 +v -0.500000 8.874999 1.000000 +v -1.066942 9.499999 1.566942 +v -0.978553 9.499999 1.530330 +v -0.941941 9.499999 1.441942 +v -0.978553 9.499999 1.353553 +v -1.066941 9.499999 1.316942 +v -1.155330 9.499999 1.353553 +v -1.191941 9.499999 1.441941 +v -1.155330 9.499999 1.530330 +v -0.978553 8.874999 1.353553 +v -1.041053 8.911611 1.291053 +v -1.066941 8.999999 1.265165 +v -1.041053 9.088387 1.291053 +v -0.916053 9.088387 1.416053 +v -0.890165 8.999999 1.441942 +v -0.916053 8.911611 1.416053 +v -1.103553 8.948222 1.478553 +v -1.147747 8.974111 1.397748 +v -1.129441 9.036611 1.327665 +v -1.059359 9.099111 1.309359 +v -0.934359 9.099111 1.434359 +v -0.952665 9.036611 1.504441 +v -1.022747 8.974111 1.522748 +v -0.536611 9.749999 0.911612 +v -0.625000 9.749999 0.875000 +v -0.713388 9.749999 0.911612 +v -0.750000 9.749999 1.000000 +v -0.713388 9.749999 1.088388 +v -0.625000 9.749999 1.125000 +v -0.536611 9.749999 1.088388 +v -0.500000 9.749999 1.000000 +v -0.588388 9.573222 0.963388 +v -0.669194 9.599111 0.919194 +v -0.739276 9.661611 0.937500 +v -0.757582 9.724111 1.007582 +v -0.632582 9.724111 1.132582 +v -0.562500 9.661611 1.114277 +v -0.544194 9.599111 1.044194 +v -0.713388 9.499999 1.088388 +v -0.775888 9.536611 1.025888 +v -0.801776 9.624999 1.000000 +v -0.775888 9.713387 1.025888 +v -0.650888 9.713387 1.150888 +v -0.625000 9.624999 1.176777 +v -0.650888 9.536611 1.150888 +v -1.103553 9.676776 1.478553 +v -1.147747 9.650887 1.397748 +v -1.129441 9.588387 1.327665 +v -1.059359 9.525887 1.309359 +v -0.934359 9.525887 1.434359 +v -0.952665 9.588387 1.504441 +v -1.022747 9.650887 1.522747 +v -0.978553 9.749999 1.353553 +v -1.041053 9.713387 1.291053 +v -1.066941 9.624999 1.265165 +v -1.041053 9.536611 1.291053 +v -0.916053 9.536611 1.416053 +v -0.890165 9.624999 1.441942 +v -0.916053 9.713387 1.416053 +v -0.187500 7.713387 1.088388 +v -0.187500 7.749999 1.000000 +v -0.187500 7.536611 1.088388 +v -0.187500 7.624999 1.125000 +v -0.187500 7.713387 0.911612 +v -0.187500 7.499999 1.000000 +v -0.187500 7.536611 0.911612 +v -0.187500 7.624999 0.875000 +v -0.536611 11.749999 0.911612 +v -0.625000 11.749999 0.875000 +v -0.713388 11.749999 0.911612 +v -0.750000 11.749999 1.000000 +v -0.713388 11.749999 1.088388 +v -0.625000 11.749999 1.125000 +v -0.536611 11.749999 1.088388 +v -0.500000 11.749999 1.000000 +v -0.558709 11.749999 0.933709 +v -0.625000 11.749999 0.906250 +v -0.691291 11.749999 0.933709 +v -0.718750 11.749999 1.000000 +v -0.691291 11.749999 1.066291 +v -0.625000 11.749999 1.093750 +v -0.558709 11.749999 1.066291 +v -0.531250 11.749999 1.000000 +v -0.691289 10.749999 1.066291 +v -0.624997 10.749999 1.093750 +v -0.558706 10.749999 0.933709 +v -0.531247 10.749999 1.000000 +v -0.558706 10.749999 1.066291 +v -0.691289 10.749999 0.933709 +v -0.718747 10.749999 1.000000 +v -0.624997 10.749999 0.906250 +v 1.250000 2.000000 0.125000 +v 1.161612 2.000000 0.161612 +v 1.125000 2.000000 0.250000 +v 1.161612 2.000000 0.338388 +v 1.250000 2.000000 0.375000 +v 1.338388 2.000000 0.338388 +v 1.375000 2.000000 0.250000 +v 1.338388 2.000000 0.161612 +v 1.875000 3.625000 0.250000 +v 1.838388 3.625000 0.338388 +v 1.750000 3.625000 0.375000 +v 1.661612 3.625000 0.338388 +v 1.625000 3.625000 0.250000 +v 1.661612 3.625000 0.161611 +v 1.750000 3.625000 0.125000 +v 1.838388 3.625000 0.161611 +v 1.375000 3.625000 0.250000 +v 1.375000 3.588389 0.338388 +v 1.375000 3.500000 0.375000 +v 1.375000 3.411612 0.338388 +v 1.375000 3.375000 0.250000 +v 1.375000 3.411612 0.161611 +v 1.375000 3.500000 0.125000 +v 1.375000 3.588389 0.161611 +v 1.198223 3.551777 0.250000 +v 1.224112 3.525889 0.338388 +v 1.286612 3.463389 0.375000 +v 1.349112 3.400889 0.338388 +v 1.349112 3.400889 0.161611 +v 1.286612 3.463389 0.125000 +v 1.224112 3.525889 0.161611 +v 1.125000 3.375000 0.250000 +v 1.161612 3.375000 0.338388 +v 1.250000 3.375000 0.375000 +v 1.338388 3.375000 0.338388 +v 1.338388 3.375000 0.161611 +v 1.250000 3.375000 0.125000 +v 1.161612 3.375000 0.161611 +v 1.838388 4.000000 0.161611 +v 1.750000 4.000000 0.125000 +v 1.661612 4.000000 0.161611 +v 1.625000 4.000000 0.250000 +v 1.661612 4.000000 0.338388 +v 1.750000 4.000000 0.375000 +v 1.838388 4.000000 0.338388 +v 1.875000 4.000000 0.250000 +v 1.625000 3.375000 0.250000 +v 1.625000 3.411612 0.338388 +v 1.625000 3.500000 0.375000 +v 1.625000 3.588389 0.338388 +v 1.625000 3.588389 0.161611 +v 1.625000 3.500000 0.125000 +v 1.625000 3.411612 0.161611 +v 1.801776 3.448224 0.250000 +v 1.775888 3.474112 0.338388 +v 1.713388 3.536612 0.375000 +v 1.650888 3.599112 0.338388 +v 1.650888 3.599112 0.161611 +v 1.713388 3.536612 0.125000 +v 1.775888 3.474112 0.161611 +v 0.875000 4.250000 0.250000 +v 0.911612 4.250000 0.338388 +v 1.000000 4.250000 0.375000 +v 1.088388 4.250000 0.338388 +v 1.125000 4.250000 0.250000 +v 1.088388 4.250000 0.161611 +v 1.000000 4.250000 0.125000 +v 0.911612 4.250000 0.161611 +v 0.948223 4.073224 0.250000 +v 0.974112 4.099112 0.338388 +v 1.036612 4.161612 0.375000 +v 1.099112 4.224112 0.338388 +v 1.099112 4.224112 0.161611 +v 1.036612 4.161612 0.125000 +v 0.974112 4.099112 0.161611 +v 1.125000 4.000000 0.250000 +v 1.125000 4.036612 0.338388 +v 1.125000 4.125000 0.375000 +v 1.125000 4.213388 0.338388 +v 1.125000 4.213388 0.161611 +v 1.125000 4.125000 0.125000 +v 1.125000 4.036612 0.161611 +v 1.801777 4.176777 0.250000 +v 1.775888 4.150888 0.338388 +v 1.713388 4.088388 0.375000 +v 1.650888 4.025888 0.338388 +v 1.650888 4.025888 0.161611 +v 1.713388 4.088388 0.125000 +v 1.775888 4.150888 0.161611 +v 1.625000 4.250000 0.250000 +v 1.625000 4.213388 0.338388 +v 1.625000 4.125000 0.375000 +v 1.625000 4.036612 0.338388 +v 1.625000 4.036612 0.161611 +v 1.625000 4.125000 0.125000 +v 1.625000 4.213388 0.161611 +v 1.875000 9.125000 0.250000 +v 1.838388 9.125000 0.338388 +v 1.750000 9.125000 0.375000 +v 1.661612 9.125000 0.338388 +v 1.625000 9.125000 0.250000 +v 1.661612 9.125000 0.161611 +v 1.750000 9.125000 0.125000 +v 1.838388 9.125000 0.161611 +v 1.125000 9.125000 0.250000 +v 1.125000 9.088388 0.338388 +v 1.125000 9.000000 0.375000 +v 1.125000 8.911612 0.338388 +v 1.125000 8.875000 0.250000 +v 1.125000 8.911612 0.161611 +v 1.125000 9.000000 0.125000 +v 1.125000 9.088388 0.161611 +v 0.948223 9.051777 0.250000 +v 0.974112 9.025888 0.338388 +v 1.036612 8.963388 0.375000 +v 1.099112 8.900888 0.338388 +v 1.099112 8.900888 0.161611 +v 1.036612 8.963388 0.125000 +v 0.974112 9.025888 0.161611 +v 0.875000 8.875000 0.250000 +v 0.911612 8.875000 0.338388 +v 1.000000 8.875000 0.375000 +v 1.088388 8.875000 0.338388 +v 1.088388 8.875000 0.161611 +v 1.000000 8.875000 0.125000 +v 0.911612 8.875000 0.161611 +v 1.838388 9.500000 0.161611 +v 1.750000 9.500000 0.125000 +v 1.661612 9.500000 0.161611 +v 1.625000 9.500000 0.250000 +v 1.661612 9.500000 0.338388 +v 1.750000 9.500000 0.375000 +v 1.838388 9.500000 0.338388 +v 1.875000 9.500000 0.250000 +v 1.625000 8.875000 0.250000 +v 1.625000 8.911612 0.338388 +v 1.625000 9.000000 0.375000 +v 1.625000 9.088388 0.338388 +v 1.625000 9.088388 0.161611 +v 1.625000 9.000000 0.125000 +v 1.625000 8.911612 0.161611 +v 1.801776 8.948223 0.250000 +v 1.775888 8.974112 0.338388 +v 1.713388 9.036612 0.375000 +v 1.650888 9.099112 0.338388 +v 1.650888 9.099112 0.161611 +v 1.713388 9.036612 0.125000 +v 1.775888 8.974112 0.161611 +v 0.875000 9.750000 0.250000 +v 0.911612 9.750000 0.338388 +v 1.000000 9.750000 0.375000 +v 1.088388 9.750000 0.338388 +v 1.125000 9.750000 0.250000 +v 1.088388 9.750000 0.161611 +v 1.000000 9.750000 0.125000 +v 0.911612 9.750000 0.161611 +v 0.948223 9.573223 0.250000 +v 0.974112 9.599112 0.338388 +v 1.036612 9.661612 0.375000 +v 1.099112 9.724112 0.338388 +v 1.099112 9.724112 0.161611 +v 1.036612 9.661612 0.125000 +v 0.974112 9.599112 0.161611 +v 1.125000 9.500000 0.250000 +v 1.125000 9.536612 0.338388 +v 1.125000 9.625000 0.375000 +v 1.125000 9.713388 0.338388 +v 1.125000 9.713388 0.161611 +v 1.125000 9.625000 0.125000 +v 1.125000 9.536612 0.161611 +v 1.801777 9.676777 0.250000 +v 1.775888 9.650888 0.338388 +v 1.713388 9.588388 0.375000 +v 1.650888 9.525888 0.338388 +v 1.650888 9.525888 0.161611 +v 1.713388 9.588388 0.125000 +v 1.775888 9.650888 0.161611 +v 1.625000 9.750000 0.250000 +v 1.625000 9.713388 0.338388 +v 1.625000 9.625000 0.375000 +v 1.625000 9.536612 0.338388 +v 1.625000 9.536612 0.161611 +v 1.625000 9.625000 0.125000 +v 1.625000 9.713388 0.161611 +v 1.088388 10.375000 0.161611 +v 1.000000 10.375000 0.125000 +v 0.911612 10.375000 0.161611 +v 0.875000 10.375000 0.250000 +v 0.911612 10.375000 0.338388 +v 1.000000 10.375000 0.375000 +v 1.088388 10.375000 0.338388 +v 1.125000 10.375000 0.250000 +v 1.051777 10.551777 0.250000 +v 1.025888 10.525888 0.338388 +v 0.963388 10.463388 0.375000 +v 0.900888 10.400888 0.338388 +v 0.900888 10.400888 0.161611 +v 0.963388 10.463388 0.125000 +v 1.025888 10.525888 0.161611 +v 0.875000 10.625000 0.250000 +v 0.875000 10.588388 0.338388 +v 0.875000 10.500000 0.375000 +v 0.875000 10.411612 0.338388 +v 0.875000 10.411612 0.161611 +v 0.875000 10.500000 0.125000 +v 0.875000 10.588388 0.161611 +v 0.500000 10.625000 0.250000 +v 0.500000 10.588388 0.338388 +v 0.500000 10.500000 0.375000 +v 0.500000 10.411612 0.338388 +v 0.500000 10.375000 0.250000 +v 0.500000 10.411612 0.161611 +v 0.500000 10.500000 0.125000 +v 0.500000 10.588388 0.161611 +v 0.125000 2.000000 1.250000 +v 0.088388 2.000000 1.161612 +v 0.000000 2.000000 1.125000 +v -0.088388 2.000000 1.161612 +v -0.125000 2.000000 1.250000 +v -0.088388 2.000000 1.338388 +v 0.000000 2.000000 1.375000 +v 0.088388 2.000000 1.338388 +v 0.000000 3.625000 1.875000 +v -0.088388 3.625000 1.838388 +v -0.125000 3.625000 1.750000 +v -0.088388 3.625000 1.661612 +v 0.000000 3.625000 1.625000 +v 0.088389 3.625000 1.661612 +v 0.125000 3.625000 1.750000 +v 0.088389 3.625000 1.838388 +v 0.000000 3.625000 1.375000 +v -0.088388 3.588388 1.375000 +v -0.125000 3.500000 1.375000 +v -0.088388 3.411612 1.375000 +v 0.000000 3.375000 1.375000 +v 0.088389 3.411612 1.375000 +v 0.125000 3.500000 1.375000 +v 0.088389 3.588388 1.375000 +v 0.000000 3.551777 1.198223 +v -0.088388 3.525888 1.224112 +v -0.125000 3.463388 1.286612 +v -0.088388 3.400888 1.349112 +v 0.088389 3.400888 1.349112 +v 0.125000 3.463388 1.286612 +v 0.088389 3.525888 1.224112 +v 0.000000 3.375000 1.125000 +v -0.088388 3.375000 1.161612 +v -0.125000 3.375000 1.250000 +v -0.088388 3.375000 1.338388 +v 0.088389 3.375000 1.338388 +v 0.125000 3.375000 1.250000 +v 0.088389 3.375000 1.161612 +v 0.088389 4.000000 1.838388 +v 0.125000 4.000000 1.750000 +v 0.088389 4.000000 1.661612 +v 0.000000 4.000000 1.625000 +v -0.088388 4.000000 1.661612 +v -0.125000 4.000000 1.750000 +v -0.088388 4.000000 1.838388 +v 0.000000 4.000000 1.875000 +v 0.000000 3.375000 1.625000 +v -0.088388 3.411612 1.625000 +v -0.125000 3.500000 1.625000 +v -0.088388 3.588388 1.625000 +v 0.088389 3.588388 1.625000 +v 0.125000 3.500000 1.625000 +v 0.088389 3.411612 1.625000 +v 0.000000 3.448223 1.801776 +v -0.088388 3.474112 1.775888 +v -0.125000 3.536612 1.713388 +v -0.088388 3.599112 1.650888 +v 0.088389 3.599112 1.650888 +v 0.125000 3.536612 1.713388 +v 0.088389 3.474112 1.775888 +v 0.000000 4.250000 0.875000 +v -0.088388 4.250000 0.911612 +v -0.125000 4.250000 1.000000 +v -0.088388 4.250000 1.088388 +v 0.000000 4.250000 1.125000 +v 0.088389 4.250000 1.088388 +v 0.125000 4.250000 1.000000 +v 0.088389 4.250000 0.911612 +v 0.000000 4.073223 0.948223 +v -0.088388 4.099112 0.974112 +v -0.125000 4.161612 1.036612 +v -0.088388 4.224112 1.099112 +v 0.088389 4.224112 1.099112 +v 0.125000 4.161612 1.036612 +v 0.088389 4.099112 0.974112 +v 0.000000 4.000000 1.125000 +v -0.088388 4.036612 1.125000 +v -0.125000 4.125000 1.125000 +v -0.088388 4.213388 1.125000 +v 0.088389 4.213388 1.125000 +v 0.125000 4.125000 1.125000 +v 0.088389 4.036612 1.125000 +v 0.000000 4.176776 1.801777 +v -0.088388 4.150888 1.775888 +v -0.125000 4.088388 1.713388 +v -0.088388 4.025888 1.650888 +v 0.088389 4.025888 1.650888 +v 0.125000 4.088388 1.713388 +v 0.088389 4.150888 1.775888 +v 0.000000 4.250000 1.625000 +v -0.088388 4.213388 1.625000 +v -0.125000 4.125000 1.625000 +v -0.088388 4.036612 1.625000 +v 0.088389 4.036612 1.625000 +v 0.125000 4.125000 1.625000 +v 0.088389 4.213388 1.625000 +v 0.000000 9.124999 1.875000 +v -0.088388 9.124999 1.838388 +v -0.125000 9.124999 1.750000 +v -0.088388 9.124999 1.661612 +v 0.000000 9.124999 1.625000 +v 0.088389 9.124999 1.661612 +v 0.125000 9.124999 1.750000 +v 0.088389 9.124999 1.838388 +v 0.000000 9.124999 1.125000 +v -0.088388 9.088387 1.125000 +v -0.125000 8.999999 1.125000 +v -0.088388 8.911611 1.125000 +v 0.000000 8.874999 1.125000 +v 0.088389 8.911611 1.125000 +v 0.125000 8.999999 1.125000 +v 0.088389 9.088387 1.125000 +v 0.000000 9.051776 0.948223 +v -0.088388 9.025887 0.974112 +v -0.125000 8.963387 1.036612 +v -0.088388 8.900887 1.099112 +v 0.088389 8.900887 1.099112 +v 0.125000 8.963387 1.036612 +v 0.088389 9.025887 0.974112 +v 0.000000 8.874999 0.875000 +v -0.088388 8.874999 0.911612 +v -0.125000 8.874999 1.000000 +v -0.088388 8.874999 1.088388 +v 0.088389 8.874999 1.088388 +v 0.125000 8.874999 1.000000 +v 0.088389 8.874999 0.911612 +v 0.088389 9.499999 1.838388 +v 0.125000 9.499999 1.750000 +v 0.088389 9.499999 1.661612 +v 0.000000 9.499999 1.625000 +v -0.088388 9.499999 1.661612 +v -0.125000 9.499999 1.750000 +v -0.088388 9.499999 1.838388 +v 0.000000 9.499999 1.875000 +v 0.000000 8.874999 1.625000 +v -0.088388 8.911611 1.625000 +v -0.125000 8.999999 1.625000 +v -0.088388 9.088387 1.625000 +v 0.088389 9.088387 1.625000 +v 0.125000 8.999999 1.625000 +v 0.088389 8.911611 1.625000 +v 0.000000 8.948222 1.801776 +v -0.088388 8.974111 1.775888 +v -0.125000 9.036611 1.713388 +v -0.088388 9.099111 1.650888 +v 0.088389 9.099111 1.650888 +v 0.125000 9.036611 1.713388 +v 0.088389 8.974111 1.775888 +v 0.000000 9.749999 0.875000 +v -0.088388 9.749999 0.911612 +v -0.125000 9.749999 1.000000 +v -0.088388 9.749999 1.088388 +v 0.000000 9.749999 1.125000 +v 0.088389 9.749999 1.088388 +v 0.125000 9.749999 1.000000 +v 0.088389 9.749999 0.911612 +v 0.000000 9.573222 0.948223 +v -0.088388 9.599111 0.974112 +v -0.125000 9.661611 1.036612 +v -0.088388 9.724111 1.099112 +v 0.088389 9.724111 1.099112 +v 0.125000 9.661611 1.036612 +v 0.088389 9.599111 0.974112 +v 0.000000 9.499999 1.125000 +v -0.088388 9.536611 1.125000 +v -0.125000 9.624999 1.125000 +v -0.088388 9.713387 1.125000 +v 0.088389 9.713387 1.125000 +v 0.125000 9.624999 1.125000 +v 0.088389 9.536611 1.125000 +v 0.000000 9.676776 1.801777 +v -0.088388 9.650887 1.775888 +v -0.125000 9.588387 1.713388 +v -0.088388 9.525887 1.650888 +v 0.088389 9.525887 1.650888 +v 0.125000 9.588387 1.713388 +v 0.088389 9.650887 1.775888 +v 0.000000 9.749999 1.625000 +v -0.088388 9.713387 1.625000 +v -0.125000 9.624999 1.625000 +v -0.088388 9.536611 1.625000 +v 0.088389 9.536611 1.625000 +v 0.125000 9.624999 1.625000 +v 0.088389 9.713387 1.625000 +v 0.088389 10.374999 1.088388 +v 0.125000 10.374999 1.000000 +v 0.088389 10.374999 0.911612 +v 0.000000 10.374999 0.875000 +v -0.088388 10.374999 0.911612 +v -0.125000 10.374999 1.000000 +v -0.088388 10.374999 1.088388 +v 0.000000 10.374999 1.125000 +v 0.000000 10.551776 1.051777 +v -0.088388 10.525887 1.025888 +v -0.125000 10.463387 0.963388 +v -0.088388 10.400887 0.900888 +v 0.088389 10.400887 0.900888 +v 0.125000 10.463387 0.963388 +v 0.088389 10.525887 1.025888 +v 0.000000 10.624999 0.875000 +v -0.088388 10.588387 0.875000 +v -0.125000 10.499999 0.875000 +v -0.088388 10.411611 0.875000 +v 0.088389 10.411611 0.875000 +v 0.125000 10.499999 0.875000 +v 0.088389 10.588387 0.875000 +v 0.000000 10.624999 0.500000 +v -0.088388 10.588387 0.500000 +v -0.125000 10.499999 0.500000 +v -0.088388 10.411611 0.500000 +v 0.000000 10.374999 0.500000 +v 0.088389 10.411611 0.500000 +v 0.125000 10.499999 0.500000 +v 0.088389 10.588387 0.500000 +v 0.000000 8.062500 0.750000 +v -0.176776 8.062500 0.823223 +v -0.250000 8.062500 1.000000 +v -0.176777 8.062500 1.176776 +v 0.000000 8.062500 1.250000 +v 0.176777 8.062500 1.176776 +v 0.250000 8.062500 1.000000 +v 0.176777 8.062500 0.823223 +v 0.000001 7.062500 1.250000 +v 0.176778 7.062500 1.176776 +v 0.000001 7.062500 0.750000 +v 0.176778 7.062500 0.823223 +v 0.250001 7.062500 1.000000 +v -0.249999 7.062500 1.000000 +v -0.176776 7.062500 1.176776 +v -0.176776 7.062500 0.823223 +v 0.000000 6.062500 0.750000 +v -0.176776 6.062500 0.823223 +v -0.250000 6.062500 1.000000 +v -0.176777 6.062500 1.176776 +v 0.000000 6.062500 1.250000 +v 0.176777 6.062500 1.176776 +v 0.250000 6.062500 1.000000 +v 0.176777 6.062500 0.823223 +v 0.000001 5.062500 1.250000 +v 0.176778 5.062500 1.176776 +v 0.000001 5.062500 0.750000 +v 0.176778 5.062500 0.823223 +v 0.250001 5.062500 1.000000 +v -0.249999 5.062500 1.000000 +v -0.176776 5.062500 1.176776 +v -0.176776 5.062500 0.823223 +v -1.000000 10.000000 -1.250000 +v -1.176777 10.000000 -1.176777 +v -1.250000 10.000000 -1.000000 +v -1.176777 10.000000 -0.823223 +v -1.000000 10.000000 -0.750000 +v -0.823223 10.000000 -0.823223 +v -0.750000 10.000000 -1.000000 +v -0.823223 10.000000 -1.176777 +v -1.000000 10.000000 -1.375000 +v -1.265165 10.000000 -1.265165 +v -1.375000 10.000000 -1.000000 +v -1.265165 10.000000 -0.734835 +v -1.000000 10.000000 -0.625000 +v -0.734835 10.000000 -0.734835 +v -0.625000 10.000000 -1.000000 +v -0.734835 10.000000 -1.265165 +v -1.000000 10.750000 -1.375000 +v -1.265165 10.750000 -1.265165 +v -1.375000 10.750000 -1.000000 +v -1.265165 10.750000 -0.734835 +v -1.000000 10.750000 -0.625000 +v -0.734835 10.750000 -0.734835 +v -0.625000 10.750000 -1.000000 +v -0.734835 10.750000 -1.265165 +v -1.000000 11.000000 -1.250000 +v -1.176777 11.000000 -1.176777 +v -1.250000 11.000000 -1.000000 +v -1.176777 11.000000 -0.823223 +v -1.000000 11.000000 -0.750000 +v -0.823223 11.000000 -0.823223 +v -0.750000 11.000000 -1.000000 +v -0.823223 11.000000 -1.176777 +v -1.000000 11.000000 -1.187500 +v -1.132582 11.000000 -1.132582 +v -1.187500 11.000000 -1.000000 +v -1.132582 11.000000 -0.867418 +v -1.000000 11.000000 -0.812500 +v -0.867417 11.000000 -0.867418 +v -0.812500 11.000000 -1.000000 +v -0.867417 11.000000 -1.132582 +v -1.132582 10.000000 -1.132582 +v -1.000000 10.000000 -1.187500 +v -1.187500 10.000000 -1.000000 +v -1.132582 10.000000 -0.867418 +v -1.000000 10.000000 -0.812500 +v -0.867417 10.000000 -0.867418 +v -0.812500 10.000000 -1.000000 +v -0.867417 10.000000 -1.132582 +v -0.536611 11.749999 0.911612 +v -0.625000 11.749999 0.875000 +v -0.713388 11.749999 0.911612 +v -0.750000 11.749999 1.000000 +v -0.713388 11.749999 1.088388 +v -0.625000 11.749999 1.125000 +v -0.536611 11.749999 1.088388 +v -0.500000 11.749999 1.000000 +v -0.558709 11.749999 0.933709 +v -0.625000 11.749999 0.906250 +v -0.691291 11.749999 0.933709 +v -0.718750 11.749999 1.000000 +v -0.691291 11.749999 1.066291 +v -0.625000 11.749999 1.093750 +v -0.558709 11.749999 1.066291 +v -0.531250 11.749999 1.000000 +v -0.691289 10.749999 1.066291 +v -0.624997 10.749999 1.093750 +v -0.558706 10.749999 0.933709 +v -0.531247 10.749999 1.000000 +v -0.558706 10.749999 1.066291 +v -0.691289 10.749999 0.933709 +v -0.718747 10.749999 1.000000 +v -0.624997 10.749999 0.906250 +v 0.156250 11.000000 -0.156250 +v -0.156250 11.000000 -0.156250 +v -0.156250 11.000000 0.156250 +v 0.375000 11.154779 -0.156250 +v 0.156250 11.000000 0.156250 +vt 0.250000 0.000000 +vt 0.100000 0.255319 +vt 0.100000 0.000000 +vt 0.100000 0.404255 +vt 0.250000 0.659574 +vt 0.100000 0.659574 +vt 0.771875 0.079787 +vt 0.800000 0.095745 +vt 0.762500 0.095745 +vt 0.806250 0.085106 +vt 0.796875 0.037234 +vt 0.806250 0.021277 +vt 0.790625 0.026596 +vt 0.762500 0.010638 +vt 0.800000 0.010638 +vt 0.756250 0.021277 +vt 0.765625 0.069149 +vt 0.756250 0.085106 +vt 0.771875 0.079787 +vt 0.800000 0.095745 +vt 0.762500 0.095745 +vt 0.406250 0.138298 +vt 0.375000 0.734043 +vt 0.375000 0.138298 +vt 0.375000 0.042553 +vt 0.328125 0.138298 +vt 0.312500 0.042553 +vt 0.625000 0.042553 +vt 0.578125 0.138298 +vt 0.562500 0.042553 +vt 0.265625 0.138298 +vt 0.250000 0.042553 +vt 0.515625 0.138298 +vt 0.500000 0.042553 +vt 0.453125 0.138298 +vt 0.437500 0.042553 +vt 0.750000 0.042553 +vt 0.703125 0.138298 +vt 0.687500 0.042553 +vt 0.390625 0.138298 +vt 0.640625 0.138298 +vt 0.312500 0.734043 +vt 0.284375 0.904255 +vt 0.281250 0.734043 +vt 0.343750 0.734043 +vt 0.343750 0.138298 +vt 0.500000 0.138298 +vt 0.468750 0.734043 +vt 0.468750 0.138298 +vt 0.312500 0.138298 +vt 0.437500 0.734043 +vt 0.437500 0.138298 +vt 0.281250 0.138298 +vt 0.406250 0.734043 +vt 0.250000 0.734043 +vt 0.250000 0.138298 +vt 0.218750 0.744681 +vt 0.203125 0.672747 +vt 0.218750 0.659574 +vt 0.318750 0.920213 +vt 0.337500 0.904255 +vt 0.334375 0.920213 +vt 0.409375 0.904255 +vt 0.253125 0.904255 +vt 0.378125 0.904255 +vt 0.346875 0.904255 +vt 0.500000 0.734043 +vt 0.471875 0.904255 +vt 0.315625 0.904255 +vt 0.440625 0.904255 +vt 0.350000 0.920213 +vt 0.368750 0.904255 +vt 0.365625 0.920213 +vt 0.381250 0.920213 +vt 0.400000 0.904255 +vt 0.396875 0.920213 +vt 0.428125 0.920213 +vt 0.412500 0.920213 +vt 0.443750 0.920213 +vt 0.462500 0.904255 +vt 0.459375 0.920213 +vt 0.475000 0.920213 +vt 0.493750 0.904255 +vt 0.490625 0.920213 +vt 0.256250 0.920213 +vt 0.275000 0.904255 +vt 0.271875 0.920213 +vt 0.303125 0.920213 +vt 0.287500 0.920213 +vt 0.218750 0.813830 +vt 0.206250 0.792553 +vt 0.218750 0.792553 +vt 0.140625 0.744681 +vt 0.156250 0.659574 +vt 0.156250 0.744681 +vt 0.234375 0.659574 +vt 0.234375 0.744681 +vt 0.171875 0.659574 +vt 0.171875 0.744681 +vt 0.250000 0.659574 +vt 0.250000 0.744681 +vt 0.187500 0.659574 +vt 0.187500 0.744681 +vt 0.203125 0.659574 +vt 0.125000 0.744681 +vt 0.140625 0.659574 +vt 0.750000 0.021277 +vt 0.750000 0.085106 +vt 0.812500 0.085106 +vt 0.812500 0.021277 +vt 0.771875 0.069149 +vt 0.765625 0.037234 +vt 0.771875 0.037234 +vt 0.790625 0.037234 +vt 0.796875 0.069149 +vt 0.790625 0.069149 +vt 0.800000 0.000000 +vt 0.762500 0.000000 +vt 0.762500 0.106383 +vt 0.800000 0.106383 +vt 0.806250 0.085106 +vt 0.796875 0.037234 +vt 0.806250 0.021277 +vt 0.790625 0.026596 +vt 0.762500 0.010638 +vt 0.800000 0.010638 +vt 0.756250 0.021277 +vt 0.765625 0.069149 +vt 0.756250 0.085106 +vt 0.750000 0.021277 +vt 0.750000 0.085106 +vt 0.812500 0.085106 +vt 0.812500 0.021277 +vt 0.771875 0.069149 +vt 0.765625 0.037234 +vt 0.771875 0.037234 +vt 0.790625 0.037234 +vt 0.796875 0.069149 +vt 0.790625 0.069149 +vt 0.800000 0.000000 +vt 0.762500 0.000000 +vt 0.762500 0.106383 +vt 0.800000 0.106383 +vt 0.771875 0.079787 +vt 0.800000 0.095745 +vt 0.762500 0.095745 +vt 0.806250 0.085106 +vt 0.796875 0.037234 +vt 0.806250 0.021277 +vt 0.790625 0.026596 +vt 0.762500 0.010638 +vt 0.800000 0.010638 +vt 0.765625 0.037234 +vt 0.756250 0.085106 +vt 0.756250 0.021277 +vt 0.771875 0.079787 +vt 0.800000 0.095745 +vt 0.762500 0.095745 +vt 0.750000 0.021277 +vt 0.750000 0.085106 +vt 0.812500 0.085106 +vt 0.812500 0.021277 +vt 0.771875 0.069149 +vt 0.771875 0.037234 +vt 0.790625 0.037234 +vt 0.796875 0.069149 +vt 0.790625 0.069149 +vt 0.800000 0.000000 +vt 0.762500 0.000000 +vt 0.762500 0.106383 +vt 0.800000 0.106383 +vt 0.806250 0.085106 +vt 0.796875 0.037234 +vt 0.806250 0.021277 +vt 0.790625 0.026596 +vt 0.762500 0.010638 +vt 0.800000 0.010638 +vt 0.765625 0.037234 +vt 0.756250 0.085106 +vt 0.756250 0.021277 +vt 0.750000 0.021277 +vt 0.750000 0.085106 +vt 0.812500 0.085106 +vt 0.812500 0.021277 +vt 0.771875 0.069149 +vt 0.771875 0.037234 +vt 0.790625 0.037234 +vt 0.796875 0.069149 +vt 0.790625 0.069149 +vt 0.790625 0.079787 +vt 0.800000 0.000000 +vt 0.762500 0.000000 +vt 0.762500 0.106383 +vt 0.800000 0.106383 +vt 0.250000 0.255319 +vt 0.156250 0.265957 +vt 0.250000 0.255319 +vt 0.156250 0.265957 +vt 0.100000 0.255319 +vt 0.250000 0.255319 +vt 0.156250 0.265957 +vt 0.100000 0.255319 +vt 0.250000 0.255319 +vt 0.156250 0.265957 +vt 0.100000 0.255319 +vt 0.156250 0.329787 +vt 0.250000 0.404255 +vt 0.100000 0.404255 +vt 0.100000 0.404255 +vt 0.193750 0.329787 +vt 0.250000 0.404255 +vt 0.156250 0.329787 +vt 0.250000 0.404255 +vt 0.100000 0.404255 +vt 0.193750 0.329787 +vt 0.250000 0.404255 +vt 0.156250 0.329787 +vt 0.193750 0.329787 +vt 0.156250 0.329787 +vt 0.193750 0.329787 +vt 0.762500 0.287234 +vt 0.728125 0.276596 +vt 0.759375 0.276596 +vt 0.837500 0.287234 +vt 0.803125 0.276596 +vt 0.834375 0.276596 +vt 0.612500 0.287234 +vt 0.578125 0.276596 +vt 0.609375 0.276596 +vt 0.875000 0.287234 +vt 0.840625 0.276596 +vt 0.871875 0.276596 +vt 0.800000 0.287234 +vt 0.765625 0.276596 +vt 0.796875 0.276596 +vt 0.687500 0.287234 +vt 0.653125 0.276596 +vt 0.684375 0.276596 +vt 0.721875 0.276596 +vt 0.690625 0.276596 +vt 0.650000 0.287234 +vt 0.615625 0.276596 +vt 0.646875 0.276596 +vt 0.728125 0.308511 +vt 0.762500 0.297872 +vt 0.759375 0.308511 +vt 0.803125 0.308511 +vt 0.837500 0.297872 +vt 0.834375 0.308511 +vt 0.578125 0.308511 +vt 0.612500 0.297872 +vt 0.609375 0.308511 +vt 0.840625 0.308511 +vt 0.875000 0.297872 +vt 0.871875 0.308511 +vt 0.765625 0.308511 +vt 0.800000 0.297872 +vt 0.796875 0.308511 +vt 0.653125 0.308511 +vt 0.687500 0.297872 +vt 0.684375 0.308511 +vt 0.690625 0.308511 +vt 0.725000 0.297872 +vt 0.721875 0.308511 +vt 0.615625 0.308511 +vt 0.650000 0.297872 +vt 0.646875 0.308511 +vt 0.831250 0.000000 +vt 0.825000 0.058511 +vt 0.825000 0.000000 +vt 0.575000 0.297872 +vt 0.575000 0.287234 +vt 0.818750 0.058511 +vt 0.812500 0.000000 +vt 0.818750 0.000000 +vt 0.837500 0.058511 +vt 0.837500 0.000000 +vt 0.831250 0.000000 +vt 0.825000 0.058511 +vt 0.825000 0.000000 +vt 0.837500 0.000000 +vt 0.831250 0.058511 +vt 0.725000 0.287234 +vt 0.818750 0.058511 +vt 0.812500 0.000000 +vt 0.818750 0.000000 +vt 0.825000 0.058511 +vt 0.818750 0.000000 +vt 0.825000 0.000000 +vt 0.750000 0.212766 +vt 0.800000 0.170213 +vt 0.812500 0.212766 +vt 0.875000 0.212766 +vt 0.925000 0.170213 +vt 0.937500 0.212766 +vt 0.500000 0.212766 +vt 0.550000 0.170213 +vt 0.562500 0.212766 +vt 0.625000 0.212766 +vt 0.675000 0.170213 +vt 0.687500 0.212766 +vt 0.696875 0.170213 +vt 0.612500 0.170213 +vt 0.987500 0.170213 +vt 1.000000 0.212766 +vt 0.862500 0.170213 +vt 0.800000 0.265957 +vt 0.750000 0.223404 +vt 0.812500 0.223404 +vt 0.925000 0.265957 +vt 0.875000 0.223404 +vt 0.937500 0.223404 +vt 0.550000 0.265957 +vt 0.500000 0.223404 +vt 0.562500 0.223404 +vt 0.675000 0.265957 +vt 0.625000 0.223404 +vt 0.687500 0.223404 +vt 0.696875 0.265957 +vt 0.612500 0.265957 +vt 0.987500 0.265957 +vt 1.000000 0.223404 +vt 0.862500 0.265957 +vt 0.696875 0.276596 +vt 0.737500 0.265957 +vt 0.737500 0.276596 +vt 0.571875 0.276596 +vt 0.612500 0.276596 +vt 0.946875 0.276596 +vt 0.987500 0.276596 +vt 0.509375 0.276596 +vt 0.550000 0.276596 +vt 0.821875 0.276596 +vt 0.862500 0.276596 +vt 0.634375 0.276596 +vt 0.675000 0.276596 +vt 0.759375 0.276596 +vt 0.800000 0.276596 +vt 0.884375 0.276596 +vt 0.925000 0.276596 +vt 0.818750 0.058511 +vt 0.812500 0.000000 +vt 0.825000 0.058511 +vt 0.818750 0.000000 +vt 0.825000 0.000000 +vt 0.831250 0.000000 +vt 0.825000 0.058511 +vt 0.825000 0.000000 +vt 0.837500 0.058511 +vt 0.831250 0.000000 +vt 0.837500 0.000000 +vt 0.837500 0.058511 +vt 0.831250 0.000000 +vt 0.837500 0.000000 +vt 0.818750 0.000000 +vt 0.812500 0.058511 +vt 0.812500 0.000000 +vt 0.818750 0.058511 +vt 0.812500 0.000000 +vt 0.837500 0.058511 +vt 0.837500 0.000000 +vt 0.831250 0.058511 +vt 0.825000 0.000000 +vt 0.831250 0.000000 +vt 0.837500 0.058511 +vt 0.837500 0.000000 +vt 0.818750 0.000000 +vt 0.812500 0.058511 +vt 0.812500 0.000000 +vt 0.825000 0.058511 +vt 0.818750 0.000000 +vt 0.825000 0.000000 +vt 0.812500 0.058511 +vt 0.812500 0.000000 +vt 0.825000 0.058511 +vt 0.818750 0.000000 +vt 0.825000 0.000000 +vt 0.837500 0.058511 +vt 0.831250 0.000000 +vt 0.837500 0.000000 +vt 0.837500 0.058511 +vt 0.831250 0.000000 +vt 0.837500 0.000000 +vt 0.825000 0.058511 +vt 0.812500 0.058511 +vt 0.812500 0.000000 +vt 0.884375 0.340426 +vt 0.921875 0.351064 +vt 0.884375 0.351064 +vt 0.578125 0.340426 +vt 0.615625 0.351064 +vt 0.578125 0.351064 +vt 0.796875 0.340426 +vt 0.834375 0.351064 +vt 0.796875 0.351064 +vt 0.709375 0.340426 +vt 0.746875 0.351064 +vt 0.709375 0.351064 +vt 0.840625 0.340426 +vt 0.878125 0.351064 +vt 0.840625 0.351064 +vt 0.621875 0.340426 +vt 0.659375 0.351064 +vt 0.621875 0.351064 +vt 0.753125 0.340426 +vt 0.790625 0.351064 +vt 0.753125 0.351064 +vt 0.665625 0.340426 +vt 0.703125 0.351064 +vt 0.665625 0.351064 +vt 0.618750 0.319149 +vt 0.578125 0.308511 +vt 0.615625 0.308511 +vt 0.706250 0.319149 +vt 0.665625 0.308511 +vt 0.703125 0.308511 +vt 0.662500 0.319149 +vt 0.621875 0.308511 +vt 0.659375 0.308511 +vt 0.793750 0.319149 +vt 0.753125 0.308511 +vt 0.790625 0.308511 +vt 0.750000 0.319149 +vt 0.709375 0.308511 +vt 0.746875 0.308511 +vt 0.881250 0.319149 +vt 0.840625 0.308511 +vt 0.878125 0.308511 +vt 0.837500 0.319149 +vt 0.796875 0.308511 +vt 0.834375 0.308511 +vt 0.921875 0.308511 +vt 0.884375 0.308511 +vt 0.925000 0.329787 +vt 0.925000 0.319149 +vt 0.706250 0.329787 +vt 0.750000 0.329787 +vt 0.881250 0.329787 +vt 0.837500 0.329787 +vt 0.793750 0.329787 +vt 0.618750 0.329787 +vt 0.575000 0.319149 +vt 0.662500 0.329787 +vt 0.878125 0.340426 +vt 0.921875 0.340426 +vt 0.615625 0.340426 +vt 0.659375 0.340426 +vt 0.703125 0.340426 +vt 0.746875 0.340426 +vt 0.790625 0.340426 +vt 0.834375 0.340426 +vt 0.734375 0.409574 +vt 0.728125 0.404255 +vt 0.734375 0.404255 +vt 0.734375 0.409574 +vt 0.728125 0.404255 +vt 0.734375 0.404255 +vt 0.743750 0.351064 +vt 0.737500 0.404255 +vt 0.737500 0.351064 +vt 0.734375 0.351064 +vt 0.728125 0.351064 +vt 0.725000 0.404255 +vt 0.725000 0.351064 +vt 0.743750 0.351064 +vt 0.737500 0.404255 +vt 0.737500 0.351064 +vt 0.734375 0.351064 +vt 0.728125 0.351064 +vt 0.725000 0.404255 +vt 0.725000 0.351064 +vt 0.734375 0.409574 +vt 0.728125 0.404255 +vt 0.734375 0.404255 +vt 0.734375 0.404255 +vt 0.728125 0.409574 +vt 0.728125 0.404255 +vt 0.743750 0.351064 +vt 0.737500 0.404255 +vt 0.737500 0.351064 +vt 0.734375 0.351064 +vt 0.728125 0.351064 +vt 0.725000 0.404255 +vt 0.725000 0.351064 +vt 0.743750 0.351064 +vt 0.737500 0.404255 +vt 0.737500 0.351064 +vt 0.734375 0.351064 +vt 0.728125 0.351064 +vt 0.725000 0.404255 +vt 0.725000 0.351064 +vt 0.734375 0.409574 +vt 0.728125 0.404255 +vt 0.734375 0.404255 +vt 0.734375 0.409574 +vt 0.728125 0.404255 +vt 0.734375 0.404255 +vt 0.743750 0.351064 +vt 0.737500 0.404255 +vt 0.737500 0.351064 +vt 0.734375 0.351064 +vt 0.728125 0.351064 +vt 0.725000 0.404255 +vt 0.725000 0.351064 +vt 0.743750 0.351064 +vt 0.737500 0.404255 +vt 0.737500 0.351064 +vt 0.734375 0.351064 +vt 0.728125 0.351064 +vt 0.725000 0.404255 +vt 0.725000 0.351064 +vt 0.734375 0.409574 +vt 0.728125 0.404255 +vt 0.734375 0.404255 +vt 0.734375 0.404255 +vt 0.728125 0.409574 +vt 0.728125 0.404255 +vt 0.743750 0.351064 +vt 0.737500 0.404255 +vt 0.737500 0.351064 +vt 0.734375 0.351064 +vt 0.728125 0.351064 +vt 0.725000 0.404255 +vt 0.725000 0.351064 +vt 0.743750 0.351064 +vt 0.737500 0.404255 +vt 0.737500 0.351064 +vt 0.734375 0.351064 +vt 0.728125 0.351064 +vt 0.725000 0.404255 +vt 0.725000 0.351064 +vt 0.734375 0.409574 +vt 0.728125 0.404255 +vt 0.734375 0.404255 +vt 0.743750 0.351064 +vt 0.737500 0.404255 +vt 0.737500 0.351064 +vt 0.734375 0.351064 +vt 0.728125 0.351064 +vt 0.725000 0.404255 +vt 0.725000 0.351064 +vt 0.734375 0.409574 +vt 0.728125 0.404255 +vt 0.734375 0.404255 +vt 0.743750 0.351064 +vt 0.737500 0.404255 +vt 0.737500 0.351064 +vt 0.734375 0.351064 +vt 0.728125 0.351064 +vt 0.725000 0.404255 +vt 0.725000 0.351064 +vt 0.734375 0.409574 +vt 0.728125 0.404255 +vt 0.734375 0.404255 +vt 0.743750 0.351064 +vt 0.737500 0.404255 +vt 0.737500 0.351064 +vt 0.734375 0.351064 +vt 0.728125 0.351064 +vt 0.725000 0.404255 +vt 0.725000 0.351064 +vt 0.734375 0.409574 +vt 0.728125 0.404255 +vt 0.734375 0.404255 +vt 0.743750 0.351064 +vt 0.737500 0.404255 +vt 0.737500 0.351064 +vt 0.734375 0.351064 +vt 0.728125 0.351064 +vt 0.725000 0.404255 +vt 0.725000 0.351064 +vt 0.734375 0.404255 +vt 0.728125 0.409574 +vt 0.728125 0.404255 +vt 0.743750 0.351064 +vt 0.737500 0.404255 +vt 0.737500 0.351064 +vt 0.734375 0.351064 +vt 0.728125 0.351064 +vt 0.725000 0.404255 +vt 0.725000 0.351064 +vt 0.734375 0.404255 +vt 0.728125 0.409574 +vt 0.728125 0.404255 +vt 0.743750 0.351064 +vt 0.737500 0.404255 +vt 0.737500 0.351064 +vt 0.734375 0.351064 +vt 0.728125 0.351064 +vt 0.725000 0.404255 +vt 0.725000 0.351064 +vt 0.734375 0.404255 +vt 0.728125 0.409574 +vt 0.728125 0.404255 +vt 0.743750 0.351064 +vt 0.737500 0.404255 +vt 0.737500 0.351064 +vt 0.734375 0.351064 +vt 0.728125 0.351064 +vt 0.725000 0.404255 +vt 0.725000 0.351064 +vt 0.734375 0.409574 +vt 0.728125 0.404255 +vt 0.734375 0.404255 +vt 0.743750 0.351064 +vt 0.737500 0.404255 +vt 0.737500 0.351064 +vt 0.734375 0.351064 +vt 0.728125 0.351064 +vt 0.725000 0.404255 +vt 0.725000 0.351064 +vt 0.875000 0.276596 +vt 0.925000 0.287234 +vt 0.875000 0.287234 +vt 0.925000 0.276596 +vt 0.943750 0.287234 +vt 0.875000 0.276596 +vt 0.925000 0.287234 +vt 0.875000 0.287234 +vt 0.925000 0.276596 +vt 0.943750 0.287234 +vt 0.875000 0.276596 +vt 0.925000 0.287234 +vt 0.875000 0.287234 +vt 0.925000 0.276596 +vt 0.943750 0.287234 +vt 0.875000 0.276596 +vt 0.925000 0.287234 +vt 0.875000 0.287234 +vt 0.925000 0.276596 +vt 0.943750 0.287234 +vt 0.875000 0.276596 +vt 0.925000 0.287234 +vt 0.875000 0.287234 +vt 0.925000 0.276596 +vt 0.943750 0.287234 +vt 0.875000 0.276596 +vt 0.925000 0.287234 +vt 0.875000 0.287234 +vt 0.925000 0.276596 +vt 0.943750 0.287234 +vt 0.875000 0.276596 +vt 0.925000 0.287234 +vt 0.875000 0.287234 +vt 0.925000 0.276596 +vt 0.943750 0.287234 +vt 0.875000 0.276596 +vt 0.925000 0.287234 +vt 0.875000 0.287234 +vt 0.925000 0.276596 +vt 0.943750 0.287234 +vt 0.687500 0.148936 +vt 0.653125 0.138298 +vt 0.684375 0.138298 +vt 0.762500 0.148936 +vt 0.728125 0.138298 +vt 0.759375 0.138298 +vt 0.537500 0.148936 +vt 0.503125 0.138298 +vt 0.534375 0.138298 +vt 0.800000 0.148936 +vt 0.765625 0.138298 +vt 0.796875 0.138298 +vt 0.725000 0.148936 +vt 0.690625 0.138298 +vt 0.721875 0.138298 +vt 0.612500 0.148936 +vt 0.578125 0.138298 +vt 0.609375 0.138298 +vt 0.646875 0.138298 +vt 0.615625 0.138298 +vt 0.575000 0.148936 +vt 0.540625 0.138298 +vt 0.571875 0.138298 +vt 0.653125 0.170213 +vt 0.687500 0.159574 +vt 0.684375 0.170213 +vt 0.728125 0.170213 +vt 0.762500 0.159574 +vt 0.759375 0.170213 +vt 0.503125 0.170213 +vt 0.537500 0.159574 +vt 0.534375 0.170213 +vt 0.765625 0.170213 +vt 0.800000 0.159574 +vt 0.796875 0.170213 +vt 0.690625 0.170213 +vt 0.725000 0.159574 +vt 0.721875 0.170213 +vt 0.578125 0.170213 +vt 0.612500 0.159574 +vt 0.609375 0.170213 +vt 0.615625 0.170213 +vt 0.650000 0.159574 +vt 0.646875 0.170213 +vt 0.540625 0.170213 +vt 0.575000 0.159574 +vt 0.571875 0.170213 +vt 0.500000 0.159574 +vt 0.500000 0.148936 +vt 0.650000 0.148936 +vt 0.612500 0.148936 +vt 0.575000 0.159574 +vt 0.575000 0.148936 +vt 0.687500 0.148936 +vt 0.650000 0.159574 +vt 0.650000 0.148936 +vt 0.537500 0.159574 +vt 0.537500 0.148936 +vt 0.762500 0.148936 +vt 0.725000 0.159574 +vt 0.725000 0.148936 +vt 0.612500 0.159574 +vt 0.687500 0.159574 +vt 0.500000 0.159574 +vt 0.500000 0.148936 +vt 0.800000 0.148936 +vt 0.762500 0.159574 +vt 0.540625 0.170213 +vt 0.571875 0.170213 +vt 0.615625 0.170213 +vt 0.646875 0.170213 +vt 0.578125 0.170213 +vt 0.609375 0.170213 +vt 0.690625 0.170213 +vt 0.721875 0.170213 +vt 0.765625 0.170213 +vt 0.800000 0.159574 +vt 0.796875 0.170213 +vt 0.503125 0.170213 +vt 0.534375 0.170213 +vt 0.728125 0.170213 +vt 0.759375 0.170213 +vt 0.653125 0.170213 +vt 0.684375 0.170213 +vt 0.540625 0.138298 +vt 0.571875 0.138298 +vt 0.646875 0.138298 +vt 0.615625 0.138298 +vt 0.578125 0.138298 +vt 0.609375 0.138298 +vt 0.690625 0.138298 +vt 0.721875 0.138298 +vt 0.765625 0.138298 +vt 0.796875 0.138298 +vt 0.503125 0.138298 +vt 0.534375 0.138298 +vt 0.728125 0.138298 +vt 0.759375 0.138298 +vt 0.653125 0.138298 +vt 0.684375 0.138298 +vt 0.831250 0.058511 +vt 0.825000 0.000000 +vt 0.831250 0.000000 +vt 0.818750 0.058511 +vt 0.812500 0.000000 +vt 0.818750 0.000000 +vt 0.825000 0.058511 +vt 0.818750 0.000000 +vt 0.825000 0.000000 +vt 0.837500 0.058511 +vt 0.837500 0.000000 +vt 0.831250 0.058511 +vt 0.825000 0.000000 +vt 0.831250 0.000000 +vt 0.837500 0.058511 +vt 0.837500 0.000000 +vt 0.825000 0.058511 +vt 0.818750 0.058511 +vt 0.812500 0.000000 +vt 0.818750 0.000000 +vt 0.825000 0.058511 +vt 0.818750 0.058511 +vt 0.812500 0.000000 +vt 0.825000 0.058511 +vt 0.818750 0.000000 +vt 0.825000 0.000000 +vt 0.837500 0.058511 +vt 0.831250 0.000000 +vt 0.837500 0.000000 +vt 0.831250 0.058511 +vt 0.837500 0.058511 +vt 0.831250 0.000000 +vt 0.837500 0.000000 +vt 0.831250 0.058511 +vt 0.825000 0.000000 +vt 0.831250 0.000000 +vt 0.818750 0.058511 +vt 0.812500 0.000000 +vt 0.818750 0.000000 +vt 0.825000 0.058511 +vt 0.818750 0.000000 +vt 0.825000 0.000000 +vt 0.818750 0.058511 +vt 0.812500 0.000000 +vt 0.837500 0.058511 +vt 0.837500 0.000000 +vt 0.831250 0.058511 +vt 0.825000 0.000000 +vt 0.831250 0.000000 +vt 0.837500 0.058511 +vt 0.837500 0.000000 +vt 0.831250 0.058511 +vt 0.825000 0.058511 +vt 0.818750 0.058511 +vt 0.812500 0.000000 +vt 0.818750 0.000000 +vt 1.000000 0.212766 +vt 0.937500 0.223404 +vt 0.937500 0.212766 +vt 0.884375 0.276596 +vt 0.925000 0.265957 +vt 0.925000 0.276596 +vt 0.562500 0.212766 +vt 0.500000 0.223404 +vt 0.500000 0.212766 +vt 0.759375 0.276596 +vt 0.800000 0.265957 +vt 0.800000 0.276596 +vt 0.687500 0.212766 +vt 0.625000 0.223404 +vt 0.625000 0.212766 +vt 0.634375 0.276596 +vt 0.675000 0.265957 +vt 0.675000 0.276596 +vt 0.812500 0.212766 +vt 0.750000 0.223404 +vt 0.750000 0.212766 +vt 0.821875 0.276596 +vt 0.862500 0.265957 +vt 0.862500 0.276596 +vt 0.509375 0.276596 +vt 0.550000 0.265957 +vt 0.550000 0.276596 +vt 0.875000 0.223404 +vt 0.875000 0.212766 +vt 0.946875 0.276596 +vt 0.987500 0.265957 +vt 0.987500 0.276596 +vt 0.562500 0.223404 +vt 0.571875 0.276596 +vt 0.612500 0.265957 +vt 0.612500 0.276596 +vt 0.687500 0.223404 +vt 0.696875 0.276596 +vt 0.737500 0.265957 +vt 0.737500 0.276596 +vt 0.812500 0.223404 +vt 1.000000 0.223404 +vt 0.696875 0.265957 +vt 0.862500 0.170213 +vt 0.987500 0.170213 +vt 0.612500 0.170213 +vt 0.696875 0.170213 +vt 0.675000 0.170213 +vt 0.550000 0.170213 +vt 0.925000 0.170213 +vt 0.800000 0.170213 +vt 0.825000 0.058511 +vt 0.818750 0.058511 +vt 0.812500 0.000000 +vt 0.825000 0.058511 +vt 0.818750 0.000000 +vt 0.825000 0.000000 +vt 0.837500 0.058511 +vt 0.831250 0.000000 +vt 0.837500 0.000000 +vt 0.831250 0.058511 +vt 0.837500 0.058511 +vt 0.831250 0.000000 +vt 0.837500 0.000000 +vt 0.818750 0.058511 +vt 0.812500 0.000000 +vt 0.831250 0.058511 +vt 0.121875 0.840426 +vt 0.128125 0.845745 +vt 0.121875 0.845745 +vt 0.203125 0.840426 +vt 0.196875 0.845745 +vt 0.196875 0.840426 +vt 0.178125 0.840426 +vt 0.171875 0.845745 +vt 0.171875 0.840426 +vt 0.153125 0.840426 +vt 0.146875 0.845745 +vt 0.146875 0.840426 +vt 0.134375 0.840426 +vt 0.140625 0.845745 +vt 0.134375 0.845745 +vt 0.115625 0.840426 +vt 0.109375 0.845745 +vt 0.109375 0.840426 +vt 0.190625 0.840426 +vt 0.184375 0.845745 +vt 0.184375 0.840426 +vt 0.159375 0.840426 +vt 0.165625 0.845745 +vt 0.159375 0.845745 +vt 0.031250 0.601064 +vt 0.025000 0.606383 +vt 0.025000 0.601064 +vt 0.174630 0.861702 +vt 0.165625 0.877031 +vt 0.156619 0.861702 +vt 0.037500 0.601064 +vt 0.043750 0.606383 +vt 0.037500 0.606383 +vt 0.006250 0.601064 +vt -0.000000 0.606383 +vt 0.000000 0.601064 +vt 0.018750 0.601064 +vt 0.018750 0.606383 +vt 0.050000 0.601064 +vt 0.043750 0.601064 +vt 0.012500 0.606383 +vt 0.012500 0.601064 +vt 0.031250 0.606383 +vt 0.006250 0.606383 +vt 0.625000 0.000000 +vt 0.312500 0.000000 +vt 0.562500 0.000000 +vt 0.500000 0.000000 +vt 0.750000 0.000000 +vt 0.437500 0.000000 +vt 0.687500 0.000000 +vt 0.375000 0.000000 +vt 0.654632 0.486608 +vt 0.670368 0.486608 +vt 0.670368 0.513392 +vt 0.670368 0.358948 +vt 0.673627 0.372340 +vt 0.670368 0.385732 +vt 0.579632 0.486608 +vt 0.595368 0.486608 +vt 0.595368 0.513392 +vt 0.595368 0.358948 +vt 0.598627 0.372340 +vt 0.595368 0.385732 +vt 0.165625 0.744681 +vt 0.156250 0.755319 +vt 0.156250 0.744681 +vt 0.190625 0.744681 +vt 0.181250 0.755319 +vt 0.181250 0.744681 +vt 0.115625 0.744681 +vt 0.106250 0.755319 +vt 0.106250 0.744681 +vt 0.140625 0.744681 +vt 0.131250 0.755319 +vt 0.131250 0.744681 +vt 0.143750 0.744681 +vt 0.143750 0.755319 +vt 0.168750 0.744681 +vt 0.168750 0.755319 +vt 0.203125 0.744681 +vt 0.193750 0.755319 +vt 0.193750 0.744681 +vt 0.118750 0.744681 +vt 0.118750 0.755319 +vt 0.234375 0.792553 +vt 0.246875 0.765957 +vt 0.246875 0.792553 +vt 0.234375 0.765957 +vt 0.234375 0.744681 +vt 0.234375 0.813830 +vt 0.218750 0.765957 +vt 0.218750 0.744681 +vt 0.206250 0.765957 +vt 0.790625 0.079787 +vt 0.771875 0.026596 +vt 0.790625 0.079787 +vt 0.359375 0.138298 +vt 0.609375 0.138298 +vt 0.296875 0.138298 +vt 0.546875 0.138298 +vt 0.484375 0.138298 +vt 0.734375 0.138298 +vt 0.421875 0.138298 +vt 0.671875 0.138298 +vt 0.306250 0.904255 +vt 0.203125 0.744681 +vt 0.431250 0.904255 +vt 0.125000 0.659574 +vt 0.771875 0.026596 +vt 0.790625 0.079787 +vt 0.771875 0.026596 +vt 0.765625 0.069149 +vt 0.771875 0.026596 +vt 0.765625 0.069149 +vt 0.193750 0.265957 +vt 0.193750 0.265957 +vt 0.193750 0.265957 +vt 0.193750 0.265957 +vt 0.831250 0.058511 +vt 0.812500 0.058511 +vt 0.837500 0.058511 +vt 0.812500 0.058511 +vt 0.759375 0.170213 +vt 0.884375 0.170213 +vt 0.509375 0.170213 +vt 0.634375 0.170213 +vt 0.737500 0.170213 +vt 0.571875 0.170213 +vt 0.946875 0.170213 +vt 0.821875 0.170213 +vt 0.759375 0.265957 +vt 0.884375 0.265957 +vt 0.509375 0.265957 +vt 0.634375 0.265957 +vt 0.571875 0.265957 +vt 0.946875 0.265957 +vt 0.821875 0.265957 +vt 0.812500 0.058511 +vt 0.831250 0.058511 +vt 0.831250 0.058511 +vt 0.831250 0.058511 +vt 0.818750 0.058511 +vt 0.812500 0.058511 +vt 0.818750 0.058511 +vt 0.818750 0.058511 +vt 0.818750 0.058511 +vt 0.831250 0.058511 +vt 0.831250 0.058511 +vt 0.575000 0.329787 +vt 0.728125 0.409574 +vt 0.728125 0.409574 +vt 0.743750 0.404255 +vt 0.743750 0.404255 +vt 0.728125 0.409574 +vt 0.734375 0.409574 +vt 0.743750 0.404255 +vt 0.743750 0.404255 +vt 0.728125 0.409574 +vt 0.728125 0.409574 +vt 0.743750 0.404255 +vt 0.743750 0.404255 +vt 0.728125 0.409574 +vt 0.734375 0.409574 +vt 0.743750 0.404255 +vt 0.743750 0.404255 +vt 0.728125 0.409574 +vt 0.743750 0.404255 +vt 0.728125 0.409574 +vt 0.743750 0.404255 +vt 0.728125 0.409574 +vt 0.743750 0.404255 +vt 0.728125 0.409574 +vt 0.743750 0.404255 +vt 0.734375 0.409574 +vt 0.743750 0.404255 +vt 0.734375 0.409574 +vt 0.743750 0.404255 +vt 0.734375 0.409574 +vt 0.743750 0.404255 +vt 0.728125 0.409574 +vt 0.743750 0.404255 +vt 0.943750 0.276596 +vt 0.943750 0.276596 +vt 0.943750 0.276596 +vt 0.943750 0.276596 +vt 0.943750 0.276596 +vt 0.943750 0.276596 +vt 0.943750 0.276596 +vt 0.943750 0.276596 +vt 0.812500 0.058511 +vt 0.812500 0.058511 +vt 0.812500 0.058511 +vt 0.812500 0.058511 +vt 0.812500 0.058511 +vt 0.812500 0.058511 +vt 0.884375 0.265957 +vt 0.759375 0.265957 +vt 0.634375 0.265957 +vt 0.821875 0.265957 +vt 0.509375 0.265957 +vt 0.946875 0.265957 +vt 0.571875 0.265957 +vt 0.821875 0.170213 +vt 0.946875 0.170213 +vt 0.571875 0.170213 +vt 0.737500 0.170213 +vt 0.634375 0.170213 +vt 0.509375 0.170213 +vt 0.884375 0.170213 +vt 0.759375 0.170213 +vt 0.812500 0.058511 +vt 0.812500 0.058511 +vt 0.128125 0.840426 +vt 0.203125 0.845745 +vt 0.178125 0.845745 +vt 0.153125 0.845745 +vt 0.140625 0.840426 +vt 0.115625 0.845745 +vt 0.190625 0.845745 +vt 0.165625 0.840426 +vt 0.159257 0.850863 +vt 0.165625 0.846374 +vt 0.171993 0.850863 +vt 0.171993 0.872541 +vt 0.159257 0.872541 +vt 0.050000 0.606383 +vt 0.250000 0.000000 +vt 0.662500 0.481061 +vt 0.673627 0.500000 +vt 0.662500 0.518939 +vt 0.654632 0.513392 +vt 0.651373 0.500000 +vt 0.662500 0.391279 +vt 0.654632 0.385732 +vt 0.651373 0.372340 +vt 0.654632 0.358948 +vt 0.662500 0.353401 +vt 0.587500 0.481061 +vt 0.598627 0.500000 +vt 0.587500 0.518939 +vt 0.579632 0.513392 +vt 0.576373 0.500000 +vt 0.587500 0.391279 +vt 0.579632 0.385732 +vt 0.576373 0.372340 +vt 0.579632 0.358949 +vt 0.587500 0.353401 +vt 0.153125 0.744681 +vt 0.178125 0.744681 +vt 0.206250 0.755319 +vt 0.128125 0.744681 +vt 0.509375 0.978723 +vt 0.500000 0.276596 +vt 0.509375 0.276596 +vt 0.565625 0.978723 +vt 0.556250 0.276596 +vt 0.565625 0.276596 +vt 0.546875 0.978723 +vt 0.537500 0.276596 +vt 0.546875 0.276596 +vt 0.518750 0.978723 +vt 0.518750 0.276596 +vt 0.575000 0.978723 +vt 0.575000 0.276596 +vt 0.556250 0.978723 +vt 0.537500 0.978723 +vt 0.528125 0.276596 +vt 0.528125 0.978723 +vt 0.118750 0.755319 +vt 0.106250 0.819149 +vt 0.106250 0.755319 +vt 0.193750 0.755319 +vt 0.181250 0.819149 +vt 0.181250 0.755319 +vt 0.168750 0.755319 +vt 0.156250 0.819149 +vt 0.156250 0.755319 +vt 0.131250 0.755319 +vt 0.118750 0.819149 +vt 0.206250 0.755319 +vt 0.193750 0.819149 +vt 0.168750 0.819149 +vt 0.143750 0.819149 +vt 0.143750 0.755319 +vt 0.131250 0.819149 +vt 0.024798 0.614561 +vt 0.020356 0.622121 +vt 0.015915 0.614561 +vt 0.062500 0.117021 +vt 0.056250 -0.000000 +vt 0.062500 -0.000000 +vt 0.100000 0.117021 +vt 0.093750 -0.000000 +vt 0.100000 -0.000000 +vt 0.093750 0.218085 +vt 0.093750 0.207447 +vt 0.100000 0.212766 +vt 0.068750 0.117021 +vt 0.068750 -0.000000 +vt 0.056250 0.117021 +vt 0.050000 -0.000000 +vt 0.087500 -0.000000 +vt 0.081250 0.117021 +vt 0.081250 -0.000000 +vt 0.087500 0.340426 +vt 0.093750 0.297872 +vt 0.093750 0.340426 +vt 0.100000 0.297872 +vt 0.056250 0.340426 +vt 0.050000 0.297872 +vt 0.056250 0.297872 +vt 0.062500 0.297872 +vt 0.068750 0.340426 +vt 0.062500 0.340426 +vt 0.068750 0.297872 +vt 0.075000 0.340426 +vt 0.081250 0.297872 +vt 0.081250 0.340426 +vt 0.093750 0.117021 +vt 0.081250 0.159574 +vt 0.075000 0.180851 +vt 0.075000 0.159574 +vt 0.087500 0.180851 +vt 0.087500 0.159574 +vt 0.093750 0.180851 +vt 0.093750 0.186170 +vt 0.100000 0.191489 +vt 0.093750 0.196809 +vt 0.062500 0.159574 +vt 0.056250 0.180851 +vt 0.056250 0.159574 +vt 0.068750 0.180851 +vt 0.068750 0.159574 +vt 0.050000 0.159574 +vt 0.056250 0.138298 +vt 0.062500 0.143617 +vt 0.062500 0.154255 +vt 0.068750 0.143617 +vt 0.068750 0.154255 +vt 0.081250 0.154255 +vt 0.087500 0.143617 +vt 0.087500 0.154255 +vt 0.093750 0.138298 +vt 0.093750 0.159574 +vt 0.100000 0.138298 +vt 0.100000 0.159574 +vt 0.050000 0.117021 +vt 0.050000 0.138298 +vt 0.062500 0.122340 +vt 0.062500 0.132979 +vt 0.068750 0.122340 +vt 0.068750 0.132979 +vt 0.081250 0.122340 +vt 0.087500 0.132979 +vt 0.081250 0.132979 +vt 0.075000 0.276596 +vt 0.081250 0.276596 +vt 0.087500 0.292553 +vt 0.087500 0.281915 +vt 0.093750 0.292553 +vt 0.093750 0.281915 +vt 0.050000 0.287234 +vt 0.056250 0.281915 +vt 0.056250 0.292553 +vt 0.100000 0.287234 +vt 0.062500 0.281915 +vt 0.068750 0.276596 +vt 0.062500 0.292553 +vt 0.081250 0.255319 +vt 0.075000 0.255319 +vt 0.087500 0.260638 +vt 0.093750 0.260638 +vt 0.087500 0.271277 +vt 0.100000 0.265957 +vt 0.093750 0.271277 +vt 0.056250 0.271277 +vt 0.050000 0.265957 +vt 0.056250 0.260638 +vt 0.062500 0.271277 +vt 0.062500 0.260638 +vt 0.068750 0.255319 +vt 0.068750 0.202128 +vt 0.062500 0.186170 +vt 0.056250 0.196809 +vt 0.056250 0.186170 +vt 0.087500 0.196809 +vt 0.087500 0.186170 +vt 0.081250 0.180851 +vt 0.075000 0.202128 +vt 0.075000 0.223404 +vt 0.062500 0.218085 +vt 0.062500 0.207447 +vt 0.056250 0.218085 +vt 0.056250 0.207447 +vt 0.087500 0.218085 +vt 0.087500 0.207447 +vt 0.081250 0.202128 +vt 0.050000 0.382979 +vt 0.056250 0.361702 +vt 0.056250 0.382979 +vt 0.062500 0.367021 +vt 0.062500 0.377660 +vt 0.068750 0.367021 +vt 0.068750 0.377660 +vt 0.081250 0.377660 +vt 0.075000 0.372340 +vt 0.081250 0.367021 +vt 0.087500 0.377660 +vt 0.093750 0.361702 +vt 0.093750 0.382979 +vt 0.100000 0.382979 +vt 0.050000 0.340426 +vt 0.050000 0.361702 +vt 0.062500 0.356383 +vt 0.062500 0.345745 +vt 0.068750 0.356383 +vt 0.068750 0.345745 +vt 0.075000 0.351064 +vt 0.081250 0.345745 +vt 0.081250 0.356383 +vt 0.087500 0.356383 +vt 0.100000 0.340426 +vt 0.100000 0.361702 +vt 0.087500 0.223404 +vt 0.081250 0.223404 +vt 0.093750 0.223404 +vt 0.087500 0.255319 +vt 0.100000 0.223404 +vt 0.093750 0.255319 +vt 0.056250 0.223404 +vt 0.050000 0.255319 +vt 0.050000 0.223404 +vt 0.062500 0.255319 +vt 0.056250 0.255319 +vt 0.068750 0.223404 +vt 0.062500 0.223404 +vt 0.581250 0.632979 +vt 0.581250 0.643617 +vt 0.575000 0.638298 +vt 0.612500 0.765957 +vt 0.618750 0.723404 +vt 0.618750 0.765957 +vt 0.625000 0.723404 +vt 0.581250 0.765957 +vt 0.575000 0.723404 +vt 0.581250 0.723404 +vt 0.587500 0.723404 +vt 0.593750 0.765957 +vt 0.587500 0.765957 +vt 0.606250 0.563830 +vt 0.600000 0.606383 +vt 0.600000 0.563830 +vt 0.612500 0.606383 +vt 0.612500 0.563830 +vt 0.618750 0.606383 +vt 0.606250 0.723404 +vt 0.606250 0.765957 +vt 0.575000 0.617021 +vt 0.581250 0.611702 +vt 0.581250 0.622340 +vt 0.587500 0.563830 +vt 0.581250 0.606383 +vt 0.581250 0.563830 +vt 0.593750 0.606383 +vt 0.593750 0.563830 +vt 0.575000 0.542553 +vt 0.575000 0.563830 +vt 0.587500 0.547872 +vt 0.587500 0.558511 +vt 0.593750 0.547872 +vt 0.593750 0.558511 +vt 0.606250 0.558511 +vt 0.600000 0.553191 +vt 0.606250 0.547872 +vt 0.606250 0.526596 +vt 0.606250 0.537234 +vt 0.600000 0.531915 +vt 0.612500 0.558511 +vt 0.618750 0.542553 +vt 0.618750 0.563830 +vt 0.625000 0.542553 +vt 0.625000 0.563830 +vt 0.575000 0.521277 +vt 0.581250 0.542553 +vt 0.587500 0.526596 +vt 0.587500 0.537234 +vt 0.593750 0.537234 +vt 0.593750 0.526596 +vt 0.081250 0.382979 +vt 0.075000 0.776596 +vt 0.075000 0.382979 +vt 0.612500 0.537234 +vt 0.618750 0.521277 +vt 0.625000 0.521277 +vt 0.606250 0.702128 +vt 0.600000 0.723404 +vt 0.600000 0.702128 +vt 0.612500 0.707447 +vt 0.618750 0.707447 +vt 0.612500 0.718085 +vt 0.575000 0.712766 +vt 0.581250 0.707447 +vt 0.581250 0.718085 +vt 0.625000 0.712766 +vt 0.618750 0.718085 +vt 0.587500 0.707447 +vt 0.593750 0.702128 +vt 0.587500 0.718085 +vt 0.600000 0.680851 +vt 0.606250 0.680851 +vt 0.612500 0.696809 +vt 0.612500 0.686170 +vt 0.618750 0.686170 +vt 0.625000 0.691489 +vt 0.618750 0.696809 +vt 0.581250 0.696809 +vt 0.575000 0.691489 +vt 0.581250 0.686170 +vt 0.587500 0.696809 +vt 0.587500 0.686170 +vt 0.593750 0.680851 +vt 0.593750 0.627660 +vt 0.587500 0.611702 +vt 0.618750 0.632979 +vt 0.625000 0.638298 +vt 0.618750 0.643617 +vt 0.618750 0.622340 +vt 0.612500 0.611702 +vt 0.618750 0.611702 +vt 0.612500 0.622340 +vt 0.606250 0.606383 +vt 0.606250 0.627660 +vt 0.600000 0.648936 +vt 0.600000 0.627660 +vt 0.587500 0.643617 +vt 0.587500 0.632979 +vt 0.625000 0.617021 +vt 0.612500 0.632979 +vt 0.606250 0.648936 +vt 0.575000 0.808511 +vt 0.581250 0.787234 +vt 0.581250 0.808511 +vt 0.587500 0.803191 +vt 0.593750 0.792553 +vt 0.593750 0.803191 +vt 0.600000 0.797872 +vt 0.606250 0.803191 +vt 0.612500 0.792553 +vt 0.612500 0.803191 +vt 0.618750 0.808511 +vt 0.618750 0.787234 +vt 0.625000 0.808511 +vt 0.575000 0.765957 +vt 0.575000 0.787234 +vt 0.587500 0.781915 +vt 0.587500 0.771277 +vt 0.593750 0.781915 +vt 0.606250 0.781915 +vt 0.612500 0.771277 +vt 0.612500 0.781915 +vt 0.625000 0.787234 +vt 0.612500 0.648936 +vt 0.618750 0.648936 +vt 0.612500 0.680851 +vt 0.625000 0.648936 +vt 0.618750 0.680851 +vt 0.581250 0.648936 +vt 0.575000 0.680851 +vt 0.575000 0.648936 +vt 0.587500 0.680851 +vt 0.581250 0.680851 +vt 0.593750 0.648936 +vt 0.587500 0.648936 +vt 0.606250 0.904255 +vt 0.600000 0.882979 +vt 0.606250 0.882979 +vt 0.612500 0.898936 +vt 0.612500 0.888298 +vt 0.618750 0.888298 +vt 0.625000 0.936170 +vt 0.618750 0.904255 +vt 0.625000 0.904255 +vt 0.581250 0.904255 +vt 0.575000 0.936170 +vt 0.575000 0.904255 +vt 0.587500 0.898936 +vt 0.581250 0.888298 +vt 0.587500 0.888298 +vt 0.593750 0.904255 +vt 0.593750 0.882979 +vt 0.600000 0.861702 +vt 0.606250 0.861702 +vt 0.612500 0.877660 +vt 0.612500 0.867021 +vt 0.618750 0.867021 +vt 0.625000 0.872340 +vt 0.618750 0.877660 +vt 0.581250 0.877660 +vt 0.575000 0.872340 +vt 0.581250 0.867021 +vt 0.587500 0.877660 +vt 0.587500 0.867021 +vt 0.593750 0.861702 +vt 0.587500 0.808511 +vt 0.581250 0.861702 +vt 0.575000 0.861702 +vt 0.618750 0.861702 +vt 0.612500 0.861702 +vt 0.612500 0.808511 +vt 0.606250 0.808511 +vt 0.600000 0.808511 +vt 0.593750 0.808511 +vt 0.587500 0.861702 +vt 0.587500 0.936170 +vt 0.587500 0.904255 +vt 0.612500 0.904255 +vt 0.606250 0.936170 +vt 0.581250 0.936170 +vt 0.600000 0.936170 +vt 0.600000 0.904255 +vt 0.593750 0.936170 +vt 0.625000 0.893617 +vt 0.618750 0.898936 +vt 0.575000 0.893617 +vt 0.581250 0.898936 +vt 0.612500 0.936170 +vt 0.062500 0.776596 +vt 0.062500 0.382979 +vt 0.056250 0.776596 +vt 0.093750 0.776596 +vt 0.087500 0.382979 +vt 0.087500 0.776596 +vt 0.068750 0.382979 +vt 0.068750 0.776596 +vt 0.143750 0.819149 +vt 0.134375 0.840426 +vt 0.131250 0.819149 +vt 0.121875 0.840426 +vt 0.118750 0.819149 +vt 0.109375 0.840426 +vt 0.106250 0.819149 +vt 0.206250 0.819149 +vt 0.196875 0.840426 +vt 0.193750 0.819149 +vt 0.184375 0.840426 +vt 0.181250 0.819149 +vt 0.171875 0.840426 +vt 0.168750 0.819149 +vt 0.156250 0.819149 +vt 0.165625 0.840426 +vt 0.159375 0.840426 +vt 0.146875 0.840426 +vt 0.018750 0.047872 +vt 0.025000 0.069149 +vt 0.018750 0.069149 +vt 0.031250 0.053191 +vt 0.031250 0.063830 +vt 0.037500 0.063830 +vt 0.050000 0.063830 +vt 0.043750 0.058511 +vt 0.050000 0.053191 +vt 0.037500 0.053191 +vt -0.000000 0.063830 +vt 0.006250 0.053191 +vt 0.006250 0.063830 +vt 0.012500 0.069149 +vt 0.012500 0.047872 +vt 0.025000 0.026596 +vt 0.025000 0.047872 +vt 0.031250 0.042553 +vt 0.031250 0.031915 +vt 0.037500 0.042553 +vt 0.037500 0.031915 +vt 0.043750 0.037234 +vt 0.000000 0.042553 +vt 0.006250 0.031915 +vt 0.006250 0.042553 +vt 0.012500 0.026596 +vt 0.018750 0.026596 +vt 0.043750 0.276596 +vt 0.043750 0.265957 +vt 0.050000 0.271277 +vt 0.037500 0.388298 +vt 0.043750 0.356383 +vt 0.043750 0.388298 +vt 0.050000 0.388298 +vt -0.000000 0.388298 +vt 0.006250 0.356383 +vt 0.006250 0.388298 +vt 0.012500 0.356383 +vt 0.018750 0.388298 +vt 0.012500 0.388298 +vt 0.018750 0.356383 +vt 0.025000 0.388298 +vt 0.031250 0.356383 +vt 0.031250 0.388298 +vt 0.031250 0.207447 +vt 0.025000 0.239362 +vt 0.025000 0.207447 +vt 0.037500 0.207447 +vt 0.031250 0.239362 +vt 0.043750 0.239362 +vt 0.037500 0.239362 +vt 0.006250 0.265957 +vt 0.006250 0.276596 +vt -0.000000 0.271277 +vt 0.006250 0.207447 +vt 0.012500 0.239362 +vt 0.006250 0.239362 +vt 0.018750 0.207447 +vt 0.012500 0.207447 +vt 0.018750 0.239362 +vt -0.000000 0.207447 +vt 0.006250 0.186170 +vt 0.012500 0.202128 +vt 0.018750 0.191489 +vt 0.018750 0.202128 +vt 0.031250 0.202128 +vt 0.025000 0.196809 +vt 0.031250 0.191489 +vt 0.037500 0.191489 +vt 0.037500 0.202128 +vt 0.043750 0.207447 +vt 0.043750 0.186170 +vt 0.050000 0.207447 +vt 0.000000 0.186170 +vt 0.006250 0.164894 +vt 0.012500 0.170213 +vt 0.012500 0.180851 +vt 0.018750 0.170213 +vt 0.018750 0.180851 +vt 0.031250 0.170213 +vt 0.031250 0.180851 +vt 0.025000 0.175532 +vt 0.031250 0.069149 +vt 0.025000 0.164894 +vt 0.037500 0.170213 +vt 0.037500 0.180851 +vt 0.050000 0.164894 +vt 0.050000 0.186170 +vt 0.031250 0.335106 +vt 0.025000 0.356383 +vt 0.025000 0.335106 +vt 0.037500 0.340426 +vt 0.043750 0.340426 +vt 0.037500 0.351064 +vt 0.006250 0.329787 +vt -0.000000 0.324468 +vt 0.006250 0.319149 +vt 0.000000 0.345745 +vt 0.006250 0.340426 +vt 0.006250 0.351064 +vt 0.012500 0.351064 +vt 0.012500 0.340426 +vt 0.018750 0.335106 +vt 0.031250 0.313830 +vt 0.025000 0.313830 +vt 0.037500 0.329787 +vt 0.037500 0.319149 +vt 0.043750 0.319149 +vt 0.050000 0.324468 +vt 0.043750 0.329787 +vt 0.043750 0.351064 +vt 0.050000 0.345745 +vt 0.012500 0.319149 +vt 0.018750 0.313830 +vt 0.012500 0.329787 +vt 0.018750 0.260638 +vt 0.012500 0.255319 +vt 0.012500 0.244681 +vt 0.006250 0.255319 +vt 0.006250 0.244681 +vt 0.050000 0.239362 +vt 0.000000 0.250000 +vt 0.043750 0.255319 +vt 0.037500 0.244681 +vt 0.043750 0.244681 +vt 0.037500 0.255319 +vt 0.025000 0.260638 +vt 0.025000 0.281915 +vt 0.012500 0.276596 +vt 0.012500 0.265957 +vt 0.050000 0.250000 +vt 0.037500 0.276596 +vt 0.037500 0.265957 +vt 0.031250 0.260638 +vt -0.000000 0.409574 +vt 0.006250 0.430851 +vt 0.000000 0.430851 +vt 0.006250 0.409574 +vt 0.012500 0.425532 +vt 0.012500 0.414894 +vt 0.018750 0.425532 +vt 0.031250 0.393617 +vt 0.031250 0.404255 +vt 0.025000 0.398936 +vt 0.031250 0.425532 +vt 0.025000 0.420213 +vt 0.031250 0.414894 +vt 0.037500 0.425532 +vt 0.043750 0.409574 +vt 0.043750 0.430851 +vt 0.050000 0.430851 +vt 0.012500 0.404255 +vt 0.012500 0.393617 +vt 0.018750 0.404255 +vt 0.018750 0.393617 +vt 0.018750 0.414894 +vt 0.037500 0.404255 +vt 0.037500 0.393617 +vt 0.050000 0.409574 +vt 0.037500 0.281915 +vt 0.031250 0.281915 +vt 0.043750 0.281915 +vt 0.037500 0.313830 +vt 0.050000 0.281915 +vt 0.043750 0.313830 +vt 0.006250 0.281915 +vt 0.000000 0.313830 +vt 0.000000 0.281915 +vt 0.012500 0.313830 +vt 0.006250 0.313830 +vt 0.018750 0.281915 +vt 0.012500 0.281915 +vt 0.000000 0.069149 +vt 0.006250 0.069149 +vt 0.050000 0.069149 +vt 0.043750 0.164894 +vt 0.043750 0.069149 +vt 0.037500 0.069149 +vt 0.037500 0.164894 +vt 0.018750 0.164894 +vt 0.012500 0.164894 +vt 0.006250 0.026596 +vt 0.012500 0.000000 +vt 0.025000 0.430851 +vt 0.018750 0.601064 +vt 0.018750 0.430851 +vt 0.025000 -0.000000 +vt 0.031250 -0.000000 +vt 0.031250 0.026596 +vt -0.000000 0.026596 +vt 0.006250 0.000000 +vt 0.037500 0.000000 +vt 0.037500 0.026596 +vt 0.018750 0.000000 +vt 0.050000 0.031915 +vt 0.050000 0.042553 +vt 0.000000 0.601064 +vt 0.043750 0.601064 +vt 0.031250 0.430851 +vt 0.025000 0.601064 +vt 0.012500 0.430851 +vt 0.006250 0.601064 +vt 0.037500 0.601064 +vt 0.037500 0.430851 +vt 0.012500 0.601064 +vt 0.031250 0.601064 +vt 0.028125 0.691489 +vt 0.031250 0.606383 +vt 0.031250 0.691489 +vt 0.034375 0.691489 +vt 0.037500 0.606383 +vt 0.037500 0.691489 +vt 0.046875 0.691489 +vt 0.043750 0.606383 +vt 0.046875 0.606383 +vt 0.034375 0.606383 +vt 0.040625 0.691489 +vt 0.043750 0.691489 +vt 0.025000 0.691489 +vt 0.028125 0.606383 +vt 0.040625 0.606383 +vt 0.050000 0.691489 +vt 0.050000 0.606383 +vt 0.075000 0.148936 +vt 0.081250 0.143617 +vt 0.075000 0.127660 +vt 0.075000 0.117021 +vt 0.075000 -0.000000 +vt 0.050000 0.212766 +vt 0.050000 0.191489 +vt 0.050000 0.180851 +vt 0.100000 0.180851 +vt 0.625000 0.606383 +vt 0.575000 0.606383 +vt 0.593750 0.771277 +vt 0.600000 0.776596 +vt 0.606250 0.792553 +vt 0.606250 0.771277 +vt 0.600000 0.765957 +vt 0.593750 0.723404 +vt 0.043750 0.026596 +vt 0.043750 -0.000000 +vt 0.050000 -0.000000 +vt 0.050000 0.026596 +vt 0.062500 0.117021 +vt 0.056250 -0.000000 +vt 0.062500 -0.000000 +vt 0.100000 0.117021 +vt 0.093750 -0.000000 +vt 0.100000 -0.000000 +vt 0.093750 0.218085 +vt 0.093750 0.207447 +vt 0.100000 0.212766 +vt 0.068750 0.117021 +vt 0.068750 -0.000000 +vt 0.056250 0.117021 +vt 0.050000 -0.000000 +vt 0.087500 -0.000000 +vt 0.081250 0.117021 +vt 0.081250 -0.000000 +vt 0.087500 0.340426 +vt 0.093750 0.297872 +vt 0.093750 0.340426 +vt 0.100000 0.297872 +vt 0.056250 0.340426 +vt 0.050000 0.297872 +vt 0.056250 0.297872 +vt 0.062500 0.297872 +vt 0.068750 0.340426 +vt 0.062500 0.340426 +vt 0.068750 0.297872 +vt 0.075000 0.340426 +vt 0.081250 0.297872 +vt 0.081250 0.340426 +vt 0.093750 0.117021 +vt 0.081250 0.159574 +vt 0.075000 0.180851 +vt 0.075000 0.159574 +vt 0.087500 0.180851 +vt 0.087500 0.159574 +vt 0.093750 0.180851 +vt 0.093750 0.186170 +vt 0.100000 0.191489 +vt 0.093750 0.196809 +vt 0.062500 0.159574 +vt 0.056250 0.180851 +vt 0.056250 0.159574 +vt 0.068750 0.180851 +vt 0.068750 0.159574 +vt 0.050000 0.159574 +vt 0.056250 0.138298 +vt 0.062500 0.154255 +vt 0.062500 0.143617 +vt 0.068750 0.154255 +vt 0.081250 0.154255 +vt 0.087500 0.143617 +vt 0.087500 0.154255 +vt 0.093750 0.138298 +vt 0.093750 0.159574 +vt 0.100000 0.138298 +vt 0.100000 0.159574 +vt 0.050000 0.138298 +vt 0.062500 0.132979 +vt 0.068750 0.122340 +vt 0.068750 0.132979 +vt 0.081250 0.122340 +vt 0.087500 0.132979 +vt 0.081250 0.132979 +vt 0.087500 0.122340 +vt 0.075000 0.276596 +vt 0.081250 0.276596 +vt 0.087500 0.292553 +vt 0.087500 0.281915 +vt 0.093750 0.292553 +vt 0.093750 0.281915 +vt 0.050000 0.287234 +vt 0.056250 0.281915 +vt 0.056250 0.292553 +vt 0.100000 0.287234 +vt 0.062500 0.281915 +vt 0.068750 0.276596 +vt 0.062500 0.292553 +vt 0.075000 0.255319 +vt 0.081250 0.255319 +vt 0.087500 0.260638 +vt 0.093750 0.260638 +vt 0.087500 0.271277 +vt 0.100000 0.265957 +vt 0.093750 0.271277 +vt 0.056250 0.271277 +vt 0.050000 0.265957 +vt 0.056250 0.260638 +vt 0.062500 0.271277 +vt 0.062500 0.260638 +vt 0.068750 0.255319 +vt 0.075000 0.202128 +vt 0.062500 0.196809 +vt 0.062500 0.186170 +vt 0.056250 0.186170 +vt 0.087500 0.196809 +vt 0.087500 0.186170 +vt 0.081250 0.180851 +vt 0.075000 0.223404 +vt 0.068750 0.202128 +vt 0.062500 0.218085 +vt 0.062500 0.207447 +vt 0.056250 0.218085 +vt 0.056250 0.207447 +vt 0.087500 0.207447 +vt 0.087500 0.218085 +vt 0.081250 0.202128 +vt 0.081250 0.223404 +vt 0.050000 0.382979 +vt 0.056250 0.361702 +vt 0.056250 0.382979 +vt 0.062500 0.367021 +vt 0.062500 0.377660 +vt 0.068750 0.367021 +vt 0.068750 0.377660 +vt 0.081250 0.377660 +vt 0.075000 0.372340 +vt 0.081250 0.367021 +vt 0.087500 0.377660 +vt 0.087500 0.367021 +vt 0.093750 0.382979 +vt 0.093750 0.361702 +vt 0.100000 0.382979 +vt 0.050000 0.340426 +vt 0.050000 0.361702 +vt 0.062500 0.356383 +vt 0.068750 0.345745 +vt 0.068750 0.356383 +vt 0.075000 0.351064 +vt 0.081250 0.345745 +vt 0.081250 0.356383 +vt 0.087500 0.356383 +vt 0.100000 0.340426 +vt 0.100000 0.361702 +vt 0.087500 0.223404 +vt 0.093750 0.223404 +vt 0.087500 0.255319 +vt 0.100000 0.223404 +vt 0.093750 0.255319 +vt 0.056250 0.223404 +vt 0.050000 0.255319 +vt 0.050000 0.223404 +vt 0.062500 0.255319 +vt 0.056250 0.255319 +vt 0.068750 0.223404 +vt 0.062500 0.223404 +vt 0.581250 0.632979 +vt 0.581250 0.643617 +vt 0.575000 0.638298 +vt 0.612500 0.765957 +vt 0.618750 0.723404 +vt 0.618750 0.765957 +vt 0.625000 0.723404 +vt 0.581250 0.765957 +vt 0.575000 0.723404 +vt 0.581250 0.723404 +vt 0.587500 0.723404 +vt 0.593750 0.765957 +vt 0.587500 0.765957 +vt 0.606250 0.563830 +vt 0.600000 0.606383 +vt 0.600000 0.563830 +vt 0.612500 0.606383 +vt 0.612500 0.563830 +vt 0.618750 0.606383 +vt 0.606250 0.723404 +vt 0.606250 0.765957 +vt 0.575000 0.617021 +vt 0.581250 0.611702 +vt 0.581250 0.622340 +vt 0.587500 0.563830 +vt 0.581250 0.606383 +vt 0.581250 0.563830 +vt 0.593750 0.606383 +vt 0.593750 0.563830 +vt 0.575000 0.542553 +vt 0.575000 0.563830 +vt 0.587500 0.547872 +vt 0.587500 0.558511 +vt 0.593750 0.547872 +vt 0.593750 0.558511 +vt 0.606250 0.558511 +vt 0.600000 0.553191 +vt 0.606250 0.547872 +vt 0.606250 0.526596 +vt 0.606250 0.537234 +vt 0.600000 0.531915 +vt 0.612500 0.558511 +vt 0.612500 0.547872 +vt 0.618750 0.563830 +vt 0.618750 0.542553 +vt 0.625000 0.563830 +vt 0.581250 0.521277 +vt 0.581250 0.542553 +vt 0.587500 0.537234 +vt 0.587500 0.526596 +vt 0.593750 0.537234 +vt 0.593750 0.526596 +vt 0.081250 0.382979 +vt 0.075000 0.776596 +vt 0.075000 0.382979 +vt 0.612500 0.526596 +vt 0.612500 0.537234 +vt 0.625000 0.521277 +vt 0.625000 0.542553 +vt 0.606250 0.702128 +vt 0.600000 0.723404 +vt 0.600000 0.702128 +vt 0.612500 0.707447 +vt 0.618750 0.718085 +vt 0.618750 0.707447 +vt 0.575000 0.712766 +vt 0.581250 0.707447 +vt 0.581250 0.718085 +vt 0.625000 0.712766 +vt 0.587500 0.718085 +vt 0.587500 0.707447 +vt 0.593750 0.723404 +vt 0.593750 0.702128 +vt 0.600000 0.680851 +vt 0.606250 0.680851 +vt 0.612500 0.686170 +vt 0.618750 0.686170 +vt 0.612500 0.696809 +vt 0.625000 0.691489 +vt 0.618750 0.696809 +vt 0.581250 0.696809 +vt 0.575000 0.691489 +vt 0.581250 0.686170 +vt 0.587500 0.696809 +vt 0.587500 0.686170 +vt 0.593750 0.680851 +vt 0.593750 0.627660 +vt 0.587500 0.611702 +vt 0.618750 0.632979 +vt 0.625000 0.638298 +vt 0.618750 0.643617 +vt 0.618750 0.622340 +vt 0.612500 0.611702 +vt 0.618750 0.611702 +vt 0.612500 0.622340 +vt 0.606250 0.606383 +vt 0.600000 0.627660 +vt 0.600000 0.648936 +vt 0.593750 0.648936 +vt 0.587500 0.632979 +vt 0.625000 0.617021 +vt 0.612500 0.643617 +vt 0.612500 0.632979 +vt 0.606250 0.627660 +vt 0.575000 0.787234 +vt 0.581250 0.808511 +vt 0.575000 0.808511 +vt 0.587500 0.792553 +vt 0.587500 0.803191 +vt 0.593750 0.792553 +vt 0.593750 0.803191 +vt 0.600000 0.797872 +vt 0.606250 0.792553 +vt 0.612500 0.803191 +vt 0.606250 0.803191 +vt 0.618750 0.787234 +vt 0.618750 0.808511 +vt 0.625000 0.808511 +vt 0.575000 0.765957 +vt 0.581250 0.787234 +vt 0.587500 0.781915 +vt 0.587500 0.771277 +vt 0.593750 0.781915 +vt 0.606250 0.781915 +vt 0.612500 0.771277 +vt 0.612500 0.781915 +vt 0.625000 0.787234 +vt 0.612500 0.648936 +vt 0.606250 0.648936 +vt 0.618750 0.648936 +vt 0.612500 0.680851 +vt 0.625000 0.648936 +vt 0.618750 0.680851 +vt 0.581250 0.648936 +vt 0.575000 0.680851 +vt 0.575000 0.648936 +vt 0.587500 0.680851 +vt 0.581250 0.680851 +vt 0.587500 0.648936 +vt 0.606250 0.882979 +vt 0.600000 0.904255 +vt 0.600000 0.882979 +vt 0.612500 0.898936 +vt 0.612500 0.888298 +vt 0.618750 0.888298 +vt 0.625000 0.936170 +vt 0.618750 0.904255 +vt 0.625000 0.904255 +vt 0.581250 0.904255 +vt 0.575000 0.936170 +vt 0.575000 0.904255 +vt 0.587500 0.898936 +vt 0.581250 0.888298 +vt 0.587500 0.888298 +vt 0.593750 0.882979 +vt 0.600000 0.861702 +vt 0.606250 0.861702 +vt 0.612500 0.867021 +vt 0.618750 0.867021 +vt 0.612500 0.877660 +vt 0.625000 0.872340 +vt 0.618750 0.877660 +vt 0.581250 0.877660 +vt 0.575000 0.872340 +vt 0.581250 0.867021 +vt 0.587500 0.877660 +vt 0.587500 0.867021 +vt 0.593750 0.861702 +vt 0.587500 0.808511 +vt 0.581250 0.861702 +vt 0.575000 0.861702 +vt 0.618750 0.861702 +vt 0.612500 0.861702 +vt 0.612500 0.808511 +vt 0.606250 0.808511 +vt 0.600000 0.808511 +vt 0.593750 0.808511 +vt 0.587500 0.861702 +vt 0.593750 0.904255 +vt 0.587500 0.936170 +vt 0.587500 0.904255 +vt 0.612500 0.904255 +vt 0.606250 0.936170 +vt 0.606250 0.904255 +vt 0.581250 0.936170 +vt 0.600000 0.936170 +vt 0.593750 0.936170 +vt 0.625000 0.893617 +vt 0.618750 0.898936 +vt 0.575000 0.893617 +vt 0.581250 0.898936 +vt 0.612500 0.936170 +vt 0.062500 0.776596 +vt 0.062500 0.382979 +vt 0.056250 0.776596 +vt 0.093750 0.776596 +vt 0.087500 0.382979 +vt 0.087500 0.776596 +vt 0.068750 0.382979 +vt 0.068750 0.776596 +vt 0.075000 0.148936 +vt 0.081250 0.143617 +vt 0.075000 0.127660 +vt 0.068750 0.143617 +vt 0.075000 0.117021 +vt 0.075000 -0.000000 +vt 0.050000 0.212766 +vt 0.056250 0.196809 +vt 0.050000 0.191489 +vt 0.050000 0.180851 +vt 0.100000 0.180851 +vt 0.625000 0.606383 +vt 0.575000 0.606383 +vt 0.593750 0.771277 +vt 0.600000 0.776596 +vt 0.606250 0.771277 +vt 0.600000 0.765957 +vt 0.062500 0.117021 +vt 0.056250 -0.000000 +vt 0.062500 -0.000000 +vt 0.100000 0.117021 +vt 0.093750 -0.000000 +vt 0.100000 -0.000000 +vt 0.093750 0.218085 +vt 0.093750 0.207447 +vt 0.100000 0.212766 +vt 0.068750 0.117021 +vt 0.068750 -0.000000 +vt 0.056250 0.117021 +vt 0.050000 -0.000000 +vt 0.087500 0.117021 +vt 0.081250 -0.000000 +vt 0.087500 -0.000000 +vt 0.087500 0.340426 +vt 0.093750 0.297872 +vt 0.093750 0.340426 +vt 0.100000 0.297872 +vt 0.056250 0.340426 +vt 0.050000 0.297872 +vt 0.056250 0.297872 +vt 0.062500 0.297872 +vt 0.068750 0.340426 +vt 0.062500 0.340426 +vt 0.068750 0.297872 +vt 0.075000 0.340426 +vt 0.081250 0.297872 +vt 0.081250 0.340426 +vt 0.093750 0.117021 +vt 0.081250 0.159574 +vt 0.075000 0.180851 +vt 0.075000 0.159574 +vt 0.087500 0.159574 +vt 0.081250 0.180851 +vt 0.093750 0.180851 +vt 0.087500 0.180851 +vt 0.093750 0.186170 +vt 0.100000 0.191489 +vt 0.093750 0.196809 +vt 0.062500 0.159574 +vt 0.056250 0.180851 +vt 0.056250 0.159574 +vt 0.068750 0.180851 +vt 0.068750 0.159574 +vt 0.050000 0.159574 +vt 0.056250 0.138298 +vt 0.062500 0.154255 +vt 0.062500 0.143617 +vt 0.068750 0.154255 +vt 0.081250 0.154255 +vt 0.087500 0.143617 +vt 0.087500 0.154255 +vt 0.093750 0.138298 +vt 0.093750 0.159574 +vt 0.100000 0.159574 +vt 0.050000 0.138298 +vt 0.062500 0.132979 +vt 0.068750 0.122340 +vt 0.068750 0.132979 +vt 0.081250 0.132979 +vt 0.087500 0.122340 +vt 0.087500 0.132979 +vt 0.100000 0.138298 +vt 0.075000 0.276596 +vt 0.081250 0.276596 +vt 0.087500 0.292553 +vt 0.087500 0.281915 +vt 0.093750 0.292553 +vt 0.093750 0.281915 +vt 0.050000 0.287234 +vt 0.056250 0.281915 +vt 0.056250 0.292553 +vt 0.100000 0.287234 +vt 0.062500 0.281915 +vt 0.068750 0.276596 +vt 0.062500 0.292553 +vt 0.075000 0.255319 +vt 0.081250 0.255319 +vt 0.087500 0.260638 +vt 0.093750 0.260638 +vt 0.087500 0.271277 +vt 0.100000 0.265957 +vt 0.093750 0.271277 +vt 0.056250 0.271277 +vt 0.050000 0.265957 +vt 0.056250 0.260638 +vt 0.062500 0.271277 +vt 0.062500 0.260638 +vt 0.068750 0.255319 +vt 0.075000 0.202128 +vt 0.068750 0.202128 +vt 0.062500 0.186170 +vt 0.062500 0.196809 +vt 0.056250 0.186170 +vt 0.087500 0.196809 +vt 0.087500 0.186170 +vt 0.081250 0.202128 +vt 0.075000 0.223404 +vt 0.062500 0.218085 +vt 0.062500 0.207447 +vt 0.056250 0.207447 +vt 0.087500 0.218085 +vt 0.087500 0.207447 +vt 0.050000 0.382979 +vt 0.056250 0.361702 +vt 0.056250 0.382979 +vt 0.062500 0.367021 +vt 0.062500 0.377660 +vt 0.068750 0.367021 +vt 0.068750 0.377660 +vt 0.081250 0.377660 +vt 0.075000 0.372340 +vt 0.081250 0.367021 +vt 0.087500 0.367021 +vt 0.087500 0.377660 +vt 0.093750 0.382979 +vt 0.093750 0.361702 +vt 0.100000 0.382979 +vt 0.050000 0.340426 +vt 0.050000 0.361702 +vt 0.062500 0.356383 +vt 0.068750 0.345745 +vt 0.068750 0.356383 +vt 0.075000 0.351064 +vt 0.081250 0.345745 +vt 0.081250 0.356383 +vt 0.087500 0.356383 +vt 0.100000 0.340426 +vt 0.100000 0.361702 +vt 0.087500 0.223404 +vt 0.081250 0.223404 +vt 0.093750 0.223404 +vt 0.087500 0.255319 +vt 0.100000 0.223404 +vt 0.093750 0.255319 +vt 0.056250 0.223404 +vt 0.050000 0.255319 +vt 0.050000 0.223404 +vt 0.062500 0.255319 +vt 0.056250 0.255319 +vt 0.068750 0.223404 +vt 0.062500 0.223404 +vt 0.581250 0.632979 +vt 0.581250 0.643617 +vt 0.575000 0.638298 +vt 0.612500 0.765957 +vt 0.618750 0.723404 +vt 0.618750 0.765957 +vt 0.625000 0.723404 +vt 0.581250 0.765957 +vt 0.575000 0.723404 +vt 0.581250 0.723404 +vt 0.587500 0.723404 +vt 0.593750 0.765957 +vt 0.587500 0.765957 +vt 0.606250 0.563830 +vt 0.600000 0.606383 +vt 0.600000 0.563830 +vt 0.612500 0.606383 +vt 0.612500 0.563830 +vt 0.618750 0.606383 +vt 0.606250 0.723404 +vt 0.606250 0.765957 +vt 0.575000 0.617021 +vt 0.581250 0.611702 +vt 0.581250 0.622340 +vt 0.587500 0.563830 +vt 0.581250 0.606383 +vt 0.581250 0.563830 +vt 0.593750 0.606383 +vt 0.593750 0.563830 +vt 0.575000 0.563830 +vt 0.581250 0.542553 +vt 0.587500 0.547872 +vt 0.587500 0.558511 +vt 0.593750 0.547872 +vt 0.593750 0.558511 +vt 0.606250 0.558511 +vt 0.600000 0.553191 +vt 0.606250 0.547872 +vt 0.606250 0.526596 +vt 0.606250 0.537234 +vt 0.600000 0.531915 +vt 0.612500 0.547872 +vt 0.612500 0.558511 +vt 0.618750 0.563830 +vt 0.618750 0.542553 +vt 0.625000 0.563830 +vt 0.575000 0.521277 +vt 0.575000 0.542553 +vt 0.581250 0.521277 +vt 0.587500 0.537234 +vt 0.593750 0.526596 +vt 0.593750 0.537234 +vt 0.081250 0.382979 +vt 0.075000 0.776596 +vt 0.075000 0.382979 +vt 0.612500 0.526596 +vt 0.612500 0.537234 +vt 0.625000 0.521277 +vt 0.625000 0.542553 +vt 0.606250 0.702128 +vt 0.600000 0.723404 +vt 0.600000 0.702128 +vt 0.612500 0.707447 +vt 0.618750 0.718085 +vt 0.618750 0.707447 +vt 0.575000 0.712766 +vt 0.581250 0.707447 +vt 0.581250 0.718085 +vt 0.625000 0.712766 +vt 0.587500 0.707447 +vt 0.593750 0.723404 +vt 0.593750 0.702128 +vt 0.600000 0.680851 +vt 0.606250 0.680851 +vt 0.612500 0.686170 +vt 0.618750 0.696809 +vt 0.618750 0.686170 +vt 0.625000 0.691489 +vt 0.581250 0.696809 +vt 0.575000 0.691489 +vt 0.581250 0.686170 +vt 0.587500 0.696809 +vt 0.587500 0.686170 +vt 0.593750 0.680851 +vt 0.600000 0.627660 +vt 0.593750 0.627660 +vt 0.587500 0.611702 +vt 0.618750 0.632979 +vt 0.625000 0.638298 +vt 0.618750 0.643617 +vt 0.618750 0.622340 +vt 0.612500 0.611702 +vt 0.618750 0.611702 +vt 0.606250 0.627660 +vt 0.606250 0.606383 +vt 0.600000 0.648936 +vt 0.593750 0.648936 +vt 0.587500 0.632979 +vt 0.587500 0.643617 +vt 0.625000 0.617021 +vt 0.612500 0.643617 +vt 0.612500 0.632979 +vt 0.575000 0.808511 +vt 0.581250 0.787234 +vt 0.581250 0.808511 +vt 0.587500 0.803191 +vt 0.593750 0.792553 +vt 0.593750 0.803191 +vt 0.600000 0.797872 +vt 0.606250 0.792553 +vt 0.612500 0.803191 +vt 0.606250 0.803191 +vt 0.618750 0.787234 +vt 0.618750 0.808511 +vt 0.625000 0.787234 +vt 0.625000 0.808511 +vt 0.575000 0.765957 +vt 0.575000 0.787234 +vt 0.587500 0.771277 +vt 0.587500 0.781915 +vt 0.593750 0.781915 +vt 0.606250 0.771277 +vt 0.612500 0.781915 +vt 0.606250 0.781915 +vt 0.625000 0.765957 +vt 0.612500 0.648936 +vt 0.606250 0.648936 +vt 0.618750 0.648936 +vt 0.612500 0.680851 +vt 0.625000 0.648936 +vt 0.618750 0.680851 +vt 0.581250 0.648936 +vt 0.575000 0.680851 +vt 0.575000 0.648936 +vt 0.587500 0.680851 +vt 0.581250 0.680851 +vt 0.587500 0.648936 +vt 0.606250 0.882979 +vt 0.600000 0.904255 +vt 0.600000 0.882979 +vt 0.612500 0.898936 +vt 0.612500 0.888298 +vt 0.618750 0.888298 +vt 0.625000 0.936170 +vt 0.618750 0.904255 +vt 0.625000 0.904255 +vt 0.575000 0.904255 +vt 0.581250 0.936170 +vt 0.575000 0.936170 +vt 0.587500 0.898936 +vt 0.581250 0.888298 +vt 0.587500 0.888298 +vt 0.593750 0.882979 +vt 0.593750 0.904255 +vt 0.600000 0.861702 +vt 0.606250 0.861702 +vt 0.612500 0.867021 +vt 0.618750 0.867021 +vt 0.612500 0.877660 +vt 0.625000 0.872340 +vt 0.618750 0.877660 +vt 0.581250 0.877660 +vt 0.575000 0.872340 +vt 0.581250 0.867021 +vt 0.587500 0.877660 +vt 0.587500 0.867021 +vt 0.593750 0.861702 +vt 0.587500 0.808511 +vt 0.581250 0.861702 +vt 0.575000 0.861702 +vt 0.618750 0.861702 +vt 0.612500 0.861702 +vt 0.612500 0.808511 +vt 0.606250 0.808511 +vt 0.600000 0.808511 +vt 0.593750 0.808511 +vt 0.587500 0.861702 +vt 0.587500 0.904255 +vt 0.593750 0.936170 +vt 0.587500 0.936170 +vt 0.612500 0.904255 +vt 0.606250 0.936170 +vt 0.606250 0.904255 +vt 0.581250 0.904255 +vt 0.600000 0.936170 +vt 0.625000 0.893617 +vt 0.618750 0.898936 +vt 0.575000 0.893617 +vt 0.581250 0.898936 +vt 0.612500 0.936170 +vt 0.062500 0.776596 +vt 0.062500 0.382979 +vt 0.056250 0.776596 +vt 0.093750 0.776596 +vt 0.087500 0.382979 +vt 0.087500 0.776596 +vt 0.068750 0.382979 +vt 0.068750 0.776596 +vt 0.075000 0.148936 +vt 0.081250 0.143617 +vt 0.081250 0.122340 +vt 0.075000 0.127660 +vt 0.068750 0.143617 +vt 0.075000 -0.000000 +vt 0.075000 0.117021 +vt 0.056250 0.218085 +vt 0.050000 0.212766 +vt 0.056250 0.196809 +vt 0.050000 0.191489 +vt 0.050000 0.180851 +vt 0.100000 0.180851 +vt 0.625000 0.606383 +vt 0.575000 0.606383 +vt 0.593750 0.771277 +vt 0.600000 0.776596 +vt 0.600000 0.765957 +vt 0.687500 0.478723 +vt 0.678125 0.393617 +vt 0.687500 0.393617 +vt 0.650000 0.478723 +vt 0.659375 0.393617 +vt 0.659375 0.478723 +vt 0.706250 0.478723 +vt 0.715625 0.393617 +vt 0.715625 0.478723 +vt 0.696875 0.393617 +vt 0.696875 0.478723 +vt 0.668750 0.393617 +vt 0.668750 0.478723 +vt 0.706250 0.393617 +vt 0.678125 0.478723 +vt 0.725000 0.393617 +vt 0.725000 0.478723 +vt 0.612500 0.478723 +vt 0.603125 0.393617 +vt 0.612500 0.393617 +vt 0.575000 0.478723 +vt 0.584375 0.393617 +vt 0.584375 0.478723 +vt 0.631250 0.478723 +vt 0.640625 0.393617 +vt 0.640625 0.478723 +vt 0.621875 0.478723 +vt 0.621875 0.393617 +vt 0.593750 0.393617 +vt 0.593750 0.478723 +vt 0.631250 0.393617 +vt 0.603125 0.478723 +vt 0.650000 0.393617 +vt 0.650000 0.478723 +vt 0.125000 0.930851 +vt 0.131250 0.845745 +vt 0.131250 0.930851 +vt 0.143750 0.930851 +vt 0.150000 0.845745 +vt 0.150000 0.930851 +vt 0.106250 0.930851 +vt 0.112500 0.845745 +vt 0.112500 0.930851 +vt 0.118750 0.930851 +vt 0.125000 0.845745 +vt 0.137500 0.845745 +vt 0.137500 0.930851 +vt 0.143750 0.845745 +vt 0.156250 0.845745 +vt 0.156250 0.930851 +vt 0.118750 0.845745 +vt 0.500000 0.978723 +vt 0.206250 0.819149 +vt 0.017216 0.609215 +vt 0.020356 0.607000 +vt 0.023497 0.609215 +vt 0.023497 0.619907 +vt 0.017216 0.619907 +vt 0.087500 0.117021 +vt 0.087500 0.297872 +vt 0.075000 0.297872 +vt 0.062500 0.180851 +vt 0.087500 0.122340 +vt 0.062500 0.196809 +vt 0.087500 0.367021 +vt 0.087500 0.345745 +vt 0.100000 0.255319 +vt 0.612500 0.723404 +vt 0.625000 0.765957 +vt 0.587500 0.606383 +vt 0.612500 0.547872 +vt 0.581250 0.521277 +vt 0.081250 0.776596 +vt 0.612500 0.526596 +vt 0.587500 0.622340 +vt 0.612500 0.643617 +vt 0.587500 0.792553 +vt 0.625000 0.680851 +vt 0.618750 0.936170 +vt 0.625000 0.861702 +vt 0.050000 0.776596 +vt 0.100000 0.776596 +vt 0.140625 0.840426 +vt 0.128125 0.840426 +vt 0.115625 0.840426 +vt 0.203125 0.840426 +vt 0.190625 0.840426 +vt 0.178125 0.840426 +vt 0.153125 0.840426 +vt -0.000000 0.053191 +vt -0.000000 0.031915 +vt 0.037500 0.356383 +vt 0.050000 0.356383 +vt -0.000000 0.356383 +vt 0.012500 0.191489 +vt 0.000000 0.164894 +vt 0.031250 0.164894 +vt 0.000000 0.239362 +vt 0.037500 0.414894 +vt 0.050000 0.313830 +vt -0.000000 -0.000000 +vt 0.050000 0.601064 +vt 0.025000 0.606383 +vt 0.050000 0.117021 +vt 0.087500 0.117021 +vt 0.087500 0.297872 +vt 0.075000 0.297872 +vt 0.062500 0.180851 +vt 0.062500 0.122340 +vt 0.062500 0.345745 +vt 0.087500 0.345745 +vt 0.100000 0.255319 +vt 0.612500 0.723404 +vt 0.625000 0.765957 +vt 0.587500 0.606383 +vt 0.575000 0.521277 +vt 0.081250 0.776596 +vt 0.618750 0.521277 +vt 0.612500 0.718085 +vt 0.587500 0.622340 +vt 0.587500 0.643617 +vt 0.612500 0.792553 +vt 0.625000 0.680851 +vt 0.618750 0.936170 +vt 0.625000 0.861702 +vt 0.050000 0.776596 +vt 0.100000 0.776596 +vt 0.050000 0.117021 +vt 0.081250 0.117021 +vt 0.087500 0.297872 +vt 0.075000 0.297872 +vt 0.062500 0.180851 +vt 0.062500 0.122340 +vt 0.062500 0.345745 +vt 0.087500 0.345745 +vt 0.100000 0.255319 +vt 0.612500 0.723404 +vt 0.587500 0.606383 +vt 0.587500 0.526596 +vt 0.081250 0.776596 +vt 0.618750 0.521277 +vt 0.612500 0.718085 +vt 0.587500 0.718085 +vt 0.612500 0.696809 +vt 0.587500 0.622340 +vt 0.612500 0.622340 +vt 0.587500 0.792553 +vt 0.612500 0.792553 +vt 0.612500 0.771277 +vt 0.625000 0.680851 +vt 0.618750 0.936170 +vt 0.625000 0.861702 +vt 0.050000 0.776596 +vt 0.100000 0.776596 +vt 0.650000 0.393617 +vt 0.575000 0.393617 +vt 0.106250 0.845745 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.4996 0.7077 0.4996 +vn -0.4996 0.7077 -0.4996 +vn 0.0000 0.7071 0.7071 +vn 0.0000 0.7071 -0.7071 +vn 0.4996 0.7077 -0.4996 +vn -0.4996 0.7077 0.4996 +vn 0.7071 0.7071 0.0000 +vn -0.7071 0.7071 0.0000 +vn 0.7040 0.0935 0.7040 +vn 0.7071 0.0000 -0.7071 +vn -0.7071 0.0000 0.7071 +vn 0.7071 0.0000 0.7071 +vn -0.7071 0.0000 -0.7071 +vn 0.0000 0.0000 1.0000 +vn -0.7040 0.0935 -0.7040 +vn 0.0000 0.0933 0.9956 +vn 0.0000 0.0933 -0.9956 +vn 0.7040 0.0935 -0.7040 +vn -0.7040 0.0935 0.7040 +vn 0.9956 0.0933 0.0000 +vn -0.9956 0.0933 0.0000 +vn 0.0000 -0.7071 -0.7071 +vn -0.7071 -0.7071 0.0000 +vn 0.7071 -0.7071 0.0000 +vn 0.0000 -0.7071 0.7071 +vn 0.5000 0.7071 0.5000 +vn -0.5000 0.7071 -0.5000 +vn -0.5000 -0.7071 -0.5000 +vn -0.5000 -0.7071 0.5000 +vn 0.5000 -0.7071 -0.5000 +vn 0.5000 0.7071 -0.5000 +vn -0.5000 0.7071 0.5000 +vn 0.5000 -0.7071 0.5000 +vn 0.9239 0.0000 -0.3827 +vn -0.9239 0.0000 0.3827 +vn -0.3827 0.0000 -0.9239 +vn 0.3827 0.0000 0.9239 +vn 0.3827 0.0000 -0.9239 +vn -0.3827 0.0000 0.9239 +vn -0.9239 0.0000 -0.3827 +vn 0.9239 0.0000 0.3827 +vn -0.9487 -0.3162 0.0000 +vn 0.9487 -0.3162 0.0000 +vn 0.0000 -0.3162 0.9487 +vn 0.0000 -0.3162 -0.9487 +vn -0.6708 -0.3162 0.6708 +vn 0.6708 -0.3162 -0.6708 +vn 0.6708 -0.3162 0.6708 +vn -0.6708 -0.3162 -0.6708 +vn -0.0473 0.0196 0.9987 +vn -0.9824 0.1866 0.0000 +vn -0.6737 0.1363 -0.7263 +vn -0.4617 0.4617 -0.7573 +vn 0.6737 -0.1363 0.7263 +vn -0.7194 0.1447 0.6794 +vn 0.6737 -0.1363 -0.7263 +vn -0.0196 -0.0473 -0.9987 +vn -0.1363 -0.6737 -0.7263 +vn -0.1447 -0.7194 -0.6794 +vn -0.1447 -0.7194 0.6794 +vn -0.1363 -0.6737 0.7263 +vn 0.0196 0.0473 0.9987 +vn 0.1363 0.6737 0.7263 +vn -0.0196 -0.0473 0.9987 +vn 0.1447 0.7194 0.6794 +vn 0.1447 0.7194 -0.6794 +vn 0.1363 0.6737 -0.7263 +vn -0.7194 0.1447 -0.6794 +vn 0.1363 -0.6737 -0.7263 +vn 0.1866 -0.9824 0.0000 +vn 0.0196 -0.0473 -0.9987 +vn -0.0196 0.0473 -0.9987 +vn -0.1363 0.6737 -0.7263 +vn -0.0196 0.0473 0.9987 +vn -0.1363 0.6737 0.7263 +vn -0.1447 0.7194 0.6794 +vn 0.1447 -0.7194 0.6794 +vn 0.1363 -0.6737 0.7263 +vn -0.1866 0.9824 0.0000 +vn -0.5293 0.5293 0.6630 +vn -0.0670 0.0670 0.9955 +vn 0.4617 -0.4617 0.7573 +vn -0.0670 0.0670 -0.9955 +vn -0.5293 0.5293 -0.6630 +vn -0.1447 0.7194 -0.6794 +vn 0.4617 -0.4617 -0.7573 +vn 0.5293 0.5293 -0.6630 +vn 0.0196 0.0473 -0.9987 +vn 0.0670 0.0670 -0.9955 +vn -0.4617 -0.4617 -0.7573 +vn -0.4617 -0.4617 0.7573 +vn 0.0670 0.0670 0.9955 +vn 0.5293 0.5293 0.6630 +vn 0.7194 0.1447 -0.6794 +vn 0.9824 0.1866 0.0000 +vn 0.0473 0.0196 -0.9987 +vn -0.6737 -0.1363 -0.7263 +vn -0.6737 -0.1363 0.7263 +vn 0.0473 0.0196 0.9987 +vn 0.7194 0.1447 0.6794 +vn 0.5293 -0.5293 0.6630 +vn 0.0196 -0.0473 0.9987 +vn -0.4617 0.4617 0.7573 +vn 0.0670 -0.0670 -0.9955 +vn 0.1447 -0.7194 -0.6794 +vn 0.9824 -0.1866 0.0000 +vn 0.0473 -0.0196 0.9987 +vn 0.0670 -0.0670 0.9955 +vn -0.6737 0.1363 0.7263 +vn 0.0473 -0.0196 -0.9987 +vn 0.5293 -0.5293 -0.6630 +vn -0.9824 -0.1866 0.0000 +vn -0.5293 -0.5293 0.6630 +vn -0.7194 -0.1447 0.6794 +vn -0.0670 -0.0670 0.9955 +vn -0.0473 -0.0196 0.9987 +vn 0.4617 0.4617 0.7573 +vn 0.6737 0.1363 0.7263 +vn 0.6737 0.1363 -0.7263 +vn 0.4617 0.4617 -0.7573 +vn -0.0473 -0.0196 -0.9987 +vn -0.5293 -0.5293 -0.6630 +vn -0.7194 -0.1447 -0.6794 +vn -0.1866 -0.9824 0.0000 +vn -0.0670 -0.0670 -0.9955 +vn 0.7194 -0.1447 -0.6794 +vn 0.7194 -0.1447 0.6794 +vn 0.1866 0.9824 0.0000 +vn -0.0473 0.0196 -0.9987 +vn 0.0000 0.4472 -0.8944 +vn 0.6324 0.4472 -0.6324 +vn 0.8944 0.4472 0.0000 +vn 0.6324 0.4472 0.6324 +vn 0.0000 0.4472 0.8944 +vn -0.6324 0.4472 0.6324 +vn -0.8944 0.4472 0.0000 +vn -0.6324 0.4472 -0.6324 +vn 0.9900 0.1363 0.0372 +vn 0.8620 0.4617 0.2090 +vn 0.7200 -0.0473 0.6923 +vn 0.6099 -0.6737 0.4172 +vn 0.5828 -0.7194 0.3780 +vn 0.1319 -0.9824 -0.1319 +vn -0.4172 -0.6737 -0.6099 +vn -0.3780 -0.7194 -0.5828 +vn -0.7200 0.0473 -0.6923 +vn -0.6099 0.6737 -0.4172 +vn -0.6923 -0.0473 -0.7200 +vn -0.5828 0.7194 -0.3780 +vn 0.3780 0.7194 0.5828 +vn 0.4172 0.6737 0.6099 +vn 0.4172 -0.6737 0.6099 +vn -0.1319 -0.9824 0.1319 +vn 0.7200 0.0473 0.6923 +vn 0.3780 -0.7194 0.5828 +vn 0.6099 0.6737 0.4172 +vn 0.6923 -0.0473 0.7200 +vn -0.2090 0.4617 -0.8620 +vn -0.0372 0.1363 -0.9900 +vn -0.3780 0.7194 -0.5828 +vn -0.7200 -0.0473 -0.6923 +vn -0.4172 0.6737 -0.6099 +vn -0.6099 -0.6737 -0.4172 +vn -0.6923 0.0473 -0.7200 +vn -0.5828 -0.7194 -0.3780 +vn 0.1319 0.9824 -0.1319 +vn -0.0945 0.5293 -0.8431 +vn -0.8620 -0.4617 -0.2090 +vn 0.2090 -0.4617 0.8620 +vn 0.7513 0.0670 0.6565 +vn 0.5828 0.7194 0.3780 +vn 0.8431 0.5293 0.0945 +vn 0.0283 0.1447 -0.9890 +vn -0.6727 0.0196 -0.7396 +vn -0.6565 0.0670 -0.7513 +vn -0.9900 -0.1363 -0.0372 +vn 0.0372 -0.1363 0.9900 +vn 0.7396 0.0196 0.6727 +vn 0.6947 0.1866 -0.6947 +vn 0.0945 0.5293 0.8431 +vn -0.1319 0.9824 0.1319 +vn 0.6565 0.0670 0.7513 +vn 0.8620 -0.4617 0.2090 +vn 0.6923 0.0473 0.7200 +vn -0.2090 -0.4617 -0.8620 +vn -0.0372 -0.1363 -0.9900 +vn -0.7513 0.0670 -0.6565 +vn -0.8431 0.5293 -0.0945 +vn -0.0283 0.1447 0.9890 +vn -0.6947 0.1866 0.6947 +vn 0.6727 0.0196 0.7396 +vn 0.9900 -0.1363 0.0372 +vn -0.7396 0.0196 -0.6727 +vn -0.9890 0.1447 0.0283 +vn -0.8431 -0.5293 -0.0945 +vn -0.7513 -0.0670 -0.6565 +vn 0.6565 -0.0670 0.7513 +vn -0.6947 -0.1866 0.6947 +vn -0.7396 -0.0196 -0.6727 +vn 0.6727 -0.0196 0.7396 +vn 0.0945 -0.5293 0.8431 +vn 0.0283 -0.1447 -0.9890 +vn 0.6947 -0.1866 -0.6947 +vn -0.0945 -0.5293 -0.8431 +vn -0.6727 -0.0196 -0.7396 +vn -0.6565 -0.0670 -0.7513 +vn -0.9900 0.1363 -0.0372 +vn 0.2090 0.4617 0.8620 +vn 0.0372 0.1363 0.9900 +vn 0.7396 -0.0196 0.6727 +vn 0.8431 -0.5293 0.0945 +vn 0.9890 -0.1447 -0.0283 +vn -0.8620 0.4617 -0.2090 +vn 0.7513 -0.0670 0.6565 +vn -0.0283 -0.1447 0.9890 +vn -0.9890 -0.1447 0.0283 +vn 0.9890 0.1447 -0.0283 +vn -0.9987 0.0196 -0.0473 +vn 0.0000 0.1866 -0.9824 +vn 0.7263 0.1363 -0.6737 +vn 0.7573 0.4617 -0.4617 +vn -0.7263 -0.1363 0.6737 +vn -0.6794 0.1447 -0.7194 +vn 0.9987 0.0196 -0.0473 +vn 0.9987 -0.0473 -0.0196 +vn 0.7263 -0.6737 -0.1363 +vn 0.6794 -0.7194 -0.1447 +vn -0.6794 -0.7194 -0.1447 +vn -0.7263 -0.6737 -0.1363 +vn -0.9987 0.0473 0.0196 +vn -0.7263 0.6737 0.1363 +vn -0.9987 -0.0473 -0.0196 +vn -0.6794 0.7194 0.1447 +vn 0.6794 0.7194 0.1447 +vn 0.7263 0.6737 0.1363 +vn 0.6794 0.1447 -0.7194 +vn 0.7263 -0.6737 0.1363 +vn 0.0000 -0.9824 0.1866 +vn 0.9987 0.0473 -0.0196 +vn 0.6794 -0.7194 0.1447 +vn 0.7263 0.6737 -0.1363 +vn 0.9987 -0.0473 0.0196 +vn -0.9987 0.0473 -0.0196 +vn -0.7263 0.6737 -0.1363 +vn -0.6794 0.7194 -0.1447 +vn -0.6794 -0.7194 0.1447 +vn -0.7263 -0.6737 0.1363 +vn 0.0000 0.9824 -0.1866 +vn -0.6630 0.5293 -0.5293 +vn -0.9955 0.0670 -0.0670 +vn 0.9955 0.0670 -0.0670 +vn 0.6630 0.5293 -0.5293 +vn 0.6794 0.7194 -0.1447 +vn -0.7573 -0.4617 0.4617 +vn 0.7573 -0.4617 0.4617 +vn 0.6630 0.5293 0.5293 +vn 0.9987 0.0473 0.0196 +vn 0.9955 0.0670 0.0670 +vn 0.7573 -0.4617 -0.4617 +vn -0.7573 -0.4617 -0.4617 +vn -0.9955 0.0670 0.0670 +vn -0.6630 0.5293 0.5293 +vn 0.0000 0.1866 0.9824 +vn 0.6794 0.1447 0.7194 +vn 0.9987 0.0196 0.0473 +vn 0.7263 -0.1363 -0.6737 +vn -0.7263 -0.1363 -0.6737 +vn -0.9987 0.0196 0.0473 +vn -0.6794 0.1447 0.7194 +vn -0.6630 -0.5293 0.5293 +vn -0.9987 -0.0473 0.0196 +vn -0.9955 -0.0670 0.0670 +vn 0.9955 -0.0670 0.0670 +vn 0.6630 -0.5293 0.5293 +vn 0.0000 -0.1866 0.9824 +vn -0.9987 -0.0196 0.0473 +vn -0.7573 0.4617 -0.4617 +vn 0.9987 -0.0196 0.0473 +vn 0.0000 -0.1866 -0.9824 +vn -0.6630 -0.5293 -0.5293 +vn -0.6794 -0.1447 -0.7194 +vn -0.9955 -0.0670 -0.0670 +vn -0.9987 -0.0196 -0.0473 +vn -0.7573 0.4617 0.4617 +vn -0.7263 0.1363 0.6737 +vn 0.7263 0.1363 0.6737 +vn 0.7573 0.4617 0.4617 +vn 0.9955 -0.0670 -0.0670 +vn 0.9987 -0.0196 -0.0473 +vn 0.6794 -0.1447 -0.7194 +vn 0.6630 -0.5293 -0.5293 +vn 0.0000 -0.9824 -0.1866 +vn 0.6794 -0.1447 0.7194 +vn -0.7263 0.1363 -0.6737 +vn -0.6794 -0.1447 0.7194 +vn 0.7263 -0.1363 0.6737 +vn 0.0000 0.9824 0.1866 +s off +f 3/1/1 2/2/1 1/3/1 +f 6/4/2 7/5/2 5/6/2 +f 70/7/3 65/8/3 66/9/3 +f 65/10/3 72/11/3 68/12/3 +f 72/13/3 67/14/3 68/15/3 +f 67/16/3 70/17/3 66/18/3 +f 86/19/4 81/20/4 82/21/4 +f 20/22/5 27/23/5 19/24/5 +f 10/25/6 24/26/6 13/27/6 +f 11/28/7 20/29/7 16/30/7 +f 13/27/8 23/31/8 15/32/8 +f 16/30/9 19/33/9 14/34/9 +f 14/34/10 22/35/10 12/36/10 +f 15/37/11 18/38/11 9/39/11 +f 12/36/12 21/40/12 10/25/12 +f 9/39/13 17/41/13 11/28/13 +f 29/42/14 48/43/14 32/44/14 +f 19/24/15 30/45/15 22/46/15 +f 23/47/16 26/48/16 18/49/16 +f 22/46/3 29/42/3 21/50/3 +f 18/49/4 25/51/4 17/52/4 +f 21/50/17 32/44/17 24/53/17 +f 17/52/18 28/54/18 20/22/18 +f 24/53/19 31/55/19 23/56/19 +f 37/57/4 1604/58/4 53/59/4 +f 37/60/2 46/61/2 38/62/2 +f 25/51/20 44/63/20 28/54/20 +f 32/44/21 47/64/21 31/55/21 +f 28/54/22 43/65/22 27/23/22 +f 27/23/23 46/66/23 30/45/23 +f 31/67/24 42/68/24 26/48/24 +f 30/45/25 45/69/25 29/42/25 +f 26/48/26 41/70/26 25/51/26 +f 38/71/2 43/72/2 35/73/2 +f 35/74/2 44/75/2 36/76/2 +f 44/63/2 33/77/2 36/78/2 +f 33/79/2 42/80/2 34/81/2 +f 34/82/2 47/83/2 39/84/2 +f 39/85/2 48/86/2 40/87/2 +f 48/43/2 37/88/2 40/89/2 +f 50/90/2 55/91/2 1603/92/2 +f 34/93/3 49/94/3 33/95/3 +f 37/57/18 56/96/18 40/97/18 +f 33/95/17 52/98/17 36/99/17 +f 40/97/5 55/100/5 39/101/5 +f 36/99/19 51/102/19 35/103/19 +f 51/102/16 54/104/16 1604/58/16 +f 39/105/15 50/106/15 34/93/15 +f 58/107/5 66/18/5 57/108/5 +f 59/109/19 68/12/19 60/110/19 +f 61/111/19 71/112/19 62/113/19 +f 64/114/5 69/115/5 63/116/5 +f 61/111/3 64/114/3 63/116/3 +f 62/113/1 72/13/1 64/114/1 +f 63/116/2 70/7/2 61/111/2 +f 60/117/2 67/14/2 58/118/2 +f 57/119/1 65/8/1 59/120/1 +f 81/121/4 88/122/4 84/123/4 +f 88/124/4 83/125/4 84/126/4 +f 83/127/4 86/128/4 82/129/4 +f 74/130/19 82/129/19 73/131/19 +f 75/132/5 84/123/5 76/133/5 +f 77/134/5 87/135/5 78/136/5 +f 80/137/19 85/138/19 79/139/19 +f 77/134/4 80/137/4 79/139/4 +f 78/136/1 88/124/1 80/137/1 +f 79/139/2 86/19/2 77/134/2 +f 76/140/2 83/125/2 74/141/2 +f 73/142/1 81/20/1 75/143/1 +f 102/144/5 97/145/5 98/146/5 +f 97/147/5 104/148/5 100/149/5 +f 104/150/5 99/151/5 100/152/5 +f 103/153/5 98/154/5 99/155/5 +f 118/156/19 113/157/19 114/158/19 +f 90/159/4 98/154/4 89/160/4 +f 91/161/3 100/149/3 92/162/3 +f 93/163/3 103/153/3 94/164/3 +f 96/165/4 101/166/4 95/167/4 +f 93/163/5 96/165/5 95/167/5 +f 94/164/1 104/150/1 96/165/1 +f 95/167/2 102/144/2 93/163/2 +f 92/168/2 99/151/2 90/169/2 +f 89/170/1 97/145/1 91/171/1 +f 113/172/19 120/173/19 116/174/19 +f 120/175/19 115/176/19 116/177/19 +f 119/178/19 114/179/19 115/180/19 +f 106/181/3 114/179/3 105/182/3 +f 107/183/4 116/174/4 108/184/4 +f 109/185/4 119/178/4 110/186/4 +f 112/187/3 117/188/3 111/189/3 +f 109/185/19 112/187/19 111/189/19 +f 110/186/1 120/175/1 112/187/1 +f 109/185/2 117/190/2 118/156/2 +f 108/191/2 115/176/2 106/192/2 +f 105/193/1 113/157/1 107/194/1 +f 4/195/3 58/196/3 2/2/3 +f 2/197/19 106/198/19 1/199/19 +f 1/200/4 74/201/4 3/202/4 +f 3/203/5 90/204/5 4/205/5 +f 89/206/5 7/207/5 8/208/5 +f 7/209/4 75/210/4 5/211/4 +f 105/212/19 6/213/19 5/214/19 +f 6/4/3 59/215/3 8/216/3 +f 57/217/3 2/2/3 58/196/3 +f 107/218/19 2/197/19 6/213/19 +f 105/212/19 1/199/19 106/198/19 +f 75/210/4 1/200/4 5/211/4 +f 73/219/4 3/202/4 74/201/4 +f 91/220/5 3/203/5 7/207/5 +f 89/206/5 4/205/5 90/204/5 +f 59/215/3 4/195/3 8/216/3 +f 136/221/1 123/222/1 124/223/1 +f 129/224/1 121/225/1 122/226/1 +f 133/227/1 127/228/1 128/229/1 +f 135/230/1 122/231/1 127/232/1 +f 131/233/1 124/234/1 121/235/1 +f 132/236/1 125/237/1 126/238/1 +f 123/239/1 132/236/1 126/240/1 +f 130/241/1 128/242/1 125/243/1 +f 139/244/2 148/245/2 140/246/2 +f 137/247/2 146/248/2 138/249/2 +f 143/250/2 152/251/2 144/252/2 +f 138/253/2 151/254/2 143/255/2 +f 140/256/2 145/257/2 137/258/2 +f 141/259/2 150/260/2 142/261/2 +f 142/262/2 147/263/2 139/264/2 +f 144/265/2 149/266/2 141/267/2 +f 203/268/4 214/269/4 204/270/4 +f 135/230/16 146/248/16 129/224/16 +f 133/227/19 151/271/19 135/272/19 +f 213/273/3 201/274/3 202/275/3 +f 131/233/18 148/245/18 136/221/18 +f 216/276/8 203/268/8 201/277/8 +f 206/278/3 210/279/3 205/280/3 +f 208/281/9 211/282/9 206/278/9 +f 134/283/15 150/260/15 132/236/15 +f 214/269/27 202/275/27 204/270/27 +f 129/224/4 145/257/4 131/233/4 +f 130/241/17 152/251/17 133/227/17 +f 209/284/4 208/285/4 207/286/4 +f 136/221/5 147/263/5 134/283/5 +f 194/287/28 191/288/28 189/289/28 +f 132/236/3 149/266/3 130/241/3 +f 158/290/1 164/291/1 160/292/1 +f 155/293/1 168/294/1 153/295/1 +f 159/296/1 161/297/1 157/298/1 +f 154/299/1 165/300/1 156/301/1 +f 165/302/1 158/290/1 156/301/1 +f 157/298/1 167/303/1 154/299/1 +f 153/295/1 163/304/1 159/305/1 +f 160/292/1 166/306/1 155/293/1 +f 182/307/2 171/308/2 172/309/2 +f 184/310/2 169/311/2 170/312/2 +f 178/313/2 175/314/2 176/315/2 +f 180/316/2 173/317/2 174/318/2 +f 171/308/2 180/319/2 174/318/2 +f 179/320/2 176/315/2 173/317/2 +f 177/321/2 170/312/2 175/322/2 +f 183/323/2 172/309/2 169/311/2 +f 155/293/18 172/309/18 160/292/18 +f 165/324/16 181/325/16 162/326/16 +f 158/290/15 174/318/15 156/301/15 +f 161/327/18 179/320/18 167/328/18 +f 154/299/17 176/315/17 157/298/17 +f 168/329/15 177/321/15 163/330/15 +f 153/295/4 169/311/4 155/293/4 +f 163/331/5 178/313/5 161/332/5 +f 164/333/17 183/323/17 166/334/17 +f 160/292/5 171/308/5 158/290/5 +f 167/335/4 180/316/4 165/336/4 +f 156/301/3 173/317/3 154/299/3 +f 162/337/19 182/307/19 164/338/19 +f 157/298/19 175/314/19 159/296/19 +f 166/339/3 184/310/3 168/340/3 +f 159/305/16 170/312/16 153/295/16 +f 193/341/5 192/342/5 191/288/5 +f 198/343/29 186/344/29 188/345/29 +f 235/346/16 246/347/16 236/348/16 +f 196/349/12 190/350/12 192/351/12 +f 190/350/19 194/287/19 189/289/19 +f 200/352/13 187/353/13 185/354/13 +f 234/355/15 248/356/15 233/357/15 +f 210/279/30 207/286/30 205/280/30 +f 197/358/19 185/359/19 186/344/19 +f 187/353/5 198/343/5 188/345/5 +f 248/360/31 235/346/31 233/361/31 +f 243/362/15 237/363/15 238/364/15 +f 244/365/32 238/364/32 240/366/32 +f 246/347/33 234/355/33 236/348/33 +f 239/367/16 244/368/16 240/369/16 +f 226/370/34 223/371/34 221/372/34 +f 223/371/18 228/373/18 224/374/18 +f 230/375/35 218/376/35 220/377/35 +f 228/378/36 222/379/36 224/380/36 +f 222/379/17 226/370/17 221/372/17 +f 232/381/37 219/382/37 217/383/37 +f 242/384/38 239/367/38 237/363/38 +f 218/376/17 232/385/17 217/386/17 +f 219/382/18 230/375/18 220/377/18 +f 258/387/15 255/388/15 249/389/15 +f 263/390/5 253/391/5 255/392/5 +f 260/393/17 251/394/17 256/395/17 +f 262/396/16 254/397/16 252/398/16 +f 257/399/3 249/400/3 251/401/3 +f 264/402/18 250/403/18 253/404/18 +f 259/405/19 256/406/19 254/407/19 +f 261/408/4 252/409/4 250/410/4 +f 266/411/1 255/412/1 253/413/1 +f 270/414/1 250/415/1 252/416/1 +f 269/417/1 253/418/1 250/419/1 +f 267/420/1 254/421/1 256/422/1 +f 268/423/1 252/424/1 254/425/1 +f 271/426/1 251/427/1 249/428/1 +f 272/429/1 256/430/1 251/431/1 +f 255/432/1 271/426/1 249/433/1 +f 273/434/16 271/426/16 265/435/16 +f 278/436/3 269/417/3 270/414/3 +f 276/437/15 270/414/15 268/423/15 +f 279/438/4 272/429/4 271/426/4 +f 280/439/18 267/420/18 272/429/18 +f 275/440/5 268/423/5 267/420/5 +f 274/441/19 265/442/19 266/411/19 +f 277/443/17 266/411/17 269/417/17 +f 257/399/2 279/438/2 258/444/2 +f 279/438/2 263/445/2 258/387/2 +f 263/390/2 274/441/2 264/446/2 +f 264/402/2 277/443/2 261/447/2 +f 261/408/2 278/436/2 262/448/2 +f 262/396/2 276/437/2 259/449/2 +f 259/405/2 275/440/2 260/450/2 +f 260/393/2 280/439/2 257/451/2 +f 295/452/2 293/453/2 294/454/2 +f 287/455/2 285/456/2 286/457/2 +f 284/458/3 287/459/3 282/460/3 +f 281/461/4 285/456/4 283/462/4 +f 283/462/5 288/463/5 284/464/5 +f 282/460/19 286/457/19 281/461/19 +f 292/465/4 295/466/4 290/467/4 +f 289/468/3 293/453/3 291/469/3 +f 291/469/19 296/470/19 292/471/19 +f 290/467/5 294/454/5 289/468/5 +f 311/472/2 309/473/2 310/474/2 +f 302/475/2 304/476/2 301/477/2 +f 300/478/5 303/479/5 298/480/5 +f 297/481/19 301/477/19 299/482/19 +f 299/482/4 304/483/4 300/484/4 +f 298/480/3 302/475/3 297/481/3 +f 308/485/19 311/486/19 306/487/19 +f 305/488/5 309/473/5 307/489/5 +f 307/489/3 312/490/3 308/491/3 +f 306/487/4 310/474/4 305/488/4 +f 327/492/2 325/493/2 326/494/2 +f 319/495/2 317/496/2 318/497/2 +f 316/498/15 319/499/15 314/500/15 +f 313/501/16 317/496/16 315/502/16 +f 315/502/18 320/503/18 316/504/18 +f 314/500/17 318/497/17 313/501/17 +f 324/505/16 327/506/16 322/507/16 +f 321/508/15 325/493/15 323/509/15 +f 323/509/17 328/510/17 324/511/17 +f 322/507/18 326/494/18 321/508/18 +f 343/512/2 341/513/2 342/514/2 +f 334/515/2 336/516/2 333/517/2 +f 332/518/18 335/519/18 330/520/18 +f 329/521/17 333/517/17 331/522/17 +f 331/522/16 336/523/16 332/524/16 +f 330/520/15 334/515/15 329/521/15 +f 340/525/17 343/526/17 338/527/17 +f 337/528/18 341/513/18 339/529/18 +f 339/529/15 344/530/15 340/531/15 +f 338/527/16 342/514/16 337/528/16 +f 351/532/2 349/533/2 350/534/2 +f 348/535/39 351/536/39 346/537/39 +f 345/538/40 349/533/40 347/539/40 +f 347/539/41 352/540/41 348/541/41 +f 346/537/42 350/534/42 345/538/42 +f 359/542/2 357/543/2 358/544/2 +f 356/545/40 359/546/40 354/547/40 +f 353/548/39 357/543/39 355/549/39 +f 355/549/42 360/550/42 356/551/42 +f 354/547/41 358/544/41 353/548/41 +f 367/552/2 365/553/2 366/554/2 +f 364/555/41 367/556/41 362/557/41 +f 361/558/42 365/553/42 363/559/42 +f 363/559/40 368/560/40 364/561/40 +f 362/557/39 366/554/39 361/558/39 +f 375/562/2 373/563/2 374/564/2 +f 372/565/42 375/566/42 370/567/42 +f 369/568/41 373/563/41 371/569/41 +f 371/569/39 376/570/39 372/571/39 +f 370/567/40 374/564/40 369/568/40 +f 382/572/2 384/573/2 381/574/2 +f 380/575/43 383/576/43 378/577/43 +f 377/578/44 381/574/44 379/579/44 +f 379/579/45 384/580/45 380/581/45 +f 378/577/46 382/572/46 377/578/46 +f 390/582/2 392/583/2 389/584/2 +f 388/585/44 391/586/44 386/587/44 +f 385/588/43 389/584/43 387/589/43 +f 387/589/46 392/590/46 388/591/46 +f 386/587/45 390/582/45 385/588/45 +f 398/592/2 400/593/2 397/594/2 +f 396/595/45 399/596/45 394/597/45 +f 393/598/46 397/594/46 395/599/46 +f 395/599/44 400/600/44 396/601/44 +f 394/597/43 398/592/43 393/598/43 +f 407/602/2 405/603/2 406/604/2 +f 404/605/46 407/606/46 402/607/46 +f 401/608/45 405/603/45 403/609/45 +f 403/609/43 408/610/43 404/611/43 +f 402/607/44 406/604/44 401/608/44 +f 410/612/4 409/613/4 412/614/4 +f 411/615/47 413/616/47 409/613/47 +f 416/617/3 415/618/3 418/619/3 +f 417/620/48 419/621/48 415/618/48 +f 422/622/19 421/623/19 424/624/19 +f 423/625/49 425/626/49 421/623/49 +f 428/627/5 427/628/5 430/629/5 +f 429/630/50 431/631/50 427/628/50 +f 434/632/16 433/633/16 436/634/16 +f 435/635/51 437/636/51 433/633/51 +f 440/637/15 439/638/15 442/639/15 +f 441/640/52 443/641/52 439/638/52 +f 446/642/17 445/643/17 448/644/17 +f 447/645/53 449/646/53 445/643/53 +f 452/647/18 451/648/18 454/649/18 +f 453/650/54 455/651/54 451/648/54 +f 472/652/1 459/653/1 460/654/1 +f 465/655/1 457/656/1 458/657/1 +f 469/658/1 463/659/1 464/660/1 +f 471/661/1 458/662/1 463/663/1 +f 467/664/1 460/665/1 457/666/1 +f 468/667/1 461/668/1 462/669/1 +f 459/670/1 468/667/1 462/671/1 +f 466/672/1 464/673/1 461/674/1 +f 475/675/2 484/676/2 476/677/2 +f 473/678/2 482/679/2 474/680/2 +f 479/681/2 488/682/2 480/683/2 +f 474/684/2 487/685/2 479/686/2 +f 476/687/2 481/688/2 473/689/2 +f 477/690/2 486/691/2 478/692/2 +f 478/693/2 483/694/2 475/695/2 +f 480/696/2 485/697/2 477/698/2 +f 471/661/16 482/679/16 465/655/16 +f 469/658/19 487/699/19 471/700/19 +f 467/664/18 484/676/18 472/652/18 +f 470/701/15 486/691/15 468/667/15 +f 465/655/4 481/688/4 467/664/4 +f 466/672/17 488/682/17 469/658/17 +f 472/652/5 483/694/5 470/701/5 +f 468/667/3 485/697/3 466/672/3 +f 509/702/3 492/703/3 511/704/3 +f 505/705/5 494/706/5 507/707/5 +f 511/704/17 489/708/17 508/709/17 +f 512/710/4 496/711/4 510/712/4 +f 507/707/15 491/713/15 509/702/15 +f 510/712/18 493/714/18 505/705/18 +f 508/709/19 490/715/19 506/716/19 +f 506/717/16 495/718/16 512/710/16 +f 497/719/2 492/703/2 500/720/2 +f 499/721/2 494/706/2 502/722/2 +f 500/723/2 491/713/2 499/724/2 +f 501/725/2 496/711/2 504/726/2 +f 503/727/2 490/728/2 498/729/2 +f 498/730/2 489/708/2 497/731/2 +f 504/732/2 495/718/2 503/733/2 +f 502/734/2 493/714/2 501/735/2 +f 511/704/1 513/736/1 516/737/1 +f 518/738/1 509/702/1 515/739/1 +f 509/702/1 516/740/1 515/741/1 +f 510/712/1 517/742/1 520/743/1 +f 506/717/1 519/744/1 514/745/1 +f 508/709/1 514/746/1 513/747/1 +f 512/710/1 520/748/1 519/749/1 +f 505/705/1 518/750/1 517/751/1 +f 538/752/18 549/753/18 550/754/18 +f 540/755/17 552/756/17 551/757/17 +f 527/758/38 530/759/38 532/760/38 +f 537/761/37 550/754/37 552/762/37 +f 542/763/17 548/764/17 547/765/17 +f 541/766/36 547/765/36 545/767/36 +f 539/768/35 551/757/35 549/753/35 +f 544/769/18 545/770/18 546/771/18 +f 543/772/34 546/771/34 548/764/34 +f 528/773/16 529/774/16 530/759/16 +f 523/775/33 535/776/33 533/777/33 +f 525/778/32 531/779/32 529/780/32 +f 526/781/15 532/760/15 531/779/15 +f 521/782/31 534/783/31 536/784/31 +f 570/785/5 581/786/5 582/787/5 +f 572/788/19 584/789/19 583/790/19 +f 559/791/30 562/792/30 564/793/30 +f 524/794/15 536/795/15 535/776/15 +f 569/796/13 582/787/13 584/797/13 +f 574/798/19 580/799/19 579/800/19 +f 573/801/12 579/800/12 577/802/12 +f 522/803/16 533/777/16 534/783/16 +f 571/804/29 583/790/29 581/786/29 +f 576/805/5 577/806/5 578/807/5 +f 610/808/16 599/809/16 616/810/16 +f 603/811/3 585/812/3 601/813/3 +f 612/814/19 594/815/19 610/816/19 +f 607/817/19 587/818/19 605/819/19 +f 613/820/3 596/821/3 615/822/3 +f 602/823/4 589/824/4 604/825/4 +f 609/826/5 598/827/5 611/828/5 +f 605/829/17 586/830/17 603/831/17 +f 606/832/5 591/833/5 608/834/5 +f 616/810/4 600/835/4 614/836/4 +f 601/837/15 592/838/15 606/839/15 +f 615/822/17 593/840/17 612/814/17 +f 608/841/18 590/842/18 602/843/18 +f 611/828/15 595/844/15 613/820/15 +f 604/845/16 588/846/16 607/847/16 +f 614/836/18 597/848/18 609/826/18 +f 586/830/2 597/848/2 600/835/2 +f 592/838/2 599/809/2 594/849/2 +f 590/842/2 593/840/2 596/821/2 +f 598/827/2 589/850/2 595/844/2 +f 589/824/2 596/821/2 595/844/2 +f 591/833/2 594/815/2 593/840/2 +f 585/812/2 600/835/2 599/809/2 +f 587/818/2 598/827/2 597/848/2 +f 609/826/1 603/851/1 614/836/1 +f 616/810/1 606/852/1 610/808/1 +f 612/814/1 602/853/1 615/822/1 +f 604/854/1 611/828/1 613/820/1 +f 615/822/1 604/855/1 613/820/1 +f 610/816/1 608/856/1 612/814/1 +f 614/836/1 601/857/1 616/810/1 +f 611/828/1 605/858/1 609/826/1 +f 575/859/28 578/807/28 580/799/28 +f 560/860/4 561/861/4 562/792/4 +f 555/862/27 567/863/27 565/864/27 +f 557/865/9 563/866/9 561/867/9 +f 558/868/3 564/793/3 563/866/3 +f 553/869/8 566/870/8 568/871/8 +f 556/872/3 568/873/3 567/863/3 +f 554/874/4 565/864/4 566/870/4 +f 655/875/2 664/876/2 663/877/2 +f 654/878/2 661/879/2 653/880/2 +f 652/881/2 659/882/2 651/883/2 +f 650/884/2 657/885/2 649/886/2 +f 656/887/2 657/888/2 664/889/2 +f 655/890/2 662/891/2 654/892/2 +f 653/893/2 660/894/2 652/895/2 +f 650/896/2 659/897/2 658/898/2 +f 1582/899/2 1589/900/2 1581/901/2 +f 669/902/2 671/903/2 666/904/2 +f 1583/905/2 1592/906/2 1591/907/2 +f 1578/908/2 1585/909/2 1577/910/2 +f 1580/911/2 1589/900/2 1588/912/2 +f 1577/913/2 1592/906/2 1584/914/2 +f 1580/911/2 1587/915/2 1579/916/2 +f 1582/899/2 1591/907/2 1590/917/2 +f 1578/908/2 1587/915/2 1586/918/2 +f 16/30/18 889/919/18 11/28/18 +f 15/32/19 891/920/19 13/27/19 +f 14/34/5 894/921/5 16/30/5 +f 12/36/15 892/922/15 14/34/15 +f 9/39/16 893/923/16 15/37/16 +f 10/25/3 890/924/3 12/36/3 +f 11/28/4 887/925/4 9/39/4 +f 13/27/17 888/926/17 10/25/17 +f 898/927/2 900/928/2 902/929/2 +f 906/930/1 907/931/1 904/932/1 +f 914/933/2 916/934/2 918/935/2 +f 922/936/1 923/937/1 920/938/1 +f 1531/939/1 1538/940/1 1530/941/1 +f 1533/942/1 1540/943/1 1532/944/1 +f 1535/945/1 1542/946/1 1534/947/1 +f 1529/948/1 1544/949/1 1536/950/1 +f 1529/951/1 1538/940/1 1537/952/1 +f 1531/953/1 1540/943/1 1539/954/1 +f 1534/955/1 1541/956/1 1533/957/1 +f 1535/958/1 1544/949/1 1543/959/1 +f 1602/960/2 51/961/2 52/962/2 +f 51/961/2 1601/963/2 54/964/2 +f 49/965/2 1602/960/2 52/962/2 +f 1601/963/2 1603/92/2 1605/966/2 +f 1601/963/2 53/967/2 54/964/2 +f 1603/92/2 56/968/2 1605/966/2 +f 1602/960/2 50/90/2 1603/92/2 +f 53/967/2 1605/966/2 56/968/2 +f 53/59/4 1604/58/4 54/104/4 +f 3/1/1 4/195/1 2/2/1 +f 6/4/2 8/216/2 7/5/2 +f 70/7/3 69/969/3 65/8/3 +f 65/10/3 69/115/3 72/11/3 +f 72/13/3 71/970/3 67/14/3 +f 67/16/3 71/112/3 70/17/3 +f 86/19/4 85/971/4 81/20/4 +f 20/22/5 28/54/5 27/23/5 +f 10/25/6 21/972/6 24/26/6 +f 11/28/7 17/973/7 20/29/7 +f 13/27/8 24/974/8 23/31/8 +f 16/30/9 20/975/9 19/33/9 +f 14/34/10 19/976/10 22/35/10 +f 15/37/11 23/977/11 18/38/11 +f 12/36/12 22/978/12 21/40/12 +f 9/39/13 18/979/13 17/41/13 +f 29/42/14 45/980/14 48/43/14 +f 19/24/15 27/23/15 30/45/15 +f 23/47/16 31/67/16 26/48/16 +f 22/46/3 30/45/3 29/42/3 +f 18/49/4 26/48/4 25/51/4 +f 21/50/17 29/42/17 32/44/17 +f 17/52/18 25/51/18 28/54/18 +f 24/53/19 32/44/19 31/55/19 +f 37/57/4 38/981/4 1604/58/4 +f 37/60/2 45/69/2 46/61/2 +f 25/51/20 41/982/20 44/63/20 +f 32/44/21 48/86/21 47/64/21 +f 28/54/22 44/75/22 43/65/22 +f 27/23/23 43/72/23 46/66/23 +f 31/67/24 47/83/24 42/68/24 +f 30/45/25 46/61/25 45/69/25 +f 26/48/26 42/80/26 41/70/26 +f 38/71/2 46/66/2 43/72/2 +f 35/74/2 43/65/2 44/75/2 +f 44/63/2 41/982/2 33/77/2 +f 33/79/2 41/70/2 42/80/2 +f 34/82/2 42/68/2 47/83/2 +f 39/85/2 47/64/2 48/86/2 +f 48/43/2 45/980/2 37/88/2 +f 34/93/3 50/106/3 49/94/3 +f 37/57/18 53/59/18 56/96/18 +f 33/95/17 49/94/17 52/98/17 +f 40/97/5 56/96/5 55/100/5 +f 36/99/19 52/98/19 51/102/19 +f 1604/58/16 38/981/16 35/103/16 +f 35/103/16 51/102/16 1604/58/16 +f 39/105/15 55/983/15 50/106/15 +f 58/107/5 67/16/5 66/18/5 +f 59/109/19 65/10/19 68/12/19 +f 61/111/19 70/17/19 71/112/19 +f 64/114/5 72/11/5 69/115/5 +f 61/111/3 62/113/3 64/114/3 +f 62/113/1 71/970/1 72/13/1 +f 63/116/2 69/969/2 70/7/2 +f 60/117/2 68/15/2 67/14/2 +f 57/119/1 66/9/1 65/8/1 +f 81/121/4 85/138/4 88/122/4 +f 88/124/4 87/984/4 83/125/4 +f 83/127/4 87/135/4 86/128/4 +f 74/130/19 83/127/19 82/129/19 +f 75/132/5 81/121/5 84/123/5 +f 77/134/5 86/128/5 87/135/5 +f 80/137/19 88/122/19 85/138/19 +f 77/134/4 78/136/4 80/137/4 +f 78/136/1 87/984/1 88/124/1 +f 79/139/2 85/971/2 86/19/2 +f 76/140/2 84/126/2 83/125/2 +f 73/142/1 82/21/1 81/20/1 +f 102/144/5 101/985/5 97/145/5 +f 97/147/5 101/166/5 104/148/5 +f 104/150/5 103/986/5 99/151/5 +f 103/153/5 102/987/5 98/154/5 +f 118/156/19 117/190/19 113/157/19 +f 90/159/4 99/155/4 98/154/4 +f 91/161/3 97/147/3 100/149/3 +f 93/163/3 102/987/3 103/153/3 +f 96/165/4 104/148/4 101/166/4 +f 93/163/5 94/164/5 96/165/5 +f 94/164/1 103/986/1 104/150/1 +f 95/167/2 101/985/2 102/144/2 +f 92/168/2 100/152/2 99/151/2 +f 89/170/1 98/146/1 97/145/1 +f 113/172/19 117/188/19 120/173/19 +f 120/175/19 119/988/19 115/176/19 +f 119/178/19 118/989/19 114/179/19 +f 106/181/3 115/180/3 114/179/3 +f 107/183/4 113/172/4 116/174/4 +f 109/185/4 118/989/4 119/178/4 +f 112/187/3 120/173/3 117/188/3 +f 109/185/19 110/186/19 112/187/19 +f 110/186/1 119/988/1 120/175/1 +f 109/185/2 111/189/2 117/190/2 +f 108/191/2 116/177/2 115/176/2 +f 105/193/1 114/158/1 113/157/1 +f 4/195/3 60/990/3 58/196/3 +f 2/197/19 108/991/19 106/198/19 +f 1/200/4 76/992/4 74/201/4 +f 3/203/5 92/993/5 90/204/5 +f 89/206/5 91/220/5 7/207/5 +f 7/209/4 73/219/4 75/210/4 +f 105/212/19 107/218/19 6/213/19 +f 6/4/3 57/217/3 59/215/3 +f 57/217/3 6/4/3 2/2/3 +f 107/218/19 108/991/19 2/197/19 +f 105/212/19 5/214/19 1/199/19 +f 75/210/4 76/992/4 1/200/4 +f 73/219/4 7/209/4 3/202/4 +f 91/220/5 92/993/5 3/203/5 +f 89/206/5 8/208/5 4/205/5 +f 59/215/3 60/990/3 4/195/3 +f 136/221/1 134/283/1 123/222/1 +f 129/224/1 131/233/1 121/225/1 +f 133/227/1 135/272/1 127/228/1 +f 135/230/1 129/224/1 122/231/1 +f 131/233/1 136/221/1 124/234/1 +f 132/236/1 130/241/1 125/237/1 +f 123/239/1 134/283/1 132/236/1 +f 130/241/1 133/227/1 128/242/1 +f 139/244/2 147/263/2 148/245/2 +f 137/247/2 145/257/2 146/248/2 +f 143/250/2 151/271/2 152/251/2 +f 138/253/2 146/248/2 151/254/2 +f 140/256/2 148/245/2 145/257/2 +f 141/259/2 149/266/2 150/260/2 +f 142/262/2 150/260/2 147/263/2 +f 144/265/2 152/251/2 149/266/2 +f 203/268/4 215/994/4 214/269/4 +f 135/230/16 151/254/16 146/248/16 +f 133/227/19 152/251/19 151/271/19 +f 213/273/3 216/995/3 201/274/3 +f 131/233/18 145/257/18 148/245/18 +f 216/276/8 215/994/8 203/268/8 +f 206/278/3 211/282/3 210/279/3 +f 208/281/9 212/996/9 211/282/9 +f 134/283/15 147/263/15 150/260/15 +f 214/269/27 213/273/27 202/275/27 +f 129/224/4 146/248/4 145/257/4 +f 130/241/17 149/266/17 152/251/17 +f 209/284/4 212/997/4 208/285/4 +f 136/221/5 148/245/5 147/263/5 +f 194/287/28 193/341/28 191/288/28 +f 132/236/3 150/260/3 149/266/3 +f 158/290/1 162/998/1 164/291/1 +f 155/293/1 166/999/1 168/294/1 +f 159/296/1 163/1000/1 161/297/1 +f 154/299/1 167/1001/1 165/300/1 +f 165/302/1 162/1002/1 158/290/1 +f 157/298/1 161/1003/1 167/303/1 +f 153/295/1 168/1004/1 163/304/1 +f 160/292/1 164/1005/1 166/306/1 +f 182/307/2 181/1006/2 171/308/2 +f 184/310/2 183/1007/2 169/311/2 +f 178/313/2 177/1008/2 175/314/2 +f 180/316/2 179/1009/2 173/317/2 +f 171/308/2 181/325/2 180/319/2 +f 179/320/2 178/1010/2 176/315/2 +f 177/321/2 184/1011/2 170/312/2 +f 183/323/2 182/1012/2 172/309/2 +f 155/293/18 169/311/18 172/309/18 +f 165/324/16 180/319/16 181/325/16 +f 158/290/15 171/308/15 174/318/15 +f 161/327/18 178/1010/18 179/320/18 +f 154/299/17 173/317/17 176/315/17 +f 168/329/15 184/1011/15 177/321/15 +f 153/295/4 170/312/4 169/311/4 +f 163/331/5 177/1008/5 178/313/5 +f 164/333/17 182/1012/17 183/323/17 +f 160/292/5 172/309/5 171/308/5 +f 167/335/4 179/1009/4 180/316/4 +f 156/301/3 174/318/3 173/317/3 +f 162/337/19 181/1006/19 182/307/19 +f 157/298/19 176/315/19 175/314/19 +f 166/339/3 183/1007/3 184/310/3 +f 159/305/16 175/322/16 170/312/16 +f 193/341/5 196/1013/5 192/342/5 +f 198/343/29 197/358/29 186/344/29 +f 235/346/16 247/1014/16 246/347/16 +f 196/349/12 195/1015/12 190/350/12 +f 190/350/19 195/1015/19 194/287/19 +f 200/352/13 199/1016/13 187/353/13 +f 234/355/15 245/1017/15 248/356/15 +f 210/279/30 209/284/30 207/286/30 +f 197/358/19 200/1018/19 185/359/19 +f 187/353/5 199/1016/5 198/343/5 +f 248/360/31 247/1014/31 235/346/31 +f 243/362/15 242/384/15 237/363/15 +f 244/365/32 243/362/32 238/364/32 +f 246/347/33 245/1017/33 234/355/33 +f 239/367/16 241/1019/16 244/368/16 +f 226/370/34 225/1020/34 223/371/34 +f 223/371/18 225/1020/18 228/373/18 +f 230/375/35 229/1021/35 218/376/35 +f 228/378/36 227/1022/36 222/379/36 +f 222/379/17 227/1022/17 226/370/17 +f 232/381/37 231/1023/37 219/382/37 +f 242/384/38 241/1019/38 239/367/38 +f 218/376/17 229/1021/17 232/385/17 +f 219/382/18 231/1023/18 230/375/18 +f 258/387/15 263/445/15 255/388/15 +f 263/390/5 264/446/5 253/391/5 +f 260/393/17 257/451/17 251/394/17 +f 262/396/16 259/449/16 254/397/16 +f 257/399/3 258/444/3 249/400/3 +f 264/402/18 261/447/18 250/403/18 +f 259/405/19 260/450/19 256/406/19 +f 261/408/4 262/448/4 252/409/4 +f 266/411/1 265/442/1 255/412/1 +f 270/414/1 269/417/1 250/415/1 +f 269/417/1 266/411/1 253/418/1 +f 267/420/1 268/423/1 254/421/1 +f 268/423/1 270/414/1 252/424/1 +f 271/426/1 272/429/1 251/427/1 +f 272/429/1 267/420/1 256/430/1 +f 255/432/1 265/435/1 271/426/1 +f 273/434/16 279/438/16 271/426/16 +f 278/436/3 277/443/3 269/417/3 +f 276/437/15 278/436/15 270/414/15 +f 279/438/4 280/439/4 272/429/4 +f 280/439/18 275/440/18 267/420/18 +f 275/440/5 276/437/5 268/423/5 +f 274/441/19 273/1024/19 265/442/19 +f 277/443/17 274/441/17 266/411/17 +f 257/399/2 280/439/2 279/438/2 +f 279/438/2 273/434/2 263/445/2 +f 263/390/2 273/1024/2 274/441/2 +f 264/402/2 274/441/2 277/443/2 +f 261/408/2 277/443/2 278/436/2 +f 262/396/2 278/436/2 276/437/2 +f 259/405/2 276/437/2 275/440/2 +f 260/393/2 275/440/2 280/439/2 +f 295/452/2 296/1025/2 293/453/2 +f 287/455/2 288/1026/2 285/456/2 +f 284/458/3 288/1027/3 287/459/3 +f 281/461/4 286/457/4 285/456/4 +f 283/462/5 285/456/5 288/463/5 +f 282/460/19 287/459/19 286/457/19 +f 292/465/4 296/1028/4 295/466/4 +f 289/468/3 294/454/3 293/453/3 +f 291/469/19 293/453/19 296/470/19 +f 290/467/5 295/466/5 294/454/5 +f 311/472/2 312/1029/2 309/473/2 +f 302/475/2 303/1030/2 304/476/2 +f 300/478/5 304/1031/5 303/479/5 +f 297/481/19 302/475/19 301/477/19 +f 299/482/4 301/477/4 304/483/4 +f 298/480/3 303/479/3 302/475/3 +f 308/485/19 312/1032/19 311/486/19 +f 305/488/5 310/474/5 309/473/5 +f 307/489/3 309/473/3 312/490/3 +f 306/487/4 311/486/4 310/474/4 +f 327/492/2 328/1033/2 325/493/2 +f 319/495/2 320/1034/2 317/496/2 +f 316/498/15 320/1035/15 319/499/15 +f 313/501/16 318/497/16 317/496/16 +f 315/502/18 317/496/18 320/503/18 +f 314/500/17 319/499/17 318/497/17 +f 324/505/16 328/1036/16 327/506/16 +f 321/508/15 326/494/15 325/493/15 +f 323/509/17 325/493/17 328/510/17 +f 322/507/18 327/506/18 326/494/18 +f 343/512/2 344/1037/2 341/513/2 +f 334/515/2 335/1038/2 336/516/2 +f 332/518/18 336/1039/18 335/519/18 +f 329/521/17 334/515/17 333/517/17 +f 331/522/16 333/517/16 336/523/16 +f 330/520/15 335/519/15 334/515/15 +f 340/525/17 344/1040/17 343/526/17 +f 337/528/18 342/514/18 341/513/18 +f 339/529/15 341/513/15 344/530/15 +f 338/527/16 343/526/16 342/514/16 +f 351/532/2 352/1041/2 349/533/2 +f 348/535/39 352/1042/39 351/536/39 +f 345/538/40 350/534/40 349/533/40 +f 347/539/41 349/533/41 352/540/41 +f 346/537/42 351/536/42 350/534/42 +f 359/542/2 360/1043/2 357/543/2 +f 356/545/40 360/1044/40 359/546/40 +f 353/548/39 358/544/39 357/543/39 +f 355/549/42 357/543/42 360/550/42 +f 354/547/41 359/546/41 358/544/41 +f 367/552/2 368/1045/2 365/553/2 +f 364/555/41 368/1046/41 367/556/41 +f 361/558/42 366/554/42 365/553/42 +f 363/559/40 365/553/40 368/560/40 +f 362/557/39 367/556/39 366/554/39 +f 375/562/2 376/1047/2 373/563/2 +f 372/565/42 376/1048/42 375/566/42 +f 369/568/41 374/564/41 373/563/41 +f 371/569/39 373/563/39 376/570/39 +f 370/567/40 375/566/40 374/564/40 +f 382/572/2 383/1049/2 384/573/2 +f 380/575/43 384/1050/43 383/576/43 +f 377/578/44 382/572/44 381/574/44 +f 379/579/45 381/574/45 384/580/45 +f 378/577/46 383/576/46 382/572/46 +f 390/582/2 391/1051/2 392/583/2 +f 388/585/44 392/1052/44 391/586/44 +f 385/588/43 390/582/43 389/584/43 +f 387/589/46 389/584/46 392/590/46 +f 386/587/45 391/586/45 390/582/45 +f 398/592/2 399/1053/2 400/593/2 +f 396/595/45 400/1054/45 399/596/45 +f 393/598/46 398/592/46 397/594/46 +f 395/599/44 397/594/44 400/600/44 +f 394/597/43 399/596/43 398/592/43 +f 407/602/2 408/1055/2 405/603/2 +f 404/605/46 408/1056/46 407/606/46 +f 401/608/45 406/604/45 405/603/45 +f 403/609/43 405/603/43 408/610/43 +f 402/607/44 407/606/44 406/604/44 +f 410/612/4 411/615/4 409/613/4 +f 411/615/47 414/1057/47 413/616/47 +f 416/617/3 417/620/3 415/618/3 +f 417/620/48 420/1058/48 419/621/48 +f 422/622/19 423/625/19 421/623/19 +f 423/625/49 426/1059/49 425/626/49 +f 428/627/5 429/630/5 427/628/5 +f 429/630/50 432/1060/50 431/631/50 +f 434/632/16 435/635/16 433/633/16 +f 435/635/51 438/1061/51 437/636/51 +f 440/637/15 441/640/15 439/638/15 +f 441/640/52 444/1062/52 443/641/52 +f 446/642/17 447/645/17 445/643/17 +f 447/645/53 450/1063/53 449/646/53 +f 452/647/18 453/650/18 451/648/18 +f 453/650/54 456/1064/54 455/651/54 +f 472/652/1 470/701/1 459/653/1 +f 465/655/1 467/664/1 457/656/1 +f 469/658/1 471/700/1 463/659/1 +f 471/661/1 465/655/1 458/662/1 +f 467/664/1 472/652/1 460/665/1 +f 468/667/1 466/672/1 461/668/1 +f 459/670/1 470/701/1 468/667/1 +f 466/672/1 469/658/1 464/673/1 +f 475/675/2 483/694/2 484/676/2 +f 473/678/2 481/688/2 482/679/2 +f 479/681/2 487/699/2 488/682/2 +f 474/684/2 482/679/2 487/685/2 +f 476/687/2 484/676/2 481/688/2 +f 477/690/2 485/697/2 486/691/2 +f 478/693/2 486/691/2 483/694/2 +f 480/696/2 488/682/2 485/697/2 +f 471/661/16 487/685/16 482/679/16 +f 469/658/19 488/682/19 487/699/19 +f 467/664/18 481/688/18 484/676/18 +f 470/701/15 483/694/15 486/691/15 +f 465/655/4 482/679/4 481/688/4 +f 466/672/17 485/697/17 488/682/17 +f 472/652/5 484/676/5 483/694/5 +f 468/667/3 486/691/3 485/697/3 +f 509/702/3 491/713/3 492/703/3 +f 505/705/5 493/714/5 494/706/5 +f 511/704/17 492/703/17 489/708/17 +f 512/710/4 495/718/4 496/711/4 +f 507/707/15 494/706/15 491/713/15 +f 510/712/18 496/711/18 493/714/18 +f 508/709/19 489/708/19 490/715/19 +f 506/717/16 490/728/16 495/718/16 +f 497/719/2 489/708/2 492/703/2 +f 499/721/2 491/713/2 494/706/2 +f 500/723/2 492/703/2 491/713/2 +f 501/725/2 493/714/2 496/711/2 +f 503/727/2 495/718/2 490/728/2 +f 498/730/2 490/715/2 489/708/2 +f 504/732/2 496/711/2 495/718/2 +f 502/734/2 494/706/2 493/714/2 +f 511/704/1 508/709/1 513/736/1 +f 518/738/1 507/707/1 509/702/1 +f 509/702/1 511/704/1 516/740/1 +f 510/712/1 505/705/1 517/742/1 +f 506/717/1 512/710/1 519/744/1 +f 508/709/1 506/716/1 514/746/1 +f 512/710/1 510/712/1 520/748/1 +f 505/705/1 507/707/1 518/750/1 +f 538/752/18 539/768/18 549/753/18 +f 540/755/17 537/1065/17 552/756/17 +f 527/758/38 528/773/38 530/759/38 +f 537/761/37 538/752/37 550/754/37 +f 542/763/17 543/772/17 548/764/17 +f 541/766/36 542/763/36 547/765/36 +f 539/768/35 540/755/35 551/757/35 +f 544/769/18 541/1066/18 545/770/18 +f 543/772/34 544/769/34 546/771/34 +f 528/773/16 525/1067/16 529/774/16 +f 523/775/33 524/794/33 535/776/33 +f 525/778/32 526/781/32 531/779/32 +f 526/781/15 527/758/15 532/760/15 +f 521/782/31 522/803/31 534/783/31 +f 570/785/5 571/804/5 581/786/5 +f 572/788/19 569/1068/19 584/789/19 +f 559/791/30 560/860/30 562/792/30 +f 524/794/15 521/1069/15 536/795/15 +f 569/796/13 570/785/13 582/787/13 +f 574/798/19 575/859/19 580/799/19 +f 573/801/12 574/798/12 579/800/12 +f 522/803/16 523/775/16 533/777/16 +f 571/804/29 572/788/29 583/790/29 +f 576/805/5 573/1070/5 577/806/5 +f 610/808/16 594/849/16 599/809/16 +f 603/811/3 586/1071/3 585/812/3 +f 612/814/19 593/840/19 594/815/19 +f 607/817/19 588/1072/19 587/818/19 +f 613/820/3 595/844/3 596/821/3 +f 602/823/4 590/1073/4 589/824/4 +f 609/826/5 597/848/5 598/827/5 +f 605/829/17 587/1074/17 586/830/17 +f 606/832/5 592/1075/5 591/833/5 +f 616/810/4 599/809/4 600/835/4 +f 601/837/15 585/1076/15 592/838/15 +f 615/822/17 596/821/17 593/840/17 +f 608/841/18 591/1077/18 590/842/18 +f 611/828/15 598/827/15 595/844/15 +f 604/845/16 589/850/16 588/846/16 +f 614/836/18 600/835/18 597/848/18 +f 586/830/2 587/1074/2 597/848/2 +f 592/838/2 585/1076/2 599/809/2 +f 590/842/2 591/1077/2 593/840/2 +f 598/827/2 588/846/2 589/850/2 +f 589/824/2 590/1073/2 596/821/2 +f 591/833/2 592/1075/2 594/815/2 +f 585/812/2 586/1071/2 600/835/2 +f 587/818/2 588/1072/2 598/827/2 +f 609/826/1 605/1078/1 603/851/1 +f 616/810/1 601/1079/1 606/852/1 +f 612/814/1 608/1080/1 602/853/1 +f 604/854/1 607/1081/1 611/828/1 +f 615/822/1 602/1082/1 604/855/1 +f 610/816/1 606/1083/1 608/856/1 +f 614/836/1 603/1084/1 601/857/1 +f 611/828/1 607/1085/1 605/858/1 +f 575/859/28 576/805/28 578/807/28 +f 560/860/4 557/1086/4 561/861/4 +f 555/862/27 556/872/27 567/863/27 +f 557/865/9 558/868/9 563/866/9 +f 558/868/3 559/791/3 564/793/3 +f 553/869/8 554/874/8 566/870/8 +f 556/872/3 553/1087/3 568/873/3 +f 554/874/4 555/862/4 565/864/4 +f 655/875/2 656/1088/2 664/876/2 +f 654/878/2 662/1089/2 661/879/2 +f 652/881/2 660/1090/2 659/882/2 +f 650/884/2 658/1091/2 657/885/2 +f 656/887/2 649/1092/2 657/888/2 +f 655/890/2 663/1093/2 662/891/2 +f 653/893/2 661/1094/2 660/894/2 +f 650/896/2 651/1095/2 659/897/2 +f 1582/899/2 1590/917/2 1589/900/2 +f 666/904/2 665/1096/2 669/902/2 +f 665/1096/2 667/1097/2 669/902/2 +f 667/1097/2 668/1098/2 669/902/2 +f 669/902/2 670/1099/2 671/903/2 +f 671/903/2 672/1100/2 666/904/2 +f 1583/905/2 1584/914/2 1592/906/2 +f 1578/908/2 1586/918/2 1585/909/2 +f 1580/911/2 1581/901/2 1589/900/2 +f 1577/913/2 1585/1101/2 1592/906/2 +f 1580/911/2 1588/912/2 1587/915/2 +f 1582/899/2 1583/905/2 1591/907/2 +f 1578/908/2 1579/916/2 1587/915/2 +f 16/30/18 894/921/18 889/919/18 +f 15/32/19 893/1102/19 891/920/19 +f 14/34/5 892/922/5 894/921/5 +f 12/36/15 890/924/15 892/922/15 +f 9/39/16 887/925/16 893/923/16 +f 10/25/3 888/926/3 890/924/3 +f 11/28/4 889/919/4 887/925/4 +f 13/27/17 891/920/17 888/926/17 +f 898/927/2 899/1103/2 900/928/2 +f 900/928/2 901/1104/2 902/929/2 +f 902/929/2 895/1105/2 898/927/2 +f 895/1105/2 896/1106/2 898/927/2 +f 896/1106/2 897/1107/2 898/927/2 +f 904/932/1 903/1108/1 909/1109/1 +f 909/1109/1 908/1110/1 904/932/1 +f 908/1110/1 910/1111/1 904/932/1 +f 910/1111/1 905/1112/1 904/932/1 +f 905/1112/1 906/930/1 904/932/1 +f 914/933/2 915/1113/2 916/934/2 +f 916/934/2 917/1114/2 918/935/2 +f 918/935/2 911/1115/2 914/933/2 +f 911/1115/2 912/1116/2 914/933/2 +f 912/1116/2 913/1117/2 914/933/2 +f 920/938/1 919/1118/1 925/1119/1 +f 925/1119/1 924/1120/1 920/938/1 +f 924/1120/1 926/1121/1 920/938/1 +f 926/1121/1 921/1122/1 920/938/1 +f 921/1122/1 922/936/1 920/938/1 +f 1531/939/1 1539/954/1 1538/940/1 +f 1533/942/1 1541/956/1 1540/943/1 +f 1535/945/1 1543/959/1 1542/946/1 +f 1529/948/1 1537/952/1 1544/949/1 +f 1529/951/1 1530/1123/1 1538/940/1 +f 1531/953/1 1532/1124/1 1540/943/1 +f 1534/955/1 1542/1125/1 1541/956/1 +f 1535/958/1 1536/1126/1 1544/949/1 +f 1602/960/2 1601/963/2 51/961/2 +f 1601/963/2 1602/960/2 1603/92/2 +f 1601/963/2 1605/966/2 53/967/2 +f 1603/92/2 55/91/2 56/968/2 +f 1602/960/2 49/965/2 50/90/2 +s 1 +f 631/1127/3 622/1128/17 623/1129/3 +f 629/1130/19 620/1131/16 621/1132/19 +f 627/1133/4 618/1134/18 619/1135/4 +f 632/1136/15 623/1129/3 624/1137/15 +f 630/1138/17 621/1132/19 622/1139/17 +f 628/1140/16 619/1135/4 620/1131/16 +f 626/1141/18 617/1142/5 618/1134/18 +f 625/1143/5 624/1137/15 617/1142/5 +f 639/1144/3 646/1145/17 638/1146/17 +f 637/1147/19 644/1148/16 636/1149/16 +f 635/1150/4 642/1151/18 634/1152/18 +f 640/1153/15 647/1154/3 639/1144/3 +f 638/1155/17 645/1156/19 637/1147/19 +f 636/1149/16 643/1157/4 635/1150/4 +f 634/1152/18 641/1158/5 633/1159/5 +f 633/1159/5 648/1160/15 640/1153/15 +f 1596/1161/2 1600/1162/2 1599/1163/2 +f 706/1164/55 676/1165/16 677/1166/19 +f 704/1167/56 674/1168/18 675/1169/4 +f 686/1170/57 730/1171/58 685/1172/13 +f 707/1173/59 677/1166/19 678/1174/17 +f 705/1175/60 675/1176/4 676/1165/16 +f 673/1177/5 708/1178/61 680/1179/15 +f 753/1180/62 766/1181/63 754/1182/64 +f 714/1183/28 754/1182/64 766/1181/63 +f 749/1184/65 714/1185/28 765/1186/66 +f 764/1187/67 749/1184/65 765/1186/66 +f 764/1187/67 751/1188/68 750/1189/69 +f 763/1190/70 737/1191/12 751/1188/68 +f 737/1191/12 768/1192/71 752/1193/72 +f 710/1194/73 673/1177/5 674/1168/18 +f 694/1195/74 719/1196/75 693/1197/29 +f 724/1198/76 694/1195/74 695/1199/77 +f 695/1199/77 723/1200/78 724/1198/76 +f 768/1192/71 753/1180/62 752/1193/72 +f 723/1201/78 685/1202/13 730/1203/58 +f 691/1204/79 722/1205/80 690/1206/81 +f 720/1207/82 691/1204/79 692/1208/83 +f 692/1208/83 719/1196/75 720/1207/82 +f 689/1209/84 698/1210/85 690/1206/81 +f 690/1206/81 699/1211/86 691/1212/79 +f 691/1212/79 700/1213/87 692/1214/83 +f 694/1215/74 702/1216/88 695/1217/77 +f 695/1217/77 703/1218/89 696/1219/90 +f 696/1219/90 697/1220/13 689/1221/84 +f 704/1222/56 698/1210/85 697/1223/13 +f 698/1210/85 706/1224/55 699/1225/86 +f 699/1225/86 707/1226/59 700/1227/87 +f 708/1228/61 702/1229/88 701/1230/91 +f 702/1229/88 710/1194/73 703/1218/89 +f 710/1194/73 697/1220/13 703/1218/89 +f 768/1192/71 755/1231/12 761/1232/92 +f 767/1233/93 761/1232/92 760/1234/94 +f 766/1235/63 760/1234/94 759/1236/95 +f 714/1237/28 758/1238/96 765/1239/66 +f 759/1236/95 714/1240/28 766/1235/63 +f 757/1241/97 765/1239/66 758/1238/96 +f 756/1242/98 764/1243/67 757/1241/97 +f 755/1231/12 763/1190/70 756/1242/98 +f 711/1244/99 755/1231/12 718/1245/100 +f 712/1246/101 761/1232/92 711/1244/99 +f 713/1247/102 760/1248/94 712/1246/101 +f 713/1247/102 714/1249/28 759/1250/95 +f 758/1251/96 714/1252/28 715/1253/103 +f 757/1254/97 715/1253/103 716/1255/104 +f 756/1242/98 716/1255/104 717/1256/105 +f 718/1245/100 756/1242/98 717/1256/105 +f 719/1196/75 727/1257/106 720/1207/82 +f 727/1257/106 721/1258/107 720/1207/82 +f 721/1258/107 729/1259/108 722/1260/80 +f 723/1201/78 731/1261/109 724/1262/76 +f 731/1261/109 725/1263/110 724/1262/76 +f 725/1263/110 726/1264/29 719/1196/75 +f 681/1265/111 727/1257/106 726/1264/29 +f 727/1257/106 683/1266/112 728/1267/113 +f 728/1267/113 684/1268/114 729/1269/108 +f 730/1171/58 687/1270/115 731/1271/109 +f 687/1270/115 732/1272/116 731/1271/109 +f 732/1272/116 681/1265/111 726/1264/29 +f 733/1273/117 742/1274/118 734/1275/119 +f 734/1275/119 743/1276/120 735/1277/121 +f 735/1277/121 744/1278/122 736/1279/123 +f 738/1280/124 737/1281/12 745/1282/125 +f 737/1281/12 736/1279/123 744/1278/122 +f 745/1282/125 739/1283/126 738/1280/124 +f 739/1283/126 747/1284/127 740/1285/128 +f 747/1284/127 733/1286/117 740/1285/128 +f 748/1287/129 742/1274/118 741/1288/28 +f 749/1184/65 743/1289/120 742/1274/118 +f 750/1290/69 744/1291/122 743/1289/120 +f 751/1292/68 737/1293/12 744/1291/122 +f 752/1294/72 745/1295/125 737/1293/12 +f 752/1294/72 746/1296/130 745/1295/125 +f 746/1296/130 754/1182/64 747/1284/127 +f 747/1284/127 748/1297/129 741/1298/28 +f 687/1299/115 711/1244/99 688/1300/131 +f 686/1301/57 712/1302/101 687/1299/115 +f 685/1303/13 713/1304/102 686/1301/57 +f 684/1305/114 714/1306/28 685/1307/13 +f 684/1305/114 716/1308/104 715/1309/103 +f 682/1310/132 716/1308/104 683/1311/112 +f 681/1265/111 717/1256/105 682/1310/132 +f 711/1244/99 681/1265/111 688/1300/131 +f 817/1312/108 772/1313/114 773/1314/13 +f 841/1315/62 854/1316/63 842/1317/64 +f 802/1318/28 842/1317/64 854/1316/63 +f 837/1319/65 802/1320/28 853/1321/66 +f 852/1322/67 837/1319/65 853/1321/66 +f 852/1322/67 839/1323/68 838/1324/69 +f 782/1325/74 807/1326/75 781/1327/29 +f 812/1328/76 782/1325/74 783/1329/77 +f 783/1329/77 811/1330/78 812/1328/76 +f 856/1331/71 841/1315/62 840/1332/72 +f 773/1333/13 810/1334/80 817/1335/108 +f 779/1336/79 810/1337/80 778/1338/81 +f 808/1339/82 779/1336/79 780/1340/83 +f 780/1340/83 807/1326/75 808/1339/82 +f 785/1341/13 778/1338/81 777/1342/84 +f 778/1338/81 787/1343/86 779/1344/79 +f 779/1344/79 788/1345/87 780/1346/83 +f 782/1347/74 781/1348/29 789/1349/91 +f 796/1350/61 789/1351/91 781/1352/29 +f 789/1349/91 783/1353/77 782/1347/74 +f 783/1353/77 791/1354/89 784/1355/90 +f 784/1355/90 785/1356/13 777/1357/84 +f 792/1358/56 786/1359/85 785/1341/13 +f 786/1359/85 794/1360/55 787/1361/86 +f 794/1360/55 788/1362/87 787/1361/86 +f 788/1362/87 795/1363/59 781/1352/29 +f 738/1364/124 781/1365/29 737/1366/12 +f 796/1350/61 790/1367/88 789/1351/91 +f 790/1367/88 798/1368/73 791/1354/89 +f 791/1354/89 792/1369/56 785/1356/13 +f 849/1370/92 850/1371/133 843/1372/12 +f 848/1373/94 856/1331/71 849/1370/92 +f 847/1374/95 855/1375/93 848/1373/94 +f 802/1376/28 846/1377/96 853/1378/66 +f 847/1374/95 802/1379/28 854/1380/63 +f 845/1381/97 853/1378/66 846/1377/96 +f 844/1382/98 852/1383/67 845/1381/97 +f 850/1371/133 844/1382/98 843/1372/12 +f 849/1370/92 806/1384/100 799/1385/99 +f 848/1386/94 799/1385/99 800/1387/101 +f 801/1388/102 848/1386/94 800/1387/101 +f 801/1388/102 802/1389/28 847/1390/95 +f 846/1391/96 802/1392/28 803/1393/103 +f 845/1394/97 803/1393/103 804/1395/104 +f 844/1382/98 804/1395/104 805/1396/105 +f 806/1384/100 844/1382/98 805/1396/105 +f 807/1326/75 815/1397/106 808/1339/82 +f 815/1397/106 809/1398/107 808/1339/82 +f 809/1398/107 817/1335/108 810/1334/80 +f 818/1399/58 773/1400/13 774/1401/57 +f 818/1402/58 812/1403/76 811/1404/78 +f 819/1405/109 813/1406/110 812/1403/76 +f 820/1407/116 807/1326/75 813/1406/110 +f 769/1408/111 815/1397/106 814/1409/29 +f 815/1397/106 771/1410/112 816/1411/113 +f 816/1411/113 772/1313/114 817/1312/108 +f 818/1402/58 811/1404/78 773/1412/13 +f 774/1401/57 819/1413/109 818/1399/58 +f 819/1413/109 776/1414/131 820/1407/116 +f 820/1407/116 769/1408/111 814/1409/29 +f 821/1415/117 830/1416/118 822/1417/119 +f 830/1416/118 823/1418/121 822/1417/119 +f 823/1418/121 832/1419/122 824/1420/123 +f 825/1421/12 824/1420/123 832/1419/122 +f 826/1422/124 834/1423/130 827/1424/126 +f 834/1423/130 828/1425/128 827/1424/126 +f 835/1426/127 821/1427/117 828/1425/128 +f 836/1428/129 830/1416/118 829/1429/28 +f 837/1319/65 831/1430/120 830/1416/118 +f 838/1431/69 832/1432/122 831/1430/120 +f 833/1433/125 841/1434/62 834/1435/130 +f 834/1435/130 842/1317/64 835/1426/127 +f 842/1317/64 829/1436/28 835/1426/127 +f 775/1437/115 799/1385/99 776/1414/131 +f 774/1438/57 800/1439/101 775/1437/115 +f 773/1440/13 801/1441/102 774/1438/57 +f 772/1442/114 802/1443/28 773/1444/13 +f 772/1442/114 804/1445/104 803/1446/103 +f 770/1447/132 804/1445/104 771/1448/112 +f 769/1408/111 805/1396/105 770/1447/132 +f 799/1385/99 769/1408/111 776/1414/131 +f 878/1449/71 865/1450/12 871/1451/92 +f 877/1452/93 871/1451/92 870/1453/94 +f 869/1454/95 877/1452/93 870/1453/94 +f 883/1455/1 876/1456/63 860/1457/28 +f 875/1458/66 883/1459/1 860/1460/28 +f 874/1461/67 868/1462/96 867/1463/97 +f 873/1464/70 867/1463/97 866/1465/98 +f 865/1450/12 873/1464/70 866/1465/98 +f 871/1451/92 864/1466/100 857/1467/99 +f 870/1468/94 857/1467/99 858/1469/101 +f 859/1470/102 870/1468/94 858/1469/101 +f 859/1470/102 860/1471/28 869/1472/95 +f 868/1473/96 860/1474/28 861/1475/103 +f 867/1476/97 861/1475/103 862/1477/104 +f 866/1465/98 862/1477/104 863/1478/105 +f 864/1466/100 866/1465/98 863/1478/105 +f 823/1479/121 861/1480/103 822/1417/119 +f 822/1417/119 860/1481/28 821/1415/117 +f 821/1427/117 859/1482/102 828/1425/128 +f 828/1425/128 858/1483/101 827/1484/126 +f 827/1484/126 857/1467/99 826/1485/124 +f 857/1467/99 825/1486/12 826/1485/124 +f 825/1486/12 863/1478/105 824/1487/123 +f 824/1487/123 862/1488/104 823/1479/121 +f 873/1464/70 881/1489/19 874/1490/67 +f 877/1491/93 886/1492/9 878/1449/71 +f 874/1490/67 882/1493/30 875/1458/66 +f 878/1449/71 879/1494/2 872/1495/133 +f 872/1495/133 880/1496/8 873/1464/70 +f 869/1454/95 860/1497/28 876/1498/63 +f 860/1499/28 868/1462/96 875/1500/66 +f 876/1456/63 885/1501/5 877/1491/93 +f 794/1502/55 734/1275/119 735/1503/121 +f 793/1504/60 733/1273/117 734/1275/119 +f 733/1286/117 798/1505/73 740/1285/128 +f 798/1505/73 739/1506/126 740/1285/128 +f 797/1507/134 738/1364/124 739/1506/126 +f 781/1365/29 736/1508/123 737/1366/12 +f 781/1348/29 780/1346/83 788/1345/87 +f 795/1509/59 735/1503/121 736/1508/123 +f 1545/1510/135 1560/1511/136 1552/1512/136 +f 1552/1512/136 1559/1513/137 1551/1514/137 +f 1551/1514/137 1558/1515/138 1550/1516/138 +f 1550/1517/138 1557/1518/139 1549/1519/139 +f 1549/1519/139 1556/1520/140 1548/1521/140 +f 1548/1521/140 1555/1522/141 1547/1523/141 +f 1546/1524/142 1555/1525/141 1554/1526/142 +f 1546/1524/142 1553/1527/135 1545/1510/135 +f 935/1528/28 928/1529/119 927/1530/117 +f 928/1529/119 937/1531/120 929/1532/121 +f 937/1531/120 930/1533/123 929/1532/121 +f 932/1534/124 931/1535/12 939/1536/125 +f 931/1535/12 930/1533/123 938/1537/122 +f 932/1538/124 940/1539/130 933/1540/126 +f 940/1539/130 934/1541/128 933/1540/126 +f 941/1542/127 927/1530/117 934/1541/128 +f 935/1528/28 943/1543/65 936/1544/118 +f 943/1543/65 937/1545/120 936/1544/118 +f 944/1546/69 938/1547/122 937/1545/120 +f 938/1547/122 945/1548/68 931/1549/12 +f 939/1550/125 947/1551/62 940/1552/130 +f 940/1552/130 948/1553/64 941/1542/127 +f 941/1542/127 942/1554/129 935/1528/28 +f 954/1555/143 998/1556/144 953/1557/36 +f 1021/1558/145 1034/1559/146 1022/1560/147 +f 1034/1559/146 1016/1561/148 1022/1560/147 +f 1016/1562/148 1033/1563/149 1017/1564/150 +f 1032/1565/151 1017/1564/150 1033/1563/149 +f 1032/1565/151 1019/1566/152 1018/1567/153 +f 1031/1568/154 1005/1569/37 1019/1566/152 +f 1005/1569/37 1036/1570/155 1020/1571/156 +f 962/1572/157 987/1573/158 961/1574/34 +f 963/1575/159 993/1576/160 962/1572/157 +f 963/1575/159 991/1577/161 992/1578/162 +f 1036/1570/155 1021/1558/145 1020/1571/156 +f 997/1579/163 952/1580/164 953/1581/36 +f 958/1582/165 989/1583/166 990/1584/167 +f 960/1585/168 989/1583/166 959/1586/169 +f 960/1585/168 987/1573/158 988/1587/170 +f 957/1588/171 966/1589/172 958/1582/165 +f 966/1589/172 959/1590/169 958/1582/165 +f 959/1590/169 968/1591/173 960/1592/168 +f 962/1593/157 961/1594/34 969/1595/174 +f 961/1594/34 960/1592/168 968/1591/173 +f 962/1593/157 970/1596/175 963/1597/159 +f 970/1596/175 964/1598/176 963/1597/159 +f 971/1599/177 957/1600/171 964/1598/176 +f 965/1601/36 973/1602/178 966/1589/172 +f 966/1589/172 974/1603/179 967/1604/180 +f 967/1604/180 975/1605/181 968/1606/173 +f 976/1607/182 969/1608/174 961/1609/34 +f 929/1610/121 961/1611/34 928/1529/119 +f 969/1608/174 977/1612/183 970/1613/175 +f 977/1612/183 971/1599/177 970/1613/175 +f 971/1599/177 972/1614/184 965/1615/36 +f 1029/1616/185 1030/1617/186 1023/1618/37 +f 1028/1619/187 1036/1570/155 1029/1616/185 +f 1027/1620/188 1035/1621/189 1028/1619/187 +f 1026/1622/190 982/1623/35 983/1624/191 +f 982/1625/35 1026/1626/190 1033/1627/149 +f 1032/1628/151 1026/1626/190 1025/1629/192 +f 1031/1568/154 1025/1629/192 1024/1630/193 +f 1023/1618/37 1031/1568/154 1024/1630/193 +f 979/1631/194 1023/1618/37 986/1632/195 +f 1028/1633/187 979/1631/194 980/1634/196 +f 981/1635/197 1028/1633/187 980/1634/196 +f 981/1635/197 982/1636/35 1027/1637/188 +f 1034/1638/146 1027/1620/188 982/1639/35 +f 984/1640/198 1026/1622/190 983/1624/191 +f 985/1641/199 1025/1642/192 984/1640/198 +f 986/1632/195 1024/1630/193 985/1641/199 +f 987/1573/158 995/1643/200 988/1587/170 +f 988/1587/170 996/1644/201 989/1645/166 +f 989/1645/166 997/1646/163 990/1647/167 +f 964/1598/176 953/1648/36 991/1577/161 +f 953/1649/36 990/1647/167 997/1646/163 +f 998/1650/144 992/1651/162 991/1652/161 +f 999/1653/202 993/1576/160 992/1651/162 +f 993/1576/160 994/1654/34 987/1573/158 +f 949/1655/203 995/1643/200 994/1654/34 +f 995/1643/200 951/1656/204 996/1657/201 +f 951/1656/204 997/1579/163 996/1657/201 +f 990/1584/167 957/1588/171 958/1582/165 +f 998/1650/144 991/1652/161 953/1658/36 +f 998/1556/144 955/1659/205 999/1660/202 +f 955/1659/205 1000/1661/206 999/1660/202 +f 1000/1661/206 949/1655/203 994/1654/34 +f 1009/1662/35 1002/1663/207 1001/1664/208 +f 1010/1665/209 1003/1666/210 1002/1663/207 +f 1011/1667/211 1004/1668/212 1003/1666/210 +f 1020/1669/156 1013/1670/213 1005/1671/37 +f 1006/1672/214 1005/1673/37 1013/1674/213 +f 1013/1674/213 1007/1675/215 1006/1672/214 +f 1007/1675/215 1015/1676/216 1008/1677/217 +f 1015/1676/216 1001/1678/208 1008/1677/217 +f 1016/1562/148 1010/1665/209 1009/1662/35 +f 1017/1564/150 1011/1679/211 1010/1665/209 +f 1018/1680/153 1012/1681/218 1011/1679/211 +f 1012/1681/218 1019/1682/152 1005/1671/37 +f 1005/1673/37 1004/1668/212 1012/1683/218 +f 1020/1669/156 1014/1684/219 1013/1670/213 +f 1021/1685/145 1015/1676/216 1014/1684/219 +f 1015/1676/216 1016/1561/148 1009/1686/35 +f 955/1687/205 979/1631/194 956/1688/220 +f 954/1689/143 980/1690/196 955/1687/205 +f 953/1691/36 981/1692/197 954/1689/143 +f 952/1693/164 982/1694/35 953/1695/36 +f 952/1693/164 984/1696/198 983/1697/191 +f 950/1698/221 984/1696/198 951/1699/204 +f 949/1655/203 985/1641/199 950/1698/221 +f 979/1631/194 949/1655/203 956/1688/220 +f 973/1602/178 932/1700/124 933/1701/126 +f 932/1702/124 978/1703/222 931/1704/12 +f 978/1703/222 930/1705/123 931/1704/12 +f 977/1706/183 929/1610/121 930/1705/123 +f 961/1611/34 927/1530/117 928/1529/119 +f 968/1606/173 975/1605/181 961/1609/34 +f 975/1707/181 934/1541/128 927/1530/117 +f 974/1708/179 933/1701/126 934/1541/128 +f 947/1709/62 1043/1710/27 948/1553/64 +f 1005/1711/37 1048/1712/4 1004/1713/212 +f 942/1554/129 1039/1714/30 943/1543/65 +f 943/1543/65 1040/1715/19 944/1716/69 +f 946/1717/72 1044/1718/5 947/1709/62 +f 944/1716/69 1037/1719/8 945/1720/68 +f 948/1553/64 1042/1721/1 942/1554/129 +f 946/1722/72 939/1723/125 931/1549/12 +f 1002/1663/207 1045/1724/15 1001/1664/208 +f 1001/1678/208 1052/1725/3 1008/1677/217 +f 1006/1726/214 1049/1727/16 1005/1711/37 +f 1003/1728/210 1046/1729/5 1002/1663/207 +f 1008/1677/217 1051/1730/17 1007/1731/215 +f 1004/1713/212 1047/1732/18 1003/1728/210 +f 1007/1731/215 1050/1733/19 1006/1726/214 +f 1060/1734/4 1065/1735/18 1059/1736/18 +f 1058/1737/5 1061/1738/15 1057/1739/15 +f 1054/1740/19 1066/1741/17 1068/1742/19 +f 1059/1736/18 1062/1743/5 1058/1737/5 +f 1056/1744/3 1066/1741/17 1055/1745/17 +f 1053/1746/16 1064/1747/4 1060/1734/4 +f 1057/1739/15 1067/1748/3 1056/1744/3 +f 1053/1749/16 1068/1742/19 1063/1750/16 +f 694/1215/74 693/1751/29 701/1752/91 +f 708/1228/61 701/1230/91 693/1753/29 +f 693/1751/29 692/1214/83 700/1213/87 +f 700/1227/87 707/1226/59 693/1753/29 +f 693/1754/29 678/1174/17 679/1755/3 +f 680/1179/15 693/1754/29 679/1755/3 +f 729/1269/108 684/1268/114 685/1756/13 +f 729/1259/108 685/1757/13 722/1260/80 +f 685/1758/13 690/1206/81 722/1205/80 +f 696/1219/90 685/1759/13 723/1200/78 +f 784/1355/90 773/1760/13 811/1330/78 +f 773/1761/13 778/1338/81 810/1337/80 +f 832/1432/122 839/1762/68 825/1763/12 +f 826/1422/124 825/1421/12 833/1764/125 +f 833/1433/125 825/1763/12 840/1765/72 +f 825/1766/12 856/1331/71 840/1332/72 +f 851/1767/70 825/1766/12 839/1323/68 +f 931/1768/12 1037/1719/8 1038/1769/2 +f 931/1768/12 1041/1770/9 946/1771/72 +f 1102/1772/55 1072/1773/16 1073/1774/19 +f 1100/1775/56 1070/1776/18 1071/1777/4 +f 1082/1778/57 1126/1779/58 1081/1780/13 +f 1103/1781/59 1073/1774/19 1074/1782/17 +f 1101/1783/60 1071/1784/4 1072/1773/16 +f 1069/1785/5 1104/1786/61 1076/1787/15 +f 1149/1788/62 1162/1789/63 1150/1790/64 +f 1110/1791/28 1150/1790/64 1162/1789/63 +f 1145/1792/65 1110/1793/28 1161/1794/66 +f 1160/1795/67 1145/1792/65 1161/1794/66 +f 1160/1795/67 1147/1796/68 1146/1797/69 +f 1159/1798/70 1133/1799/12 1147/1796/68 +f 1133/1799/12 1164/1800/71 1148/1801/72 +f 1106/1802/73 1069/1785/5 1070/1776/18 +f 1090/1803/74 1115/1804/75 1089/1805/29 +f 1120/1806/76 1090/1803/74 1091/1807/77 +f 1091/1807/77 1119/1808/78 1120/1806/76 +f 1164/1800/71 1149/1788/62 1148/1801/72 +f 1119/1809/78 1081/1810/13 1126/1811/58 +f 1087/1812/79 1118/1813/80 1086/1814/81 +f 1116/1815/82 1087/1812/79 1088/1816/83 +f 1088/1816/83 1115/1804/75 1116/1815/82 +f 1085/1817/84 1094/1818/85 1086/1814/81 +f 1094/1818/85 1087/1819/79 1086/1814/81 +f 1095/1820/86 1088/1821/83 1087/1819/79 +f 1090/1822/74 1098/1823/88 1091/1824/77 +f 1091/1824/77 1099/1825/89 1092/1826/90 +f 1092/1826/90 1093/1827/13 1085/1828/84 +f 1093/1829/13 1101/1783/60 1094/1818/85 +f 1101/1783/60 1095/1830/86 1094/1818/85 +f 1095/1830/86 1103/1831/59 1096/1832/87 +f 1104/1833/61 1098/1834/88 1097/1835/91 +f 1105/1836/134 1099/1825/89 1098/1834/88 +f 1106/1802/73 1093/1827/13 1099/1825/89 +f 1164/1800/71 1151/1837/12 1157/1838/92 +f 1163/1839/93 1157/1838/92 1156/1840/94 +f 1162/1841/63 1156/1840/94 1155/1842/95 +f 1110/1843/28 1154/1844/96 1161/1845/66 +f 1155/1842/95 1110/1846/28 1162/1841/63 +f 1153/1847/97 1161/1845/66 1154/1844/96 +f 1152/1848/98 1160/1849/67 1153/1847/97 +f 1151/1837/12 1159/1798/70 1152/1848/98 +f 1157/1838/92 1114/1850/100 1107/1851/99 +f 1108/1852/101 1157/1838/92 1107/1851/99 +f 1109/1853/102 1156/1854/94 1108/1852/101 +f 1109/1853/102 1110/1855/28 1155/1856/95 +f 1154/1857/96 1110/1858/28 1111/1859/103 +f 1153/1860/97 1111/1859/103 1112/1861/104 +f 1152/1848/98 1112/1861/104 1113/1862/105 +f 1151/1837/12 1113/1862/105 1114/1850/100 +f 1122/1863/29 1116/1815/82 1115/1804/75 +f 1116/1815/82 1124/1864/113 1117/1865/107 +f 1124/1864/113 1118/1866/80 1117/1865/107 +f 1119/1809/78 1127/1867/109 1120/1868/76 +f 1127/1867/109 1121/1869/110 1120/1868/76 +f 1121/1869/110 1122/1863/29 1115/1804/75 +f 1077/1870/111 1123/1871/106 1122/1863/29 +f 1123/1871/106 1079/1872/112 1124/1873/113 +f 1124/1873/113 1080/1874/114 1125/1875/108 +f 1082/1778/57 1127/1876/109 1126/1779/58 +f 1083/1877/115 1128/1878/116 1127/1876/109 +f 1084/1879/131 1122/1863/29 1128/1878/116 +f 1129/1880/117 1138/1881/118 1130/1882/119 +f 1130/1882/119 1139/1883/120 1131/1884/121 +f 1131/1884/121 1140/1885/122 1132/1886/123 +f 1134/1887/124 1133/1888/12 1141/1889/125 +f 1133/1888/12 1132/1886/123 1140/1885/122 +f 1141/1889/125 1135/1890/126 1134/1887/124 +f 1142/1891/130 1136/1892/128 1135/1890/126 +f 1143/1893/127 1129/1894/117 1136/1892/128 +f 1144/1895/129 1138/1881/118 1137/1896/28 +f 1145/1792/65 1139/1897/120 1138/1881/118 +f 1139/1897/120 1147/1898/68 1140/1899/122 +f 1147/1898/68 1133/1900/12 1140/1899/122 +f 1148/1901/72 1141/1902/125 1133/1900/12 +f 1148/1901/72 1142/1903/130 1141/1902/125 +f 1142/1903/130 1150/1790/64 1143/1893/127 +f 1143/1893/127 1144/1904/129 1137/1905/28 +f 1083/1906/115 1107/1851/99 1084/1879/131 +f 1082/1907/57 1108/1908/101 1083/1906/115 +f 1081/1909/13 1109/1910/102 1082/1907/57 +f 1080/1911/114 1110/1912/28 1081/1913/13 +f 1080/1911/114 1112/1914/104 1111/1915/103 +f 1078/1916/132 1112/1914/104 1079/1917/112 +f 1077/1870/111 1113/1862/105 1078/1916/132 +f 1107/1851/99 1077/1870/111 1084/1879/131 +f 1213/1918/108 1168/1919/114 1169/1920/13 +f 1237/1921/62 1250/1922/63 1238/1923/64 +f 1198/1924/28 1238/1923/64 1250/1922/63 +f 1233/1925/65 1198/1926/28 1249/1927/66 +f 1248/1928/67 1233/1925/65 1249/1927/66 +f 1248/1928/67 1235/1929/68 1234/1930/69 +f 1178/1931/74 1203/1932/75 1177/1933/29 +f 1208/1934/76 1178/1931/74 1179/1935/77 +f 1179/1935/77 1207/1936/78 1208/1934/76 +f 1252/1937/71 1237/1921/62 1236/1938/72 +f 1169/1939/13 1206/1940/80 1213/1941/108 +f 1175/1942/79 1206/1943/80 1174/1944/81 +f 1204/1945/82 1175/1942/79 1176/1946/83 +f 1176/1946/83 1203/1932/75 1204/1945/82 +f 1181/1947/13 1174/1944/81 1173/1948/84 +f 1174/1944/81 1183/1949/86 1175/1950/79 +f 1175/1950/79 1184/1951/87 1176/1952/83 +f 1178/1953/74 1177/1954/29 1185/1955/91 +f 1192/1956/61 1185/1957/91 1177/1958/29 +f 1185/1955/91 1179/1959/77 1178/1953/74 +f 1186/1960/88 1180/1961/90 1179/1959/77 +f 1187/1962/89 1173/1963/84 1180/1961/90 +f 1181/1947/13 1189/1964/60 1182/1965/85 +f 1189/1964/60 1183/1966/86 1182/1965/85 +f 1190/1967/55 1184/1968/87 1183/1966/86 +f 1184/1968/87 1191/1969/59 1177/1958/29 +f 1134/1970/124 1177/1971/29 1133/1972/12 +f 1185/1957/91 1193/1973/134 1186/1974/88 +f 1193/1973/134 1187/1962/89 1186/1974/88 +f 1187/1962/89 1188/1975/56 1181/1976/13 +f 1245/1977/92 1246/1978/133 1239/1979/12 +f 1244/1980/94 1252/1937/71 1245/1977/92 +f 1250/1981/63 1244/1980/94 1243/1982/95 +f 1198/1983/28 1242/1984/96 1249/1985/66 +f 1243/1982/95 1198/1986/28 1250/1981/63 +f 1248/1987/67 1242/1984/96 1241/1988/97 +f 1247/1989/70 1241/1988/97 1240/1990/98 +f 1246/1978/133 1240/1990/98 1239/1979/12 +f 1245/1977/92 1202/1991/100 1195/1992/99 +f 1196/1993/101 1245/1977/92 1195/1992/99 +f 1197/1994/102 1244/1995/94 1196/1993/101 +f 1197/1994/102 1198/1996/28 1243/1997/95 +f 1242/1998/96 1198/1999/28 1199/2000/103 +f 1241/2001/97 1199/2000/103 1200/2002/104 +f 1201/2003/105 1241/2001/97 1200/2002/104 +f 1239/1979/12 1201/2003/105 1202/1991/100 +f 1203/1932/75 1211/2004/106 1204/1945/82 +f 1211/2004/106 1205/2005/107 1204/1945/82 +f 1205/2005/107 1213/1941/108 1206/1940/80 +f 1214/2006/58 1169/2007/13 1170/2008/57 +f 1214/2009/58 1208/2010/76 1207/2011/78 +f 1215/2012/109 1209/2013/110 1208/2010/76 +f 1209/2013/110 1210/2014/29 1203/1932/75 +f 1165/2015/111 1211/2004/106 1210/2014/29 +f 1166/2016/132 1212/2017/113 1211/2004/106 +f 1212/2017/113 1168/1919/114 1213/1918/108 +f 1214/2009/58 1207/2011/78 1169/2018/13 +f 1214/2006/58 1171/2019/115 1215/2020/109 +f 1171/2019/115 1216/2021/116 1215/2020/109 +f 1216/2021/116 1165/2015/111 1210/2014/29 +f 1225/2022/28 1218/2023/119 1217/2024/117 +f 1218/2023/119 1227/2025/120 1219/2026/121 +f 1219/2026/121 1228/2027/122 1220/2028/123 +f 1221/2029/12 1220/2028/123 1228/2027/122 +f 1229/2030/125 1223/2031/126 1222/2032/124 +f 1223/2031/126 1231/2033/127 1224/2034/128 +f 1231/2033/127 1217/2035/117 1224/2034/128 +f 1232/2036/129 1226/2037/118 1225/2022/28 +f 1233/1925/65 1227/2038/120 1226/2037/118 +f 1234/2039/69 1228/2040/122 1227/2038/120 +f 1229/2041/125 1237/2042/62 1230/2043/130 +f 1230/2043/130 1238/1923/64 1231/2033/127 +f 1238/1923/64 1225/2044/28 1231/2033/127 +f 1171/2045/115 1195/1992/99 1172/2046/131 +f 1170/2047/57 1196/2048/101 1171/2045/115 +f 1169/2049/13 1197/2050/102 1170/2047/57 +f 1168/2051/114 1198/2052/28 1169/2053/13 +f 1168/2051/114 1200/2054/104 1199/2055/103 +f 1166/2016/132 1200/2054/104 1167/2056/112 +f 1165/2015/111 1201/2003/105 1166/2016/132 +f 1195/1992/99 1165/2015/111 1172/2046/131 +f 1267/2057/92 1268/2058/133 1261/2059/12 +f 1273/2060/93 1267/2057/92 1266/2061/94 +f 1265/2062/95 1273/2060/93 1266/2061/94 +f 1279/2063/1 1272/2064/63 1256/2065/28 +f 1271/2066/66 1279/2067/1 1256/2068/28 +f 1270/2069/67 1264/2070/96 1263/2071/97 +f 1262/2072/98 1270/2069/67 1263/2071/97 +f 1268/2058/133 1262/2072/98 1261/2059/12 +f 1267/2057/92 1260/2073/100 1253/2074/99 +f 1254/2075/101 1267/2057/92 1253/2074/99 +f 1255/2076/102 1266/2077/94 1254/2075/101 +f 1255/2076/102 1256/2078/28 1265/2079/95 +f 1264/2080/96 1256/2081/28 1257/2082/103 +f 1263/2083/97 1257/2082/103 1258/2084/104 +f 1259/2085/105 1263/2083/97 1258/2084/104 +f 1261/2059/12 1259/2085/105 1260/2073/100 +f 1219/2086/121 1257/2087/103 1218/2023/119 +f 1218/2023/119 1256/2088/28 1217/2024/117 +f 1217/2035/117 1255/2089/102 1224/2034/128 +f 1224/2034/128 1254/2090/101 1223/2091/126 +f 1223/2091/126 1253/2074/99 1222/2092/124 +f 1253/2074/99 1221/2093/12 1222/2092/124 +f 1221/2093/12 1259/2085/105 1220/2094/123 +f 1220/2094/123 1258/2095/104 1219/2086/121 +f 1269/2096/70 1277/2097/19 1270/2098/67 +f 1273/2099/93 1282/2100/9 1274/2101/71 +f 1270/2098/67 1278/2102/30 1271/2066/66 +f 1274/2101/71 1275/2103/2 1268/2058/133 +f 1268/2058/133 1276/2104/8 1269/2096/70 +f 1265/2062/95 1256/2105/28 1272/2106/63 +f 1256/2107/28 1264/2070/96 1271/2108/66 +f 1272/2064/63 1281/2109/5 1273/2099/93 +f 1190/2110/55 1130/1882/119 1131/2111/121 +f 1189/2112/60 1129/1880/117 1130/1882/119 +f 1129/1894/117 1194/2113/73 1136/1892/128 +f 1194/2113/73 1135/2114/126 1136/1892/128 +f 1193/2115/134 1134/1970/124 1135/2114/126 +f 1177/1971/29 1132/2116/123 1133/1972/12 +f 1177/1954/29 1176/1952/83 1184/1951/87 +f 1191/2117/59 1131/2111/121 1132/2116/123 +f 1090/1822/74 1089/2118/29 1097/2119/91 +f 1104/1833/61 1097/1835/91 1089/2120/29 +f 1089/2118/29 1088/1821/83 1096/2121/87 +f 1096/1832/87 1103/1831/59 1089/2120/29 +f 1089/2122/29 1074/1782/17 1075/2123/3 +f 1076/1787/15 1089/2122/29 1075/2123/3 +f 1125/1875/108 1080/1874/114 1081/2124/13 +f 1125/2125/108 1081/2126/13 1118/1866/80 +f 1081/2127/13 1086/1814/81 1118/1813/80 +f 1092/1826/90 1081/2128/13 1119/1808/78 +f 1180/1961/90 1169/2129/13 1207/1936/78 +f 1169/2130/13 1174/1944/81 1206/1943/80 +f 1228/2040/122 1235/2131/68 1221/2132/12 +f 1222/2032/124 1221/2029/12 1229/2030/125 +f 1229/2041/125 1221/2132/12 1236/2133/72 +f 1221/2134/12 1252/1937/71 1236/1938/72 +f 1247/1989/70 1221/2134/12 1235/1929/68 +f 1316/2135/223 1286/2136/18 1287/2137/4 +f 1314/2138/224 1284/2139/15 1285/2140/5 +f 1296/2141/225 1340/2142/226 1295/2143/9 +f 1317/2144/227 1287/2137/4 1288/2145/16 +f 1315/2146/228 1285/2147/5 1286/2136/18 +f 1319/2148/229 1290/2149/17 1283/2150/3 +f 1363/2151/230 1376/2152/231 1364/2153/232 +f 1324/2154/27 1364/2153/232 1376/2152/231 +f 1359/2155/233 1324/2156/27 1375/2157/234 +f 1374/2158/235 1359/2155/233 1375/2157/234 +f 1374/2158/235 1361/2159/236 1360/2160/237 +f 1373/2161/238 1347/2162/8 1361/2159/236 +f 1347/2162/8 1378/2163/239 1362/2164/240 +f 1320/2165/241 1283/2150/3 1284/2139/15 +f 1304/2166/242 1329/2167/243 1303/2168/30 +f 1305/2169/244 1335/2170/245 1304/2166/242 +f 1305/2169/244 1333/2171/246 1334/2172/247 +f 1378/2163/239 1363/2151/230 1362/2164/240 +f 1333/2173/246 1295/2174/9 1340/2175/226 +f 1301/2176/248 1332/2177/249 1300/2178/250 +f 1330/2179/251 1301/2176/248 1302/2180/252 +f 1302/2180/252 1329/2167/243 1330/2179/251 +f 1299/2181/253 1308/2182/254 1300/2178/250 +f 1308/2182/254 1301/2183/248 1300/2178/250 +f 1309/2184/255 1302/2185/252 1301/2183/248 +f 1304/2186/242 1312/2187/256 1305/2188/244 +f 1305/2188/244 1313/2189/257 1306/2190/258 +f 1313/2189/257 1299/2191/253 1306/2190/258 +f 1307/2192/9 1315/2146/228 1308/2182/254 +f 1315/2146/228 1309/2193/255 1308/2182/254 +f 1309/2193/255 1317/2194/227 1310/2195/259 +f 1311/2196/260 1319/2197/229 1312/2198/256 +f 1312/2198/256 1320/2165/241 1313/2189/257 +f 1320/2165/241 1307/2199/9 1313/2189/257 +f 1378/2163/239 1365/2200/8 1371/2201/261 +f 1377/2202/262 1371/2201/261 1370/2203/263 +f 1376/2204/231 1370/2203/263 1369/2205/264 +f 1324/2206/27 1368/2207/265 1375/2208/234 +f 1369/2205/264 1324/2209/27 1376/2204/231 +f 1367/2210/266 1375/2208/234 1368/2207/265 +f 1366/2211/267 1374/2212/235 1367/2210/266 +f 1365/2200/8 1373/2161/238 1366/2211/267 +f 1371/2201/261 1328/2213/268 1321/2214/269 +f 1322/2215/270 1371/2201/261 1321/2214/269 +f 1323/2216/271 1370/2217/263 1322/2215/270 +f 1323/2216/271 1324/2218/27 1369/2219/264 +f 1368/2220/265 1324/2221/27 1325/2222/272 +f 1367/2223/266 1325/2222/272 1326/2224/273 +f 1366/2211/267 1326/2224/273 1327/2225/274 +f 1365/2200/8 1327/2225/274 1328/2213/268 +f 1336/2226/30 1330/2179/251 1329/2167/243 +f 1337/2227/275 1331/2228/276 1330/2179/251 +f 1338/2229/277 1332/2230/249 1331/2228/276 +f 1333/2173/246 1341/2231/278 1334/2232/247 +f 1341/2231/278 1335/2170/245 1334/2232/247 +f 1342/2233/279 1329/2167/243 1335/2170/245 +f 1291/2234/280 1337/2227/275 1336/2226/30 +f 1337/2227/275 1293/2235/281 1338/2236/277 +f 1293/2235/281 1339/2237/282 1338/2236/277 +f 1340/2142/226 1297/2238/283 1341/2239/278 +f 1297/2238/283 1342/2233/279 1341/2239/278 +f 1342/2233/279 1291/2234/280 1336/2226/30 +f 1343/2240/284 1352/2241/285 1344/2242/286 +f 1344/2242/286 1353/2243/287 1345/2244/288 +f 1345/2244/288 1354/2245/289 1346/2246/290 +f 1348/2247/291 1347/2248/8 1355/2249/292 +f 1347/2248/8 1346/2246/290 1354/2245/289 +f 1348/2247/291 1356/2250/293 1349/2251/294 +f 1356/2250/293 1350/2252/295 1349/2251/294 +f 1357/2253/296 1343/2254/284 1350/2252/295 +f 1358/2255/297 1352/2241/285 1351/2256/27 +f 1359/2155/233 1353/2257/287 1352/2241/285 +f 1353/2257/287 1361/2258/236 1354/2259/289 +f 1361/2258/236 1347/2260/8 1354/2259/289 +f 1362/2261/240 1355/2262/292 1347/2260/8 +f 1362/2261/240 1356/2263/293 1355/2262/292 +f 1356/2263/293 1364/2153/232 1357/2253/296 +f 1357/2253/296 1358/2264/297 1351/2265/27 +f 1297/2266/283 1321/2214/269 1298/2267/298 +f 1296/2268/225 1322/2269/270 1297/2266/283 +f 1295/2270/9 1323/2271/271 1296/2268/225 +f 1294/2272/299 1324/2273/27 1295/2274/9 +f 1294/2272/299 1326/2275/273 1325/2276/272 +f 1292/2277/300 1326/2275/273 1293/2278/281 +f 1291/2234/280 1327/2225/274 1292/2277/300 +f 1321/2214/269 1291/2234/280 1298/2267/298 +f 1427/2279/282 1382/2280/299 1383/2281/9 +f 1451/2282/230 1464/2283/231 1452/2284/232 +f 1412/2285/27 1452/2284/232 1464/2283/231 +f 1447/2286/233 1412/2287/27 1463/2288/234 +f 1462/2289/235 1447/2286/233 1463/2288/234 +f 1462/2289/235 1449/2290/236 1448/2291/237 +f 1392/2292/242 1417/2293/243 1391/2294/30 +f 1422/2295/247 1392/2292/242 1393/2296/244 +f 1393/2296/244 1421/2297/246 1422/2295/247 +f 1466/2298/239 1451/2282/230 1450/2299/240 +f 1383/2300/9 1420/2301/249 1427/2302/282 +f 1389/2303/248 1420/2304/249 1388/2305/250 +f 1418/2306/251 1389/2303/248 1390/2307/252 +f 1390/2307/252 1417/2293/243 1418/2306/251 +f 1387/2308/253 1396/2309/254 1388/2305/250 +f 1388/2305/250 1397/2310/255 1389/2311/248 +f 1389/2311/248 1398/2312/259 1390/2313/252 +f 1392/2314/242 1391/2315/30 1399/2316/260 +f 1406/2317/301 1399/2318/260 1391/2319/30 +f 1392/2314/242 1400/2320/256 1393/2321/244 +f 1400/2320/256 1394/2322/258 1393/2321/244 +f 1401/2323/257 1387/2324/253 1394/2322/258 +f 1402/2325/224 1396/2309/254 1395/2326/9 +f 1403/2327/228 1397/2328/255 1396/2309/254 +f 1397/2328/255 1405/2329/227 1398/2330/259 +f 1398/2330/259 1405/2329/227 1391/2319/30 +f 1348/2331/291 1391/2332/30 1347/2333/8 +f 1399/2318/260 1407/2334/229 1400/2335/256 +f 1407/2334/229 1401/2323/257 1400/2335/256 +f 1401/2323/257 1402/2336/224 1395/2337/9 +f 1459/2338/261 1460/2339/302 1453/2340/8 +f 1458/2341/263 1466/2298/239 1459/2338/261 +f 1464/2342/231 1458/2341/263 1457/2343/264 +f 1412/2344/27 1456/2345/265 1463/2346/234 +f 1457/2343/264 1412/2347/27 1464/2342/231 +f 1455/2348/266 1463/2346/234 1456/2345/265 +f 1461/2349/238 1455/2348/266 1454/2350/267 +f 1460/2339/302 1454/2350/267 1453/2340/8 +f 1459/2338/261 1416/2351/268 1409/2352/269 +f 1410/2353/270 1459/2338/261 1409/2352/269 +f 1457/2354/264 1410/2353/270 1411/2355/271 +f 1411/2355/271 1412/2356/27 1457/2354/264 +f 1456/2357/265 1412/2358/27 1413/2359/272 +f 1455/2360/266 1413/2359/272 1414/2361/273 +f 1415/2362/274 1455/2360/266 1414/2361/273 +f 1416/2351/268 1454/2350/267 1415/2362/274 +f 1424/2363/30 1418/2306/251 1417/2293/243 +f 1425/2364/275 1419/2365/276 1418/2306/251 +f 1419/2365/276 1427/2302/282 1420/2301/249 +f 1428/2366/226 1383/2367/9 1384/2368/225 +f 1428/2369/226 1422/2370/247 1421/2371/246 +f 1422/2370/247 1430/2372/279 1423/2373/245 +f 1423/2373/245 1424/2363/30 1417/2293/243 +f 1379/2374/280 1425/2364/275 1424/2363/30 +f 1380/2375/300 1426/2376/277 1425/2364/275 +f 1381/2377/281 1427/2279/282 1426/2376/277 +f 1428/2369/226 1421/2371/246 1383/2378/9 +f 1428/2366/226 1385/2379/283 1429/2380/278 +f 1385/2379/283 1430/2372/279 1429/2380/278 +f 1430/2372/279 1379/2374/280 1424/2363/30 +f 1431/2381/284 1440/2382/285 1432/2383/286 +f 1440/2382/285 1433/2384/288 1432/2383/286 +f 1433/2384/288 1442/2385/289 1434/2386/290 +f 1435/2387/8 1434/2386/290 1442/2385/289 +f 1443/2388/292 1437/2389/294 1436/2390/291 +f 1437/2389/294 1445/2391/296 1438/2392/295 +f 1438/2392/295 1439/2393/27 1431/2394/284 +f 1446/2395/297 1440/2382/285 1439/2396/27 +f 1440/2382/285 1448/2397/237 1441/2398/287 +f 1448/2397/237 1442/2399/289 1441/2398/287 +f 1450/2400/240 1444/2401/293 1443/2402/292 +f 1444/2401/293 1452/2284/232 1445/2391/296 +f 1445/2391/296 1446/2403/297 1439/2393/27 +f 1385/2404/283 1409/2352/269 1386/2405/298 +f 1384/2406/225 1410/2407/270 1385/2404/283 +f 1383/2408/9 1411/2409/271 1384/2406/225 +f 1382/2410/299 1412/2411/27 1383/2412/9 +f 1382/2410/299 1414/2413/273 1413/2414/272 +f 1380/2375/300 1414/2413/273 1381/2415/281 +f 1379/2374/280 1415/2362/274 1380/2375/300 +f 1409/2352/269 1379/2374/280 1386/2405/298 +f 1481/2416/261 1482/2417/302 1475/2418/8 +f 1487/2419/262 1481/2416/261 1480/2420/263 +f 1479/2421/264 1487/2419/262 1480/2420/263 +f 1493/2422/1 1486/2423/231 1470/2424/27 +f 1470/2425/27 1492/2426/28 1493/2427/1 +f 1484/2428/235 1478/2429/265 1477/2430/266 +f 1476/2431/267 1484/2428/235 1477/2430/266 +f 1475/2418/8 1483/2432/238 1476/2431/267 +f 1481/2416/261 1474/2433/268 1467/2434/269 +f 1468/2435/270 1481/2416/261 1467/2434/269 +f 1469/2436/271 1480/2437/263 1468/2435/270 +f 1469/2436/271 1470/2438/27 1479/2439/264 +f 1478/2440/265 1470/2441/27 1471/2442/272 +f 1477/2443/266 1471/2442/272 1472/2444/273 +f 1476/2431/267 1472/2444/273 1473/2445/274 +f 1474/2433/268 1476/2431/267 1473/2445/274 +f 1433/2446/288 1471/2447/272 1432/2383/286 +f 1432/2383/286 1470/2448/27 1431/2381/284 +f 1431/2394/284 1469/2449/271 1438/2392/295 +f 1438/2392/295 1468/2450/270 1437/2451/294 +f 1437/2451/294 1467/2434/269 1436/2452/291 +f 1467/2434/269 1435/2453/8 1436/2452/291 +f 1435/2453/8 1473/2445/274 1434/2454/290 +f 1434/2454/290 1472/2455/273 1433/2446/288 +f 1484/2456/235 1490/2457/13 1491/2458/4 +f 1487/2459/262 1496/2460/12 1488/2461/239 +f 1484/2456/235 1492/2426/28 1485/2462/234 +f 1488/2461/239 1489/2463/2 1482/2417/302 +f 1482/2417/302 1490/2457/13 1483/2432/238 +f 1479/2421/264 1470/2464/27 1486/2465/231 +f 1470/2466/27 1478/2429/265 1485/2467/234 +f 1486/2423/231 1495/2468/3 1487/2459/262 +f 1404/2469/223 1344/2242/286 1345/2470/288 +f 1403/2471/228 1343/2240/284 1344/2242/286 +f 1343/2254/284 1408/2472/241 1350/2252/295 +f 1408/2472/241 1349/2473/294 1350/2252/295 +f 1407/2474/229 1348/2331/291 1349/2473/294 +f 1391/2332/30 1346/2475/290 1347/2333/8 +f 1391/2315/30 1390/2313/252 1398/2312/259 +f 1405/2476/227 1345/2470/288 1346/2475/290 +f 1304/2186/242 1303/2477/30 1311/2478/260 +f 1318/2479/301 1311/2196/260 1303/2480/30 +f 1303/2477/30 1302/2185/252 1310/2481/259 +f 1310/2195/259 1317/2194/227 1303/2480/30 +f 1289/2482/19 1317/2144/227 1288/2145/16 +f 1290/2149/17 1303/2483/30 1289/2482/19 +f 1339/2237/282 1294/2484/299 1295/2485/9 +f 1339/2486/282 1295/2487/9 1332/2230/249 +f 1295/2488/9 1300/2178/250 1332/2177/249 +f 1306/2190/258 1295/2489/9 1333/2171/246 +f 1394/2322/258 1383/2490/9 1421/2297/246 +f 1383/2491/9 1388/2305/250 1420/2304/249 +f 1442/2399/289 1449/2492/236 1435/2493/8 +f 1436/2390/291 1435/2387/8 1443/2388/292 +f 1443/2402/292 1435/2493/8 1450/2400/240 +f 1435/2494/8 1466/2298/239 1450/2299/240 +f 1461/2349/238 1435/2494/8 1449/2290/236 +f 1501/2495/19 1511/2496/16 1505/2497/19 +f 1497/2498/5 1512/2499/18 1498/2500/18 +f 1503/2501/3 1508/2502/15 1504/2503/15 +f 1501/2495/19 1506/2504/17 1502/2505/17 +f 1498/2500/18 1510/2506/4 1499/2507/4 +f 1502/2505/17 1509/2508/3 1503/2501/3 +f 1499/2507/4 1511/2496/16 1500/2509/16 +f 1504/2503/15 1507/2510/5 1497/2511/5 +f 1517/2512/19 1527/2513/16 1521/2514/19 +f 1513/2515/5 1528/2516/18 1514/2517/18 +f 1519/2518/3 1524/2519/15 1520/2520/15 +f 1518/2521/17 1521/2514/19 1522/2522/17 +f 1514/2517/18 1526/2523/4 1515/2524/4 +f 1518/2521/17 1525/2525/3 1519/2518/3 +f 1515/2524/4 1527/2513/16 1516/2526/16 +f 1520/2520/15 1523/2527/5 1513/2528/5 +f 1563/2529/3 1569/2530/17 1562/2531/17 +f 1568/2532/16 1575/2533/4 1567/2534/4 +f 1566/2535/18 1573/2536/5 1565/2537/5 +f 1564/2538/15 1571/2539/3 1563/2529/3 +f 1562/2531/17 1570/2540/19 1561/2541/19 +f 1561/2541/19 1576/2542/16 1568/2532/16 +f 1567/2534/4 1574/2543/18 1566/2544/18 +f 1565/2537/5 1572/2545/15 1564/2538/15 +f 631/1127/3 630/2546/17 622/1128/17 +f 629/1130/19 628/1140/16 620/1131/16 +f 627/1133/4 626/1141/18 618/1134/18 +f 632/1136/15 631/1127/3 623/1129/3 +f 630/1138/17 629/1130/19 621/1132/19 +f 628/1140/16 627/1133/4 619/1135/4 +f 626/1141/18 625/1143/5 617/1142/5 +f 625/1143/5 632/1136/15 624/1137/15 +f 639/1144/3 647/1154/3 646/1145/17 +f 637/1147/19 645/1156/19 644/1148/16 +f 635/1150/4 643/1157/4 642/1151/18 +f 640/1153/15 648/1160/15 647/1154/3 +f 638/1155/17 646/2547/17 645/1156/19 +f 636/1149/16 644/1148/16 643/1157/4 +f 634/1152/18 642/1151/18 641/1158/5 +f 633/1159/5 641/1158/5 648/1160/15 +f 1599/1163/2 1593/2548/2 1594/2549/2 +f 1594/2549/2 1597/2550/2 1596/1161/2 +f 1596/1161/2 1595/2551/2 1600/1162/2 +f 1600/1162/2 1598/2552/2 1599/1163/2 +f 1599/1163/2 1594/2549/2 1596/1161/2 +f 706/1164/55 705/1175/60 676/1165/16 +f 704/1167/56 710/1194/73 674/1168/18 +f 707/1173/59 706/1164/55 677/1166/19 +f 705/1175/60 704/1222/56 675/1176/4 +f 673/1177/5 709/2553/134 708/1178/61 +f 753/1180/62 767/2554/93 766/1181/63 +f 714/1183/28 748/1297/129 754/1182/64 +f 749/1184/65 748/1287/129 714/1185/28 +f 764/1187/67 750/1189/69 749/1184/65 +f 764/1187/67 763/1190/70 751/1188/68 +f 763/1190/70 762/2555/133 737/1191/12 +f 737/1191/12 762/2555/133 768/1192/71 +f 710/1194/73 709/2553/134 673/1177/5 +f 694/1195/74 725/1263/110 719/1196/75 +f 724/1198/76 725/1263/110 694/1195/74 +f 695/1199/77 696/1219/90 723/1200/78 +f 768/1192/71 767/2554/93 753/1180/62 +f 691/1204/79 721/2556/107 722/1205/80 +f 720/1207/82 721/2556/107 691/1204/79 +f 692/1208/83 693/1197/29 719/1196/75 +f 689/1209/84 697/1223/13 698/1210/85 +f 690/1206/81 698/1210/85 699/1211/86 +f 691/1212/79 699/1211/86 700/1213/87 +f 694/1215/74 701/1752/91 702/1216/88 +f 695/1217/77 702/1216/88 703/1218/89 +f 696/1219/90 703/1218/89 697/1220/13 +f 704/1222/56 705/1175/60 698/1210/85 +f 698/1210/85 705/1175/60 706/1224/55 +f 699/1225/86 706/1224/55 707/1226/59 +f 708/1228/61 709/2557/134 702/1229/88 +f 702/1229/88 709/2557/134 710/1194/73 +f 710/1194/73 704/1167/56 697/1220/13 +f 768/1192/71 762/2555/133 755/1231/12 +f 767/1233/93 768/1192/71 761/1232/92 +f 766/1235/63 767/1233/93 760/1234/94 +f 757/1241/97 764/1243/67 765/1239/66 +f 756/1242/98 763/1190/70 764/1243/67 +f 755/1231/12 762/2555/133 763/1190/70 +f 711/1244/99 761/1232/92 755/1231/12 +f 712/1246/101 760/1248/94 761/1232/92 +f 713/1247/102 759/1250/95 760/1248/94 +f 757/1254/97 758/1251/96 715/1253/103 +f 756/1242/98 757/1254/97 716/1255/104 +f 718/1245/100 755/1231/12 756/1242/98 +f 719/1196/75 726/1264/29 727/1257/106 +f 727/1257/106 728/2558/113 721/1258/107 +f 721/1258/107 728/2558/113 729/1259/108 +f 723/1201/78 730/1203/58 731/1261/109 +f 731/1261/109 732/1272/116 725/1263/110 +f 725/1263/110 732/1272/116 726/1264/29 +f 681/1265/111 682/1310/132 727/1257/106 +f 727/1257/106 682/1310/132 683/1266/112 +f 728/1267/113 683/1266/112 684/1268/114 +f 730/1171/58 686/1170/57 687/1270/115 +f 687/1270/115 688/1300/131 732/1272/116 +f 732/1272/116 688/1300/131 681/1265/111 +f 733/1273/117 741/1288/28 742/1274/118 +f 734/1275/119 742/1274/118 743/1276/120 +f 735/1277/121 743/1276/120 744/1278/122 +f 745/1282/125 746/2559/130 739/1283/126 +f 739/1283/126 746/2559/130 747/1284/127 +f 747/1284/127 741/1298/28 733/1286/117 +f 748/1287/129 749/1184/65 742/1274/118 +f 749/1184/65 750/1290/69 743/1289/120 +f 750/1290/69 751/1292/68 744/1291/122 +f 752/1294/72 753/2560/62 746/1296/130 +f 746/1296/130 753/2560/62 754/1182/64 +f 747/1284/127 754/1182/64 748/1297/129 +f 687/1299/115 712/1302/101 711/1244/99 +f 686/1301/57 713/1304/102 712/1302/101 +f 685/1303/13 714/2561/28 713/1304/102 +f 684/1305/114 715/1309/103 714/1306/28 +f 684/1305/114 683/1311/112 716/1308/104 +f 682/1310/132 717/1256/105 716/1308/104 +f 681/1265/111 718/1245/100 717/1256/105 +f 711/1244/99 718/1245/100 681/1265/111 +f 841/1315/62 855/2562/93 854/1316/63 +f 802/1318/28 836/2563/129 842/1317/64 +f 837/1319/65 836/1428/129 802/1320/28 +f 852/1322/67 838/1324/69 837/1319/65 +f 852/1322/67 851/1767/70 839/1323/68 +f 782/1325/74 813/1406/110 807/1326/75 +f 812/1328/76 813/1406/110 782/1325/74 +f 783/1329/77 784/1355/90 811/1330/78 +f 856/1331/71 855/2562/93 841/1315/62 +f 779/1336/79 809/2564/107 810/1337/80 +f 808/1339/82 809/2564/107 779/1336/79 +f 780/1340/83 781/1327/29 807/1326/75 +f 785/1341/13 786/1359/85 778/1338/81 +f 778/1338/81 786/1359/85 787/1343/86 +f 779/1344/79 787/1343/86 788/1345/87 +f 789/1349/91 790/2565/88 783/1353/77 +f 783/1353/77 790/2565/88 791/1354/89 +f 784/1355/90 791/1354/89 785/1356/13 +f 792/1358/56 793/2566/60 786/1359/85 +f 786/1359/85 793/2566/60 794/1360/55 +f 794/1360/55 795/1363/59 788/1362/87 +f 738/1364/124 796/2567/61 781/1365/29 +f 796/1350/61 797/2568/134 790/1367/88 +f 790/1367/88 797/2568/134 798/1368/73 +f 791/1354/89 798/1368/73 792/1369/56 +f 849/1370/92 856/1331/71 850/1371/133 +f 848/1373/94 855/1375/93 856/1331/71 +f 847/1374/95 854/1380/63 855/1375/93 +f 845/1381/97 852/1383/67 853/1378/66 +f 844/1382/98 851/1767/70 852/1383/67 +f 850/1371/133 851/1767/70 844/1382/98 +f 849/1370/92 843/1372/12 806/1384/100 +f 848/1386/94 849/1370/92 799/1385/99 +f 801/1388/102 847/1390/95 848/1386/94 +f 845/1394/97 846/1391/96 803/1393/103 +f 844/1382/98 845/1394/97 804/1395/104 +f 806/1384/100 843/1372/12 844/1382/98 +f 807/1326/75 814/1409/29 815/1397/106 +f 815/1397/106 816/2569/113 809/1398/107 +f 809/1398/107 816/2569/113 817/1335/108 +f 818/1402/58 819/1405/109 812/1403/76 +f 819/1405/109 820/1407/116 813/1406/110 +f 820/1407/116 814/1409/29 807/1326/75 +f 769/1408/111 770/1447/132 815/1397/106 +f 815/1397/106 770/1447/132 771/1410/112 +f 816/1411/113 771/1410/112 772/1313/114 +f 774/1401/57 775/2570/115 819/1413/109 +f 819/1413/109 775/2570/115 776/1414/131 +f 820/1407/116 776/1414/131 769/1408/111 +f 821/1415/117 829/1429/28 830/1416/118 +f 830/1416/118 831/2571/120 823/1418/121 +f 823/1418/121 831/2571/120 832/1419/122 +f 826/1422/124 833/1764/125 834/1423/130 +f 834/1423/130 835/1426/127 828/1425/128 +f 835/1426/127 829/1436/28 821/1427/117 +f 836/1428/129 837/1319/65 830/1416/118 +f 837/1319/65 838/1431/69 831/1430/120 +f 838/1431/69 839/1762/68 832/1432/122 +f 833/1433/125 840/1765/72 841/1434/62 +f 834/1435/130 841/1434/62 842/1317/64 +f 842/1317/64 836/2563/129 829/1436/28 +f 775/1437/115 800/1439/101 799/1385/99 +f 774/1438/57 801/1441/102 800/1439/101 +f 773/1440/13 802/2572/28 801/1441/102 +f 772/1442/114 803/1446/103 802/1443/28 +f 772/1442/114 771/1448/112 804/1445/104 +f 770/1447/132 805/1396/105 804/1445/104 +f 769/1408/111 806/1384/100 805/1396/105 +f 799/1385/99 806/1384/100 769/1408/111 +f 878/1449/71 872/1495/133 865/1450/12 +f 877/1452/93 878/1449/71 871/1451/92 +f 869/1454/95 876/1498/63 877/1452/93 +f 883/1455/1 884/2573/27 876/1456/63 +f 875/1458/66 882/1493/30 883/1459/1 +f 874/1461/67 875/1500/66 868/1462/96 +f 873/1464/70 874/1461/67 867/1463/97 +f 865/1450/12 872/1495/133 873/1464/70 +f 871/1451/92 865/1450/12 864/1466/100 +f 870/1468/94 871/1451/92 857/1467/99 +f 859/1470/102 869/1472/95 870/1468/94 +f 867/1476/97 868/1473/96 861/1475/103 +f 866/1465/98 867/1476/97 862/1477/104 +f 864/1466/100 865/1450/12 866/1465/98 +f 823/1479/121 862/1488/104 861/1480/103 +f 822/1417/119 861/1480/103 860/1481/28 +f 821/1427/117 860/2574/28 859/1482/102 +f 828/1425/128 859/1482/102 858/1483/101 +f 827/1484/126 858/1483/101 857/1467/99 +f 857/1467/99 864/1466/100 825/1486/12 +f 825/1486/12 864/1466/100 863/1478/105 +f 824/1487/123 863/1478/105 862/1488/104 +f 873/1464/70 880/1496/8 881/1489/19 +f 877/1491/93 885/1501/5 886/1492/9 +f 874/1490/67 881/1489/19 882/1493/30 +f 878/1449/71 886/1492/9 879/1494/2 +f 872/1495/133 879/1494/2 880/1496/8 +f 876/1456/63 884/2573/27 885/1501/5 +f 794/1502/55 793/1504/60 734/1275/119 +f 793/1504/60 792/2575/56 733/1273/117 +f 733/1286/117 792/2576/56 798/1505/73 +f 798/1505/73 797/1507/134 739/1506/126 +f 797/1507/134 796/2567/61 738/1364/124 +f 781/1365/29 795/1509/59 736/1508/123 +f 795/1509/59 794/1502/55 735/1503/121 +f 1545/1510/135 1553/2577/135 1560/1511/136 +f 1552/1512/136 1560/2578/136 1559/1513/137 +f 1551/1514/137 1559/2579/137 1558/1515/138 +f 1550/1517/138 1558/2580/138 1557/1518/139 +f 1549/1519/139 1557/2581/139 1556/1520/140 +f 1548/1521/140 1556/2582/140 1555/1522/141 +f 1546/1524/142 1547/1523/141 1555/1525/141 +f 1546/1524/142 1554/2583/142 1553/1527/135 +f 935/1528/28 936/1544/118 928/1529/119 +f 928/1529/119 936/1544/118 937/1531/120 +f 937/1531/120 938/1537/122 930/1533/123 +f 932/1538/124 939/2584/125 940/1539/130 +f 940/1539/130 941/1542/127 934/1541/128 +f 941/1542/127 935/1528/28 927/1530/117 +f 935/1528/28 942/1554/129 943/1543/65 +f 943/1543/65 944/1546/69 937/1545/120 +f 944/1546/69 945/1548/68 938/1547/122 +f 939/1550/125 946/2585/72 947/1551/62 +f 940/1552/130 947/1551/62 948/1553/64 +f 941/1542/127 948/1553/64 942/1554/129 +f 1021/1558/145 1035/2586/189 1034/1559/146 +f 1034/1559/146 982/2587/35 1016/1561/148 +f 1016/1562/148 982/2588/35 1033/1563/149 +f 1032/1565/151 1018/1567/153 1017/1564/150 +f 1032/1565/151 1031/1568/154 1019/1566/152 +f 1031/1568/154 1030/1617/186 1005/1569/37 +f 1005/1569/37 1030/1617/186 1036/1570/155 +f 962/1572/157 993/1576/160 987/1573/158 +f 963/1575/159 992/1578/162 993/1576/160 +f 963/1575/159 964/1598/176 991/1577/161 +f 1036/1570/155 1035/2586/189 1021/1558/145 +f 958/1582/165 959/1586/169 989/1583/166 +f 960/1585/168 988/1587/170 989/1583/166 +f 960/1585/168 961/1574/34 987/1573/158 +f 957/1588/171 965/1601/36 966/1589/172 +f 966/1589/172 967/2589/180 959/1590/169 +f 959/1590/169 967/2589/180 968/1591/173 +f 962/1593/157 969/1595/174 970/1596/175 +f 970/1596/175 971/1599/177 964/1598/176 +f 971/1599/177 965/1615/36 957/1600/171 +f 965/1601/36 972/2590/184 973/1602/178 +f 966/1589/172 973/1602/178 974/1603/179 +f 967/1604/180 974/1603/179 975/1605/181 +f 929/1610/121 976/2591/182 961/1611/34 +f 969/1608/174 976/1607/182 977/1612/183 +f 977/1612/183 978/1703/222 971/1599/177 +f 971/1599/177 978/1703/222 972/1614/184 +f 1029/1616/185 1036/1570/155 1030/1617/186 +f 1028/1619/187 1035/1621/189 1036/1570/155 +f 1027/1620/188 1034/1638/146 1035/1621/189 +f 1032/1628/151 1033/1627/149 1026/1626/190 +f 1031/1568/154 1032/1628/151 1025/1629/192 +f 1023/1618/37 1030/1617/186 1031/1568/154 +f 979/1631/194 1029/1616/185 1023/1618/37 +f 1028/1633/187 1029/1616/185 979/1631/194 +f 981/1635/197 1027/1637/188 1028/1633/187 +f 984/1640/198 1025/1642/192 1026/1622/190 +f 985/1641/199 1024/1630/193 1025/1642/192 +f 986/1632/195 1023/1618/37 1024/1630/193 +f 987/1573/158 994/1654/34 995/1643/200 +f 988/1587/170 995/1643/200 996/1644/201 +f 989/1645/166 996/1644/201 997/1646/163 +f 964/1598/176 957/1600/171 953/1648/36 +f 998/1650/144 999/1653/202 992/1651/162 +f 999/1653/202 1000/1661/206 993/1576/160 +f 993/1576/160 1000/1661/206 994/1654/34 +f 949/1655/203 950/1698/221 995/1643/200 +f 995/1643/200 950/1698/221 951/1656/204 +f 951/1656/204 952/1580/164 997/1579/163 +f 990/1584/167 953/2592/36 957/1588/171 +f 998/1556/144 954/1555/143 955/1659/205 +f 955/1659/205 956/1688/220 1000/1661/206 +f 1000/1661/206 956/1688/220 949/1655/203 +f 1009/1662/35 1010/1665/209 1002/1663/207 +f 1010/1665/209 1011/1667/211 1003/1666/210 +f 1011/1667/211 1012/1683/218 1004/1668/212 +f 1013/1674/213 1014/2593/219 1007/1675/215 +f 1007/1675/215 1014/2593/219 1015/1676/216 +f 1015/1676/216 1009/1686/35 1001/1678/208 +f 1016/1562/148 1017/1564/150 1010/1665/209 +f 1017/1564/150 1018/1680/153 1011/1679/211 +f 1018/1680/153 1019/1682/152 1012/1681/218 +f 1020/1669/156 1021/1685/145 1014/1684/219 +f 1021/1685/145 1022/1560/147 1015/1676/216 +f 1015/1676/216 1022/1560/147 1016/1561/148 +f 955/1687/205 980/1690/196 979/1631/194 +f 954/1689/143 981/1692/197 980/1690/196 +f 953/1691/36 982/2594/35 981/1692/197 +f 952/1693/164 983/1697/191 982/1694/35 +f 952/1693/164 951/1699/204 984/1696/198 +f 950/1698/221 985/1641/199 984/1696/198 +f 949/1655/203 986/1632/195 985/1641/199 +f 979/1631/194 986/1632/195 949/1655/203 +f 973/1602/178 972/2590/184 932/1700/124 +f 932/1702/124 972/1614/184 978/1703/222 +f 978/1703/222 977/1706/183 930/1705/123 +f 977/1706/183 976/2591/182 929/1610/121 +f 961/1611/34 975/1707/181 927/1530/117 +f 975/1707/181 974/1708/179 934/1541/128 +f 974/1708/179 973/1602/178 933/1701/126 +f 947/1709/62 1044/1718/5 1043/1710/27 +f 1005/1711/37 1049/1727/16 1048/1712/4 +f 942/1554/129 1042/1721/1 1039/1714/30 +f 943/1543/65 1039/1714/30 1040/1715/19 +f 946/1717/72 1041/2595/9 1044/1718/5 +f 944/1716/69 1040/1715/19 1037/1719/8 +f 948/1553/64 1043/1710/27 1042/1721/1 +f 1002/1663/207 1046/1729/5 1045/1724/15 +f 1001/1678/208 1045/2596/15 1052/1725/3 +f 1006/1726/214 1050/1733/19 1049/1727/16 +f 1003/1728/210 1047/1732/18 1046/1729/5 +f 1008/1677/217 1052/1725/3 1051/1730/17 +f 1004/1713/212 1048/1712/4 1047/1732/18 +f 1007/1731/215 1051/1730/17 1050/1733/19 +f 1060/1734/4 1064/1747/4 1065/1735/18 +f 1058/1737/5 1062/1743/5 1061/1738/15 +f 1054/1740/19 1055/1745/17 1066/1741/17 +f 1059/1736/18 1065/1735/18 1062/1743/5 +f 1056/1744/3 1067/1748/3 1066/1741/17 +f 1053/1746/16 1063/2597/16 1064/1747/4 +f 1057/1739/15 1061/1738/15 1067/1748/3 +f 1053/1749/16 1054/1740/19 1068/1742/19 +f 693/1754/29 707/1173/59 678/1174/17 +f 680/1179/15 708/1178/61 693/1754/29 +f 685/1758/13 689/1209/84 690/1206/81 +f 696/1219/90 689/1221/84 685/1759/13 +f 784/1355/90 777/1357/84 773/1760/13 +f 773/1761/13 777/1342/84 778/1338/81 +f 825/1766/12 850/1371/133 856/1331/71 +f 851/1767/70 850/1371/133 825/1766/12 +f 931/1768/12 945/1720/68 1037/1719/8 +f 931/1768/12 1038/1769/2 1041/1770/9 +f 1102/1772/55 1101/1783/60 1072/1773/16 +f 1100/1775/56 1106/1802/73 1070/1776/18 +f 1103/1781/59 1102/1772/55 1073/1774/19 +f 1101/1783/60 1100/2598/56 1071/1784/4 +f 1069/1785/5 1105/2599/134 1104/1786/61 +f 1149/1788/62 1163/2600/93 1162/1789/63 +f 1110/1791/28 1144/1904/129 1150/1790/64 +f 1145/1792/65 1144/1895/129 1110/1793/28 +f 1160/1795/67 1146/1797/69 1145/1792/65 +f 1160/1795/67 1159/1798/70 1147/1796/68 +f 1159/1798/70 1158/2601/133 1133/1799/12 +f 1133/1799/12 1158/2601/133 1164/1800/71 +f 1106/1802/73 1105/2599/134 1069/1785/5 +f 1090/1803/74 1121/1869/110 1115/1804/75 +f 1120/1806/76 1121/1869/110 1090/1803/74 +f 1091/1807/77 1092/1826/90 1119/1808/78 +f 1164/1800/71 1163/2600/93 1149/1788/62 +f 1087/1812/79 1117/2602/107 1118/1813/80 +f 1116/1815/82 1117/2602/107 1087/1812/79 +f 1088/1816/83 1089/1805/29 1115/1804/75 +f 1085/1817/84 1093/1829/13 1094/1818/85 +f 1094/1818/85 1095/1820/86 1087/1819/79 +f 1095/1820/86 1096/2121/87 1088/1821/83 +f 1090/1822/74 1097/2119/91 1098/1823/88 +f 1091/1824/77 1098/1823/88 1099/1825/89 +f 1092/1826/90 1099/1825/89 1093/1827/13 +f 1093/1829/13 1100/2598/56 1101/1783/60 +f 1101/1783/60 1102/2603/55 1095/1830/86 +f 1095/1830/86 1102/2603/55 1103/1831/59 +f 1104/1833/61 1105/1836/134 1098/1834/88 +f 1105/1836/134 1106/1802/73 1099/1825/89 +f 1106/1802/73 1100/1775/56 1093/1827/13 +f 1164/1800/71 1158/2601/133 1151/1837/12 +f 1163/1839/93 1164/1800/71 1157/1838/92 +f 1162/1841/63 1163/1839/93 1156/1840/94 +f 1153/1847/97 1160/1849/67 1161/1845/66 +f 1152/1848/98 1159/1798/70 1160/1849/67 +f 1151/1837/12 1158/2601/133 1159/1798/70 +f 1157/1838/92 1151/1837/12 1114/1850/100 +f 1108/1852/101 1156/1854/94 1157/1838/92 +f 1109/1853/102 1155/1856/95 1156/1854/94 +f 1153/1860/97 1154/1857/96 1111/1859/103 +f 1152/1848/98 1153/1860/97 1112/1861/104 +f 1151/1837/12 1152/1848/98 1113/1862/105 +f 1122/1863/29 1123/1871/106 1116/1815/82 +f 1116/1815/82 1123/1871/106 1124/1864/113 +f 1124/1864/113 1125/2125/108 1118/1866/80 +f 1119/1809/78 1126/1811/58 1127/1867/109 +f 1127/1867/109 1128/1878/116 1121/1869/110 +f 1121/1869/110 1128/1878/116 1122/1863/29 +f 1077/1870/111 1078/1916/132 1123/1871/106 +f 1123/1871/106 1078/1916/132 1079/1872/112 +f 1124/1873/113 1079/1872/112 1080/1874/114 +f 1082/1778/57 1083/1877/115 1127/1876/109 +f 1083/1877/115 1084/1879/131 1128/1878/116 +f 1084/1879/131 1077/1870/111 1122/1863/29 +f 1129/1880/117 1137/1896/28 1138/1881/118 +f 1130/1882/119 1138/1881/118 1139/1883/120 +f 1131/1884/121 1139/1883/120 1140/1885/122 +f 1141/1889/125 1142/1891/130 1135/1890/126 +f 1142/1891/130 1143/1893/127 1136/1892/128 +f 1143/1893/127 1137/1905/28 1129/1894/117 +f 1144/1895/129 1145/1792/65 1138/1881/118 +f 1145/1792/65 1146/2604/69 1139/1897/120 +f 1139/1897/120 1146/2604/69 1147/1898/68 +f 1148/1901/72 1149/2605/62 1142/1903/130 +f 1142/1903/130 1149/2605/62 1150/1790/64 +f 1143/1893/127 1150/1790/64 1144/1904/129 +f 1083/1906/115 1108/1908/101 1107/1851/99 +f 1082/1907/57 1109/1910/102 1108/1908/101 +f 1081/1909/13 1110/2606/28 1109/1910/102 +f 1080/1911/114 1111/1915/103 1110/1912/28 +f 1080/1911/114 1079/1917/112 1112/1914/104 +f 1078/1916/132 1113/1862/105 1112/1914/104 +f 1077/1870/111 1114/1850/100 1113/1862/105 +f 1107/1851/99 1114/1850/100 1077/1870/111 +f 1237/1921/62 1251/2607/93 1250/1922/63 +f 1198/1924/28 1232/2608/129 1238/1923/64 +f 1233/1925/65 1232/2036/129 1198/1926/28 +f 1248/1928/67 1234/1930/69 1233/1925/65 +f 1248/1928/67 1247/1989/70 1235/1929/68 +f 1178/1931/74 1209/2013/110 1203/1932/75 +f 1208/1934/76 1209/2013/110 1178/1931/74 +f 1179/1935/77 1180/1961/90 1207/1936/78 +f 1252/1937/71 1251/2607/93 1237/1921/62 +f 1175/1942/79 1205/2609/107 1206/1943/80 +f 1204/1945/82 1205/2609/107 1175/1942/79 +f 1176/1946/83 1177/1933/29 1203/1932/75 +f 1181/1947/13 1182/1965/85 1174/1944/81 +f 1174/1944/81 1182/1965/85 1183/1949/86 +f 1175/1950/79 1183/1949/86 1184/1951/87 +f 1185/1955/91 1186/1960/88 1179/1959/77 +f 1186/1960/88 1187/1962/89 1180/1961/90 +f 1187/1962/89 1181/1976/13 1173/1963/84 +f 1181/1947/13 1188/2610/56 1189/1964/60 +f 1189/1964/60 1190/1967/55 1183/1966/86 +f 1190/1967/55 1191/1969/59 1184/1968/87 +f 1134/1970/124 1192/2611/61 1177/1971/29 +f 1185/1957/91 1192/1956/61 1193/1973/134 +f 1193/1973/134 1194/2612/73 1187/1962/89 +f 1187/1962/89 1194/2612/73 1188/1975/56 +f 1245/1977/92 1252/1937/71 1246/1978/133 +f 1244/1980/94 1251/2613/93 1252/1937/71 +f 1250/1981/63 1251/2613/93 1244/1980/94 +f 1248/1987/67 1249/1985/66 1242/1984/96 +f 1247/1989/70 1248/1987/67 1241/1988/97 +f 1246/1978/133 1247/1989/70 1240/1990/98 +f 1245/1977/92 1239/1979/12 1202/1991/100 +f 1196/1993/101 1244/1995/94 1245/1977/92 +f 1197/1994/102 1243/1997/95 1244/1995/94 +f 1241/2001/97 1242/1998/96 1199/2000/103 +f 1201/2003/105 1240/1990/98 1241/2001/97 +f 1239/1979/12 1240/1990/98 1201/2003/105 +f 1203/1932/75 1210/2014/29 1211/2004/106 +f 1211/2004/106 1212/2614/113 1205/2005/107 +f 1205/2005/107 1212/2614/113 1213/1941/108 +f 1214/2009/58 1215/2012/109 1208/2010/76 +f 1215/2012/109 1216/2021/116 1209/2013/110 +f 1209/2013/110 1216/2021/116 1210/2014/29 +f 1165/2015/111 1166/2016/132 1211/2004/106 +f 1166/2016/132 1167/2615/112 1212/2017/113 +f 1212/2017/113 1167/2615/112 1168/1919/114 +f 1214/2006/58 1170/2008/57 1171/2019/115 +f 1171/2019/115 1172/2046/131 1216/2021/116 +f 1216/2021/116 1172/2046/131 1165/2015/111 +f 1225/2022/28 1226/2037/118 1218/2023/119 +f 1218/2023/119 1226/2037/118 1227/2025/120 +f 1219/2026/121 1227/2025/120 1228/2027/122 +f 1229/2030/125 1230/2616/130 1223/2031/126 +f 1223/2031/126 1230/2616/130 1231/2033/127 +f 1231/2033/127 1225/2044/28 1217/2035/117 +f 1232/2036/129 1233/1925/65 1226/2037/118 +f 1233/1925/65 1234/2039/69 1227/2038/120 +f 1234/2039/69 1235/2131/68 1228/2040/122 +f 1229/2041/125 1236/2133/72 1237/2042/62 +f 1230/2043/130 1237/2042/62 1238/1923/64 +f 1238/1923/64 1232/2608/129 1225/2044/28 +f 1171/2045/115 1196/2048/101 1195/1992/99 +f 1170/2047/57 1197/2050/102 1196/2048/101 +f 1169/2049/13 1198/2617/28 1197/2050/102 +f 1168/2051/114 1199/2055/103 1198/2052/28 +f 1168/2051/114 1167/2056/112 1200/2054/104 +f 1166/2016/132 1201/2003/105 1200/2054/104 +f 1165/2015/111 1202/1991/100 1201/2003/105 +f 1195/1992/99 1202/1991/100 1165/2015/111 +f 1267/2057/92 1274/2101/71 1268/2058/133 +f 1273/2060/93 1274/2101/71 1267/2057/92 +f 1265/2062/95 1272/2106/63 1273/2060/93 +f 1279/2063/1 1280/2618/27 1272/2064/63 +f 1271/2066/66 1278/2102/30 1279/2067/1 +f 1270/2069/67 1271/2108/66 1264/2070/96 +f 1262/2072/98 1269/2096/70 1270/2069/67 +f 1268/2058/133 1269/2096/70 1262/2072/98 +f 1267/2057/92 1261/2059/12 1260/2073/100 +f 1254/2075/101 1266/2077/94 1267/2057/92 +f 1255/2076/102 1265/2079/95 1266/2077/94 +f 1263/2083/97 1264/2080/96 1257/2082/103 +f 1259/2085/105 1262/2072/98 1263/2083/97 +f 1261/2059/12 1262/2072/98 1259/2085/105 +f 1219/2086/121 1258/2095/104 1257/2087/103 +f 1218/2023/119 1257/2087/103 1256/2088/28 +f 1217/2035/117 1256/2619/28 1255/2089/102 +f 1224/2034/128 1255/2089/102 1254/2090/101 +f 1223/2091/126 1254/2090/101 1253/2074/99 +f 1253/2074/99 1260/2073/100 1221/2093/12 +f 1221/2093/12 1260/2073/100 1259/2085/105 +f 1220/2094/123 1259/2085/105 1258/2095/104 +f 1269/2096/70 1276/2104/8 1277/2097/19 +f 1273/2099/93 1281/2109/5 1282/2100/9 +f 1270/2098/67 1277/2097/19 1278/2102/30 +f 1274/2101/71 1282/2100/9 1275/2103/2 +f 1268/2058/133 1275/2103/2 1276/2104/8 +f 1272/2064/63 1280/2618/27 1281/2109/5 +f 1190/2110/55 1189/2112/60 1130/1882/119 +f 1189/2112/60 1188/2620/56 1129/1880/117 +f 1129/1894/117 1188/2621/56 1194/2113/73 +f 1194/2113/73 1193/2115/134 1135/2114/126 +f 1193/2115/134 1192/2611/61 1134/1970/124 +f 1177/1971/29 1191/2117/59 1132/2116/123 +f 1191/2117/59 1190/2110/55 1131/2111/121 +f 1089/2122/29 1103/1781/59 1074/1782/17 +f 1076/1787/15 1104/1786/61 1089/2122/29 +f 1081/2127/13 1085/1817/84 1086/1814/81 +f 1092/1826/90 1085/1828/84 1081/2128/13 +f 1180/1961/90 1173/1963/84 1169/2129/13 +f 1169/2130/13 1173/1948/84 1174/1944/81 +f 1221/2134/12 1246/1978/133 1252/1937/71 +f 1247/1989/70 1246/1978/133 1221/2134/12 +f 1316/2135/223 1315/2146/228 1286/2136/18 +f 1314/2138/224 1320/2165/241 1284/2139/15 +f 1317/2144/227 1316/2135/223 1287/2137/4 +f 1315/2146/228 1314/2622/224 1285/2147/5 +f 1319/2148/229 1318/2623/301 1290/2149/17 +f 1363/2151/230 1377/2624/262 1376/2152/231 +f 1324/2154/27 1358/2264/297 1364/2153/232 +f 1359/2155/233 1358/2255/297 1324/2156/27 +f 1374/2158/235 1360/2160/237 1359/2155/233 +f 1374/2158/235 1373/2161/238 1361/2159/236 +f 1373/2161/238 1372/2625/302 1347/2162/8 +f 1347/2162/8 1372/2625/302 1378/2163/239 +f 1320/2165/241 1319/2148/229 1283/2150/3 +f 1304/2166/242 1335/2170/245 1329/2167/243 +f 1305/2169/244 1334/2172/247 1335/2170/245 +f 1305/2169/244 1306/2190/258 1333/2171/246 +f 1378/2163/239 1377/2624/262 1363/2151/230 +f 1301/2176/248 1331/2626/276 1332/2177/249 +f 1330/2179/251 1331/2626/276 1301/2176/248 +f 1302/2180/252 1303/2168/30 1329/2167/243 +f 1299/2181/253 1307/2192/9 1308/2182/254 +f 1308/2182/254 1309/2184/255 1301/2183/248 +f 1309/2184/255 1310/2481/259 1302/2185/252 +f 1304/2186/242 1311/2478/260 1312/2187/256 +f 1305/2188/244 1312/2187/256 1313/2189/257 +f 1313/2189/257 1307/2199/9 1299/2191/253 +f 1307/2192/9 1314/2622/224 1315/2146/228 +f 1315/2146/228 1316/2627/223 1309/2193/255 +f 1309/2193/255 1316/2627/223 1317/2194/227 +f 1311/2196/260 1318/2479/301 1319/2197/229 +f 1312/2198/256 1319/2197/229 1320/2165/241 +f 1320/2165/241 1314/2138/224 1307/2199/9 +f 1378/2163/239 1372/2625/302 1365/2200/8 +f 1377/2202/262 1378/2163/239 1371/2201/261 +f 1376/2204/231 1377/2202/262 1370/2203/263 +f 1367/2210/266 1374/2212/235 1375/2208/234 +f 1366/2211/267 1373/2161/238 1374/2212/235 +f 1365/2200/8 1372/2625/302 1373/2161/238 +f 1371/2201/261 1365/2200/8 1328/2213/268 +f 1322/2215/270 1370/2217/263 1371/2201/261 +f 1323/2216/271 1369/2219/264 1370/2217/263 +f 1367/2223/266 1368/2220/265 1325/2222/272 +f 1366/2211/267 1367/2223/266 1326/2224/273 +f 1365/2200/8 1366/2211/267 1327/2225/274 +f 1336/2226/30 1337/2227/275 1330/2179/251 +f 1337/2227/275 1338/2229/277 1331/2228/276 +f 1338/2229/277 1339/2486/282 1332/2230/249 +f 1333/2173/246 1340/2175/226 1341/2231/278 +f 1341/2231/278 1342/2233/279 1335/2170/245 +f 1342/2233/279 1336/2226/30 1329/2167/243 +f 1291/2234/280 1292/2277/300 1337/2227/275 +f 1337/2227/275 1292/2277/300 1293/2235/281 +f 1293/2235/281 1294/2484/299 1339/2237/282 +f 1340/2142/226 1296/2141/225 1297/2238/283 +f 1297/2238/283 1298/2267/298 1342/2233/279 +f 1342/2233/279 1298/2267/298 1291/2234/280 +f 1343/2240/284 1351/2256/27 1352/2241/285 +f 1344/2242/286 1352/2241/285 1353/2243/287 +f 1345/2244/288 1353/2243/287 1354/2245/289 +f 1348/2247/291 1355/2249/292 1356/2250/293 +f 1356/2250/293 1357/2253/296 1350/2252/295 +f 1357/2253/296 1351/2265/27 1343/2254/284 +f 1358/2255/297 1359/2155/233 1352/2241/285 +f 1359/2155/233 1360/2628/237 1353/2257/287 +f 1353/2257/287 1360/2628/237 1361/2258/236 +f 1362/2261/240 1363/2629/230 1356/2263/293 +f 1356/2263/293 1363/2629/230 1364/2153/232 +f 1357/2253/296 1364/2153/232 1358/2264/297 +f 1297/2266/283 1322/2269/270 1321/2214/269 +f 1296/2268/225 1323/2271/271 1322/2269/270 +f 1295/2270/9 1324/2630/27 1323/2271/271 +f 1294/2272/299 1325/2276/272 1324/2273/27 +f 1294/2272/299 1293/2278/281 1326/2275/273 +f 1292/2277/300 1327/2225/274 1326/2275/273 +f 1291/2234/280 1328/2213/268 1327/2225/274 +f 1321/2214/269 1328/2213/268 1291/2234/280 +f 1451/2282/230 1465/2631/262 1464/2283/231 +f 1412/2285/27 1446/2403/297 1452/2284/232 +f 1447/2286/233 1446/2395/297 1412/2287/27 +f 1462/2289/235 1448/2291/237 1447/2286/233 +f 1462/2289/235 1461/2349/238 1449/2290/236 +f 1392/2292/242 1423/2373/245 1417/2293/243 +f 1422/2295/247 1423/2373/245 1392/2292/242 +f 1393/2296/244 1394/2322/258 1421/2297/246 +f 1466/2298/239 1465/2631/262 1451/2282/230 +f 1389/2303/248 1419/2632/276 1420/2304/249 +f 1418/2306/251 1419/2632/276 1389/2303/248 +f 1390/2307/252 1391/2294/30 1417/2293/243 +f 1387/2308/253 1395/2326/9 1396/2309/254 +f 1388/2305/250 1396/2309/254 1397/2310/255 +f 1389/2311/248 1397/2310/255 1398/2312/259 +f 1392/2314/242 1399/2316/260 1400/2320/256 +f 1400/2320/256 1401/2323/257 1394/2322/258 +f 1401/2323/257 1395/2337/9 1387/2324/253 +f 1402/2325/224 1403/2327/228 1396/2309/254 +f 1403/2327/228 1404/2633/223 1397/2328/255 +f 1397/2328/255 1404/2633/223 1405/2329/227 +f 1348/2331/291 1406/2634/301 1391/2332/30 +f 1399/2318/260 1406/2317/301 1407/2334/229 +f 1407/2334/229 1408/2635/241 1401/2323/257 +f 1401/2323/257 1408/2635/241 1402/2336/224 +f 1459/2338/261 1466/2298/239 1460/2339/302 +f 1458/2341/263 1465/2636/262 1466/2298/239 +f 1464/2342/231 1465/2636/262 1458/2341/263 +f 1455/2348/266 1462/2637/235 1463/2346/234 +f 1461/2349/238 1462/2637/235 1455/2348/266 +f 1460/2339/302 1461/2349/238 1454/2350/267 +f 1459/2338/261 1453/2340/8 1416/2351/268 +f 1410/2353/270 1458/2638/263 1459/2338/261 +f 1457/2354/264 1458/2638/263 1410/2353/270 +f 1455/2360/266 1456/2357/265 1413/2359/272 +f 1415/2362/274 1454/2350/267 1455/2360/266 +f 1416/2351/268 1453/2340/8 1454/2350/267 +f 1424/2363/30 1425/2364/275 1418/2306/251 +f 1425/2364/275 1426/2639/277 1419/2365/276 +f 1419/2365/276 1426/2639/277 1427/2302/282 +f 1428/2369/226 1429/2640/278 1422/2370/247 +f 1422/2370/247 1429/2640/278 1430/2372/279 +f 1423/2373/245 1430/2372/279 1424/2363/30 +f 1379/2374/280 1380/2375/300 1425/2364/275 +f 1380/2375/300 1381/2377/281 1426/2376/277 +f 1381/2377/281 1382/2280/299 1427/2279/282 +f 1428/2366/226 1384/2368/225 1385/2379/283 +f 1385/2379/283 1386/2405/298 1430/2372/279 +f 1430/2372/279 1386/2405/298 1379/2374/280 +f 1431/2381/284 1439/2396/27 1440/2382/285 +f 1440/2382/285 1441/2641/287 1433/2384/288 +f 1433/2384/288 1441/2641/287 1442/2385/289 +f 1443/2388/292 1444/2642/293 1437/2389/294 +f 1437/2389/294 1444/2642/293 1445/2391/296 +f 1438/2392/295 1445/2391/296 1439/2393/27 +f 1446/2395/297 1447/2286/233 1440/2382/285 +f 1440/2382/285 1447/2286/233 1448/2397/237 +f 1448/2397/237 1449/2492/236 1442/2399/289 +f 1450/2400/240 1451/2643/230 1444/2401/293 +f 1444/2401/293 1451/2643/230 1452/2284/232 +f 1445/2391/296 1452/2284/232 1446/2403/297 +f 1385/2404/283 1410/2407/270 1409/2352/269 +f 1384/2406/225 1411/2409/271 1410/2407/270 +f 1383/2408/9 1412/2644/27 1411/2409/271 +f 1382/2410/299 1413/2414/272 1412/2411/27 +f 1382/2410/299 1381/2415/281 1414/2413/273 +f 1380/2375/300 1415/2362/274 1414/2413/273 +f 1379/2374/280 1416/2351/268 1415/2362/274 +f 1409/2352/269 1416/2351/268 1379/2374/280 +f 1481/2416/261 1488/2461/239 1482/2417/302 +f 1487/2419/262 1488/2461/239 1481/2416/261 +f 1479/2421/264 1486/2465/231 1487/2419/262 +f 1493/2422/1 1494/2645/29 1486/2423/231 +f 1470/2425/27 1485/2462/234 1492/2426/28 +f 1484/2428/235 1485/2467/234 1478/2429/265 +f 1476/2431/267 1483/2432/238 1484/2428/235 +f 1475/2418/8 1482/2417/302 1483/2432/238 +f 1481/2416/261 1475/2418/8 1474/2433/268 +f 1468/2435/270 1480/2437/263 1481/2416/261 +f 1469/2436/271 1479/2439/264 1480/2437/263 +f 1477/2443/266 1478/2440/265 1471/2442/272 +f 1476/2431/267 1477/2443/266 1472/2444/273 +f 1474/2433/268 1475/2418/8 1476/2431/267 +f 1433/2446/288 1472/2455/273 1471/2447/272 +f 1432/2383/286 1471/2447/272 1470/2448/27 +f 1431/2394/284 1470/2646/27 1469/2449/271 +f 1438/2392/295 1469/2449/271 1468/2450/270 +f 1437/2451/294 1468/2450/270 1467/2434/269 +f 1467/2434/269 1474/2433/268 1435/2453/8 +f 1435/2453/8 1474/2433/268 1473/2445/274 +f 1434/2454/290 1473/2445/274 1472/2455/273 +f 1484/2456/235 1483/2432/238 1490/2457/13 +f 1487/2459/262 1495/2468/3 1496/2460/12 +f 1484/2456/235 1491/2458/4 1492/2426/28 +f 1488/2461/239 1496/2460/12 1489/2463/2 +f 1482/2417/302 1489/2463/2 1490/2457/13 +f 1486/2423/231 1494/2645/29 1495/2468/3 +f 1404/2469/223 1403/2471/228 1344/2242/286 +f 1403/2471/228 1402/2647/224 1343/2240/284 +f 1343/2254/284 1402/2648/224 1408/2472/241 +f 1408/2472/241 1407/2474/229 1349/2473/294 +f 1407/2474/229 1406/2634/301 1348/2331/291 +f 1391/2332/30 1405/2476/227 1346/2475/290 +f 1405/2476/227 1404/2469/223 1345/2470/288 +f 1289/2482/19 1303/2483/30 1317/2144/227 +f 1290/2149/17 1318/2623/301 1303/2483/30 +f 1295/2488/9 1299/2181/253 1300/2178/250 +f 1306/2190/258 1299/2191/253 1295/2489/9 +f 1394/2322/258 1387/2324/253 1383/2490/9 +f 1383/2491/9 1387/2308/253 1388/2305/250 +f 1435/2494/8 1460/2339/302 1466/2298/239 +f 1461/2349/238 1460/2339/302 1435/2494/8 +f 1501/2495/19 1500/2509/16 1511/2496/16 +f 1497/2498/5 1507/2649/5 1512/2499/18 +f 1503/2501/3 1509/2508/3 1508/2502/15 +f 1501/2495/19 1505/2497/19 1506/2504/17 +f 1498/2500/18 1512/2499/18 1510/2506/4 +f 1502/2505/17 1506/2504/17 1509/2508/3 +f 1499/2507/4 1510/2506/4 1511/2496/16 +f 1504/2503/15 1508/2502/15 1507/2510/5 +f 1517/2512/19 1516/2526/16 1527/2513/16 +f 1513/2515/5 1523/2650/5 1528/2516/18 +f 1519/2518/3 1525/2525/3 1524/2519/15 +f 1518/2521/17 1517/2512/19 1521/2514/19 +f 1514/2517/18 1528/2516/18 1526/2523/4 +f 1518/2521/17 1522/2522/17 1525/2525/3 +f 1515/2524/4 1526/2523/4 1527/2513/16 +f 1520/2520/15 1524/2519/15 1523/2527/5 +f 1563/2529/3 1571/2539/3 1569/2530/17 +f 1568/2532/16 1576/2542/16 1575/2533/4 +f 1566/2535/18 1574/2651/18 1573/2536/5 +f 1564/2538/15 1572/2545/15 1571/2539/3 +f 1562/2531/17 1569/2530/17 1570/2540/19 +f 1561/2541/19 1570/2540/19 1576/2542/16 +f 1567/2534/4 1575/2533/4 1574/2543/18 +f 1565/2537/5 1573/2536/5 1572/2545/15 diff --git a/src/main/resources/assets/hbm/models/oilFlare.obj b/src/main/resources/assets/hbm/models/oilFlare.obj deleted file mode 100644 index 1ccf29389..000000000 --- a/src/main/resources/assets/hbm/models/oilFlare.obj +++ /dev/null @@ -1,895 +0,0 @@ -# Blender v2.76 (sub 0) OBJ File: 'oilFlare.blend' -# www.blender.org -o Plane -v -1.000000 10.000000 1.000000 -v 1.000000 10.000000 1.000000 -v -1.000000 10.000000 -1.000000 -v 1.000000 10.000000 -1.000000 -v 0.785714 10.000000 0.785714 -v 1.000000 10.000000 0.785714 -v 0.785714 10.000000 1.000000 -v -0.785714 10.000000 0.785714 -v -0.785714 10.000000 1.000000 -v -1.000000 10.000000 0.785714 -v -0.785714 10.000000 -0.785714 -v -1.000000 10.000000 -0.785714 -v -0.785714 10.000000 -1.000000 -v 0.785714 10.000000 -0.785714 -v 0.785714 10.000000 -1.000000 -v 1.000000 10.000000 -0.785714 -v -1.000000 -0.000000 0.785714 -v -1.000000 -0.000000 1.000000 -v 0.785714 -0.000001 -1.000000 -v 0.785714 -0.000001 -0.785714 -v 0.785714 -0.000001 0.785714 -v 1.000000 -0.000001 0.785714 -v -0.785714 -0.000000 -1.000000 -v -1.000000 -0.000000 -1.000000 -v 1.000000 -0.000001 -1.000000 -v 1.000000 -0.000001 -0.785714 -v -0.785714 -0.000000 0.785714 -v -0.785714 -0.000000 1.000000 -v -0.785714 -0.000000 -0.785714 -v -1.000000 -0.000000 -0.785714 -v 1.000000 -0.000001 1.000000 -v 0.785714 -0.000001 1.000000 -v 0.785714 2.499999 -0.785714 -v 1.000000 2.499999 -0.785714 -v 0.785714 2.499999 -1.000000 -v 0.785714 5.000000 -0.785714 -v 0.785714 5.000000 -1.000000 -v 1.000000 5.000000 -0.785714 -v 1.000000 2.499999 0.785714 -v 0.785714 2.499999 0.785714 -v 0.785714 2.499999 1.000000 -v 0.785714 7.500000 -1.000000 -v 1.000000 7.500000 -0.785714 -v 0.785714 7.500000 1.000000 -v 0.785714 7.500000 0.785714 -v 0.785714 7.500000 -0.785714 -v 1.000000 7.500000 0.785714 -v 0.785714 5.000000 1.000000 -v 1.000000 5.000000 0.785714 -v 0.785714 5.000000 0.785714 -v -1.000000 5.000000 -0.785714 -v -0.785714 5.000000 -0.785714 -v -0.785714 5.000000 -1.000000 -v -0.785714 7.500000 -0.785714 -v -1.000000 7.500000 -0.785714 -v -0.785714 7.500000 -1.000000 -v -1.000000 2.500000 -0.785714 -v -0.785714 2.500000 -1.000000 -v -0.785714 2.500000 -0.785714 -v -0.785714 5.000000 0.785714 -v -1.000000 5.000000 0.785714 -v -0.785714 5.000000 1.000000 -v -0.785714 2.500000 0.785714 -v -0.785714 2.500000 1.000000 -v -1.000000 2.500000 0.785714 -v -1.000000 2.500000 -1.000000 -v -1.000000 5.000000 -1.000000 -v -1.000000 7.500000 -1.000000 -v -1.000000 7.500000 0.785714 -v -0.785714 7.500000 0.785714 -v -0.785714 7.500000 1.000000 -v 1.000000 7.500000 1.000000 -v 1.000000 4.999417 1.000000 -v 1.000000 2.500000 1.000000 -v -1.000000 2.500000 1.000000 -v -1.000000 5.000000 1.000000 -v -1.000000 7.500000 1.000000 -v 1.000000 2.499999 -1.000000 -v 1.000000 4.999416 -1.000000 -v 1.000000 7.499999 -1.000000 -v 1.500000 5.000000 -1.500000 -v 1.500000 5.000000 1.500000 -v -1.500000 5.000000 1.500000 -v -1.500000 5.000000 -1.500000 -v 1.500000 10.000000 -1.500000 -v 1.500000 10.000000 1.500000 -v -1.500000 10.000000 1.500000 -v -1.500000 10.000000 -1.500000 -v 0.530330 2.000000 -0.530330 -v -0.000000 2.000000 -0.750000 -v 0.000000 2.000000 -0.250000 -v 0.000000 10.000000 -0.250000 -v 0.176777 2.000000 -0.176777 -v 0.176777 10.000000 -0.176777 -v 0.250000 2.000000 0.000000 -v 0.250000 10.000000 0.000000 -v 0.176777 2.000000 0.176777 -v 0.176777 10.000000 0.176777 -v -0.000000 2.000000 0.250000 -v -0.000000 10.000000 0.250000 -v -0.176777 2.000000 0.176777 -v -0.176777 10.000000 0.176777 -v -0.250000 2.000000 -0.000000 -v -0.250000 10.000000 -0.000000 -v -0.176777 2.000000 -0.176777 -v -0.176777 10.000000 -0.176777 -v 0.750000 2.000000 0.000000 -v 0.530330 2.000000 0.530330 -v -0.000000 2.000000 0.750000 -v -0.530330 2.000000 0.530330 -v -0.750000 2.000000 -0.000000 -v -0.530330 2.000000 -0.530330 -v -0.530330 0.000000 -0.530330 -v -0.000000 0.000000 -0.750000 -v -0.750000 0.000000 -0.000000 -v -0.530330 0.000000 0.530330 -v -0.000000 0.000000 0.750000 -v 0.530330 0.000000 0.530330 -v 0.750000 0.000000 0.000000 -v 0.530330 0.000000 -0.530330 -v -0.785714 5.000000 -0.000000 -v 0.000000 5.000000 -0.785714 -v 0.785714 5.000000 -0.000000 -v 0.000000 5.000000 0.785714 -v 0.000000 5.000000 -0.250000 -v 0.176777 5.000000 -0.176777 -v 0.250000 5.000000 0.000000 -v 0.176777 5.000000 0.176777 -v -0.000000 5.000000 0.250000 -v -0.176777 5.000000 0.176777 -v -0.250000 5.000000 -0.000000 -v -0.176777 5.000000 -0.176777 -v 0.176776 10.250000 -0.176777 -v -0.000000 10.250000 -0.250000 -v 0.250000 10.250000 0.000000 -v 0.176776 10.250000 0.176777 -v -0.000000 10.250000 0.250000 -v -0.176777 10.250000 0.176777 -v -0.250000 10.250000 -0.000000 -v -0.176777 10.250000 -0.176777 -v 0.353553 10.250000 -0.353553 -v -0.000000 10.250000 -0.500000 -v 0.500000 10.250000 0.000000 -v 0.353553 10.250000 0.353553 -v -0.000000 10.250000 0.500000 -v -0.353554 10.250000 0.353553 -v -0.500000 10.250000 -0.000000 -v -0.353554 10.250000 -0.353553 -v 0.353553 11.500000 -0.353553 -v -0.000000 11.500000 -0.500000 -v 0.500000 11.500000 0.000000 -v 0.353553 11.500000 0.353553 -v -0.000000 11.500000 0.500000 -v -0.353554 11.500000 0.353553 -v -0.500000 11.500000 -0.000000 -v -0.353554 11.500000 -0.353553 -v -0.156250 0.343750 1.500000 -v -0.156250 0.656250 1.500000 -v -0.156250 0.343750 -1.500000 -v -0.156250 0.656250 -1.500000 -v 0.156250 0.343750 1.500000 -v 0.156250 0.656250 1.500000 -v 0.156250 0.343750 -1.500000 -v 0.156250 0.656250 -1.500000 -v -1.500000 0.343750 0.156250 -v -1.500000 0.656250 0.156250 -v -1.500000 0.343750 -0.156250 -v -1.500000 0.656250 -0.156250 -v 1.500000 0.343750 0.156250 -v 1.500000 0.656250 0.156250 -v 1.500000 0.343750 -0.156250 -v 1.500000 0.656250 -0.156250 -v 0.353553 10.500002 -0.353553 -v -0.000000 10.500002 -0.500000 -v 0.500000 10.500002 0.000000 -v 0.353553 10.500002 0.353553 -v -0.000000 10.500002 0.500000 -v -0.353554 10.500002 0.353553 -v -0.500000 10.500002 -0.000000 -v -0.353554 10.500002 -0.353553 -v 0.785714 10.000000 -0.000000 -v 0.000000 10.000000 -0.785714 -v 0.000000 10.000000 0.785714 -v -0.785714 10.000000 -0.000000 -vt 0.397379 0.676621 -vt 0.397379 0.659785 -vt 0.414215 0.659785 -vt 0.414215 0.676621 -vt 0.508956 0.682773 -vt 0.492119 0.682773 -vt 0.492119 0.665937 -vt 0.259282 0.481688 -vt 0.276118 0.481688 -vt 0.276118 0.678115 -vt 0.159765 0.487474 -vt 0.159766 0.683901 -vt 0.142929 0.683901 -vt 0.176602 0.683901 -vt 0.176602 0.487474 -vt 0.193439 0.487474 -vt 0.126092 0.683901 -vt 0.126092 0.487474 -vt 0.142929 0.487474 -vt 0.951130 0.419382 -vt 0.934293 0.419382 -vt 0.934293 0.187374 -vt 0.951130 0.187374 -vt 0.259282 0.678115 -vt 0.242445 0.678115 -vt 0.193439 0.683924 -vt 0.292955 0.481688 -vt 0.309792 0.481688 -vt 0.309792 0.678115 -vt 0.890550 0.895409 -vt 0.873714 0.895409 -vt 0.873714 0.663401 -vt 0.890550 0.663401 -vt 0.292955 0.678115 -vt 0.242445 0.481688 -vt 0.570884 0.348475 -vt 0.509150 0.365312 -vt 0.447416 0.348475 -vt 0.570884 0.427046 -vt 0.570884 0.365312 -vt 0.587721 0.365312 -vt 0.447416 0.505617 -vt 0.509150 0.488781 -vt 0.570884 0.505617 -vt 0.430579 0.365312 -vt 0.447416 0.427046 -vt 0.430579 0.488781 -vt 0.823073 0.955128 -vt 0.699604 0.955128 -vt 0.699604 0.938291 -vt 0.823073 0.938291 -vt 0.509151 0.488780 -vt 0.627007 0.309189 -vt 0.587721 0.488780 -vt 0.391293 0.309189 -vt 0.391293 0.544904 -vt 0.627007 0.544903 -vt 0.150959 0.194056 -vt 0.135925 0.157761 -vt 0.181027 0.157761 -vt 0.690955 0.644624 -vt 0.705989 0.644624 -vt 0.705989 0.880337 -vt 0.286264 0.194056 -vt 0.271230 0.157761 -vt 0.316332 0.157761 -vt 0.721023 0.644624 -vt 0.721023 0.880337 -vt 0.015654 0.194057 -vt 0.000620 0.157761 -vt 0.045721 0.157761 -vt 0.736057 0.644624 -vt 0.736057 0.880337 -vt 0.196060 0.194056 -vt 0.226128 0.157761 -vt 0.751091 0.644624 -vt 0.751091 0.880337 -vt 0.241162 0.194056 -vt 0.766125 0.644624 -vt 0.766125 0.880337 -vt 0.105857 0.194056 -vt 0.090823 0.157761 -vt 0.316332 0.000619 -vt 0.361434 0.000619 -vt 0.781159 0.644624 -vt 0.781159 0.880337 -vt 0.560809 0.260328 -vt 0.560809 0.240685 -vt 0.575842 0.240685 -vt 0.796193 0.644624 -vt 0.796193 0.880337 -vt 0.811227 0.644624 -vt 0.811227 0.880337 -vt 0.331366 0.194056 -vt 0.361434 0.157761 -vt 0.060755 0.194057 -vt 0.910214 0.111717 -vt 0.833220 0.143609 -vt 0.801328 0.066615 -vt 0.045721 0.000619 -vt 0.090823 0.000619 -vt 0.226128 0.000619 -vt 0.271230 0.000619 -vt 0.135925 0.000619 -vt 0.181026 0.000619 -vt 0.000619 0.000620 -vt 0.790588 0.620702 -vt 0.775554 0.620702 -vt 0.775553 0.227849 -vt 0.760519 0.227849 -vt 0.745486 0.227849 -vt 0.760520 0.620702 -vt 0.730452 0.227849 -vt 0.745486 0.620702 -vt 0.715418 0.227849 -vt 0.730451 0.620702 -vt 0.715417 0.620702 -vt 0.700383 0.620702 -vt 0.700384 0.227849 -vt 0.685350 0.620702 -vt 0.685350 0.227849 -vt 0.805622 0.620702 -vt 0.790588 0.227849 -vt 0.447416 0.365311 -vt 0.495261 0.413156 -vt 0.489507 0.427046 -vt 0.495261 0.440935 -vt 0.447416 0.488781 -vt 0.509150 0.446689 -vt 0.523040 0.440935 -vt 0.528793 0.427046 -vt 0.523040 0.413156 -vt 0.509150 0.407403 -vt 0.645304 0.053326 -vt 0.652821 0.071474 -vt 0.622753 0.071474 -vt 0.515707 0.260328 -vt 0.515707 0.240685 -vt 0.530741 0.240685 -vt 0.575842 0.260328 -vt 0.590876 0.240685 -vt 0.500673 0.260328 -vt 0.500673 0.240685 -vt 0.530741 0.260328 -vt 0.545775 0.240685 -vt 0.470605 0.260328 -vt 0.470605 0.240685 -vt 0.485639 0.240685 -vt 0.545775 0.260328 -vt 0.485639 0.260328 -vt 0.502482 0.071474 -vt 0.502482 0.169687 -vt 0.472414 0.169687 -vt 0.449863 0.053326 -vt 0.464897 0.053326 -vt 0.472414 0.071474 -vt 0.525033 0.053326 -vt 0.532550 0.071474 -vt 0.585168 0.053326 -vt 0.592685 0.071474 -vt 0.562617 0.071474 -vt 0.615236 0.053326 -vt 0.434829 0.053326 -vt 0.442346 0.071474 -vt 0.412278 0.071474 -vt 0.479931 0.053326 -vt 0.494965 0.053326 -vt 0.540067 0.053326 -vt 0.555101 0.053326 -vt 0.570884 0.488781 -vt 0.562617 0.169687 -vt 0.532550 0.169687 -vt 0.652821 0.169687 -vt 0.622753 0.169687 -vt 0.442346 0.169687 -vt 0.592685 0.169687 -vt 0.412278 0.169687 -vt 0.303414 0.349532 -vt 0.303414 0.374085 -vt 0.067700 0.374085 -vt 0.327967 0.398639 -vt 0.303414 0.398639 -vt 0.067700 0.324979 -vt 0.067700 0.300425 -vt 0.303414 0.300425 -vt 0.043147 0.374085 -vt 0.067700 0.398638 -vt 0.303414 0.324978 -vt 0.067700 0.349532 -vt 0.692864 0.104440 -vt 0.714125 0.053111 -vt 0.744193 0.125701 -vt 0.508956 0.665937 -vt 0.587721 0.505616 -vt 0.587721 0.348475 -vt 0.430579 0.348475 -vt 0.430579 0.505618 -vt 0.165993 0.194056 -vt 0.690955 0.880337 -vt 0.301298 0.194056 -vt 0.030687 0.194057 -vt 0.211094 0.194056 -vt 0.256196 0.194056 -vt 0.120891 0.194056 -vt 0.346400 0.194056 -vt 0.075789 0.194057 -vt 0.833220 0.034724 -vt 0.878322 0.034724 -vt 0.910214 0.066615 -vt 0.878322 0.143609 -vt 0.801328 0.111717 -vt 0.805622 0.227849 -vt 0.630270 0.053326 -vt 0.590877 0.260328 -vt 0.509999 0.053326 -vt 0.570134 0.053326 -vt 0.600202 0.053326 -vt 0.419795 0.053326 -vt 0.327967 0.374085 -vt 0.043147 0.398638 -vt 0.765454 0.074372 -vt 0.765454 0.104440 -vt 0.714125 0.125701 -vt 0.692864 0.074372 -vt 0.744193 0.053111 -vn 0.000000 1.000000 0.000000 -vn 0.000000 -1.000000 0.000000 -vn 0.000000 0.000000 -1.000000 -vn 0.000000 0.000000 1.000000 -vn 1.000000 0.000000 0.000000 -vn 0.000000 0.532200 0.846600 -vn 0.000000 0.532200 -0.846600 -vn -1.000000 0.000000 0.000000 -vn -0.846600 0.532200 0.000000 -vn 0.846600 0.532200 0.000000 -vn -0.923900 0.000000 0.382700 -vn -0.382700 0.000000 0.923900 -vn 0.382700 0.000000 0.923900 -vn 0.923900 0.000000 0.382700 -vn 0.923900 0.000000 -0.382700 -vn -0.923900 0.000000 -0.382700 -vn 0.382700 0.000000 -0.923900 -vn -0.382700 0.000000 -0.923900 -vn -0.003900 1.000000 -0.002700 -vn -0.003900 1.000000 0.002700 -vn 0.002700 1.000000 -0.003900 -vn 0.002700 1.000000 0.003900 -s off -f 7/1/1 2/2/1 6/3/1 -f 1/4/1 9/1/1 8/2/1 -f 12/1/1 11/2/1 13/3/1 -f 14/4/1 16/1/1 4/2/1 -f 25/5/2 26/6/2 20/7/2 -f 27/5/2 28/6/2 18/7/2 -f 23/5/2 29/6/2 30/7/2 -f 22/5/2 31/6/2 32/7/2 -f 56/8/3 68/9/3 3/10/3 -f 67/11/3 68/12/3 56/13/3 -f 57/14/4 30/15/4 29/16/4 -f 59/17/5 29/18/5 23/19/5 -f 34/20/6 33/21/6 21/22/6 -f 26/22/7 20/23/7 40/20/7 -f 41/8/8 48/24/8 50/25/8 -f 50/18/8 48/19/8 44/13/8 -f 50/16/3 45/26/3 47/14/3 -f 47/27/3 45/28/3 5/29/3 -f 44/8/8 7/24/8 5/25/8 -f 38/30/6 36/31/6 40/32/6 -f 33/33/7 50/30/7 49/31/7 -f 49/23/6 43/20/6 46/21/6 -f 47/33/6 16/30/6 14/31/6 -f 36/23/7 45/20/7 47/21/7 -f 5/30/7 6/31/7 43/32/7 -f 54/17/5 52/18/5 53/19/5 -f 55/14/4 51/15/4 52/16/4 -f 12/34/4 55/27/4 54/28/4 -f 11/25/5 54/35/5 56/8/5 -f 52/25/5 59/35/5 58/8/5 -f 51/34/4 57/27/4 59/28/4 -f 66/9/3 67/10/3 53/24/3 -f 58/13/3 23/19/3 24/11/3 -f 64/14/5 28/15/5 27/16/5 -f 63/28/5 60/29/5 62/34/5 -f 60/16/5 70/26/5 71/14/5 -f 9/34/5 71/27/5 70/28/5 -f 10/24/3 8/25/3 70/35/3 -f 70/17/3 60/18/3 61/19/3 -f 61/24/3 60/25/3 63/35/3 -f 27/18/3 17/19/3 65/13/3 -f 54/33/9 14/30/9 15/31/9 -f 52/23/9 46/20/9 42/21/9 -f 58/32/9 59/33/9 36/30/9 -f 33/20/9 35/21/9 23/22/9 -f 20/22/10 19/23/10 58/20/10 -f 52/31/10 33/32/10 35/33/10 -f 36/22/10 37/23/10 56/20/10 -f 11/30/10 46/33/10 42/32/10 -f 7/30/9 5/31/9 70/32/9 -f 62/23/9 44/20/9 45/21/9 -f 63/32/9 64/33/9 48/30/9 -f 40/21/9 27/22/9 28/23/9 -f 32/22/10 21/23/10 63/20/10 -f 41/32/10 40/33/10 60/30/10 -f 71/20/10 48/23/10 50/22/10 -f 45/33/10 8/30/10 9/31/10 -f 10/30/7 8/31/7 54/32/7 -f 70/33/6 11/30/6 12/31/6 -f 70/21/7 52/22/7 51/23/7 -f 52/30/6 51/31/6 65/32/6 -f 65/20/7 63/21/7 29/22/7 -f 59/20/6 57/21/6 17/22/6 -f 61/30/7 60/31/7 59/32/7 -f 60/23/6 54/20/6 55/21/6 -f 40/28/3 50/29/3 49/34/3 -f 40/17/8 21/18/8 32/19/8 -f 21/16/3 40/26/3 39/14/3 -f 33/17/4 20/18/4 26/19/4 -f 19/15/8 20/16/8 33/26/8 -f 38/24/4 36/25/4 33/35/4 -f 35/27/8 33/28/8 36/29/8 -f 38/19/4 43/13/4 46/17/4 -f 37/15/8 36/16/8 46/26/8 -f 16/24/4 14/25/4 46/35/4 -f 42/27/8 46/28/8 14/29/8 -f 7/36/1 183/37/1 9/38/1 -f 181/39/1 5/40/1 6/41/1 -f 13/42/1 182/43/1 15/44/1 -f 10/45/1 184/46/1 12/47/1 -f 40/48/1 63/49/1 64/50/1 -f 33/48/1 40/49/1 39/50/1 -f 59/51/1 57/48/1 65/49/1 -f 59/50/1 33/51/1 35/48/1 -f 53/42/1 122/52/1 37/44/1 -f 48/36/1 50/40/1 124/37/1 -f 121/46/1 51/47/1 61/45/1 -f 123/39/1 50/40/1 49/41/1 -f 70/50/1 54/51/1 55/48/1 -f 71/50/1 44/51/1 45/48/1 -f 46/51/1 42/48/1 56/49/1 -f 47/50/1 43/51/1 46/48/1 -f 72/9/4 2/10/4 7/24/4 -f 72/9/5 47/27/5 6/34/5 -f 41/13/4 32/19/4 31/11/4 -f 73/10/4 48/24/4 41/8/4 -f 48/19/4 73/11/4 72/12/4 -f 31/11/5 22/15/5 39/14/5 -f 39/27/5 49/34/5 73/10/5 -f 49/15/5 47/14/5 72/12/5 -f 68/9/8 55/27/8 12/34/8 -f 55/14/8 68/12/8 67/11/8 -f 51/34/8 67/10/8 66/9/8 -f 30/15/8 57/14/8 66/12/8 -f 65/13/8 17/19/8 18/11/8 -f 76/10/8 61/24/8 65/8/8 -f 69/13/8 61/19/8 76/11/8 -f 69/8/8 77/9/8 1/10/8 -f 28/15/4 64/14/4 75/12/4 -f 62/34/4 76/10/4 75/9/4 -f 71/14/4 77/12/4 76/11/4 -f 77/9/4 71/27/4 9/34/4 -f 4/10/5 16/24/5 43/8/5 -f 80/12/5 43/13/5 38/19/5 -f 79/10/5 38/24/5 34/8/5 -f 26/19/5 25/11/5 78/12/5 -f 19/15/3 35/14/3 78/12/3 -f 79/10/3 78/9/3 35/27/3 -f 80/12/3 79/11/3 37/15/3 -f 4/10/3 80/9/3 42/27/3 -f 49/41/1 82/53/1 38/54/1 -f 48/36/1 83/55/1 82/53/1 -f 53/42/1 37/44/1 84/56/1 -f 51/47/1 83/55/1 61/45/1 -f 88/56/1 87/55/1 10/45/1 -f 85/57/1 88/56/1 13/42/1 -f 86/53/1 85/57/1 16/54/1 -f 87/55/1 86/53/1 7/36/1 -f 97/58/1 108/59/1 107/60/1 -f 103/61/11 101/62/11 130/63/11 -f 91/64/1 90/65/1 112/66/1 -f 101/62/12 99/67/12 129/68/12 -f 103/69/1 111/70/1 110/71/1 -f 97/72/13 128/73/13 129/68/13 -f 95/74/1 107/60/1 89/75/1 -f 95/76/14 127/77/14 128/73/14 -f 93/78/1 89/75/1 90/65/1 -f 93/79/15 126/80/15 127/77/15 -f 99/81/1 109/82/1 108/59/1 -f 112/66/16 113/83/16 115/84/16 -f 91/85/17 125/86/17 126/80/17 -f 100/87/12 137/88/12 138/89/12 -f 91/85/18 105/90/18 132/91/18 -f 105/90/16 103/92/16 131/93/16 -f 105/94/1 112/66/1 111/95/1 -f 101/96/1 110/71/1 109/82/1 -f 118/97/2 116/98/2 113/99/2 -f 110/71/12 116/100/12 117/101/12 -f 89/75/17 120/102/17 114/103/17 -f 109/82/13 117/101/13 118/104/13 -f 108/59/14 118/104/14 119/105/14 -f 90/65/18 114/103/18 113/83/18 -f 111/70/11 115/106/11 116/100/11 -f 107/60/15 119/105/15 120/102/15 -f 106/107/18 92/108/18 125/109/18 -f 126/110/17 125/109/17 92/108/17 -f 127/111/15 126/110/15 94/112/15 -f 128/113/14 127/111/14 96/114/14 -f 129/115/13 128/113/13 98/116/13 -f 100/117/12 102/118/12 130/119/12 -f 102/118/11 104/120/11 131/121/11 -f 104/122/16 106/107/16 132/123/16 -f 121/46/1 60/124/1 130/125/1 -f 121/46/1 131/126/1 132/127/1 -f 122/52/1 52/128/1 132/127/1 -f 122/52/1 125/129/1 126/130/1 -f 126/130/1 127/131/1 123/39/1 -f 123/39/1 127/131/1 128/132/1 -f 128/132/1 129/133/1 124/37/1 -f 124/37/1 129/133/1 130/125/1 -f 139/134/2 147/135/2 148/136/2 -f 94/137/15 133/138/15 135/139/15 -f 102/140/11 138/89/11 139/141/11 -f 92/142/17 134/143/17 133/138/17 -f 96/144/14 135/139/14 136/145/14 -f 104/146/16 139/147/16 140/148/16 -f 98/149/13 136/145/13 137/88/13 -f 106/150/18 140/148/18 134/143/18 -f 144/151/13 152/152/13 153/153/13 -f 138/154/2 137/155/2 145/156/2 -f 135/157/2 143/158/2 144/151/2 -f 134/159/2 142/160/2 141/161/2 -f 140/162/2 148/136/2 142/160/2 -f 138/163/2 146/164/2 147/165/2 -f 137/166/2 136/167/2 144/151/2 -f 135/168/2 133/169/2 141/161/2 -f 181/39/1 14/170/1 94/130/1 -f 141/161/15 149/171/15 151/172/15 -f 147/135/16 155/173/16 156/174/16 -f 145/156/12 153/153/12 154/175/12 -f 143/158/14 151/172/14 152/152/14 -f 142/160/17 150/176/17 149/171/17 -f 148/136/18 156/174/18 150/176/18 -f 146/164/11 154/175/11 155/177/11 -f 160/178/8 159/179/8 157/180/8 -f 164/181/3 163/182/3 159/179/3 -f 162/183/5 161/184/5 163/185/5 -f 158/186/4 157/180/4 161/187/4 -f 159/179/2 163/182/2 161/187/2 -f 164/188/1 160/178/1 158/189/1 -f 168/186/8 167/180/8 165/187/8 -f 172/178/3 171/179/3 167/180/3 -f 170/181/5 169/182/5 171/179/5 -f 166/183/4 165/184/4 169/185/4 -f 167/180/2 171/179/2 169/182/2 -f 172/178/1 168/189/1 166/183/1 -f 179/190/1 177/191/1 174/192/1 -f 98/132/1 5/40/1 181/39/1 -f 183/37/1 5/40/1 98/132/1 -f 183/37/1 100/133/1 102/125/1 -f 184/46/1 8/124/1 102/125/1 -f 184/46/1 104/126/1 106/127/1 -f 182/43/1 11/128/1 106/127/1 -f 182/43/1 92/129/1 94/130/1 -f 5/4/1 7/1/1 6/3/1 -f 10/3/1 1/4/1 8/2/1 -f 3/4/1 12/1/1 13/3/1 -f 15/3/1 14/4/1 4/2/1 -f 19/193/2 25/5/2 20/7/2 -f 17/193/2 27/5/2 18/7/2 -f 24/193/2 23/5/2 30/7/2 -f 21/193/2 22/5/2 32/7/2 -f 13/24/3 56/8/3 3/10/3 -f 53/19/3 67/11/3 56/13/3 -f 59/26/4 57/14/4 29/16/4 -f 58/13/5 59/17/5 23/19/5 -f 22/23/6 34/20/6 21/22/6 -f 39/21/7 26/22/7 40/20/7 -f 40/35/8 41/8/8 50/25/8 -f 45/17/8 50/18/8 44/13/8 -f 49/15/3 50/16/3 47/14/3 -f 6/34/3 47/27/3 5/29/3 -f 45/35/8 44/8/8 5/25/8 -f 39/33/6 38/30/6 40/32/6 -f 34/32/7 33/33/7 49/31/7 -f 50/22/6 49/23/6 46/21/6 -f 45/32/6 47/33/6 14/31/6 -f 38/22/7 36/23/7 47/21/7 -f 46/33/7 5/30/7 43/32/7 -f 56/13/5 54/17/5 53/19/5 -f 54/26/4 55/14/4 52/16/4 -f 11/29/4 12/34/4 54/28/4 -f 13/24/5 11/25/5 56/8/5 -f 53/24/5 52/25/5 58/8/5 -f 52/29/4 51/34/4 59/28/4 -f 58/8/3 66/9/3 53/24/3 -f 66/12/3 58/13/3 24/11/3 -f 63/26/5 64/14/5 27/16/5 -f 64/27/5 63/28/5 62/34/5 -f 62/15/5 60/16/5 71/14/5 -f 8/29/5 9/34/5 70/28/5 -f 69/8/3 10/24/3 70/35/3 -f 69/13/3 70/17/3 61/19/3 -f 65/8/3 61/24/3 63/35/3 -f 63/17/3 27/18/3 65/13/3 -f 56/32/9 54/33/9 15/31/9 -f 53/22/9 52/23/9 42/21/9 -f 37/31/9 58/32/9 36/30/9 -f 29/23/9 33/20/9 23/22/9 -f 59/21/10 20/22/10 58/20/10 -f 53/30/10 52/31/10 35/33/10 -f 54/21/10 36/22/10 56/20/10 -f 13/31/10 11/30/10 42/32/10 -f 71/33/9 7/30/9 70/32/9 -f 60/22/9 62/23/9 45/21/9 -f 50/31/9 63/32/9 48/30/9 -f 41/20/9 40/21/9 28/23/9 -f 64/21/10 32/22/10 63/20/10 -f 62/31/10 41/32/10 60/30/10 -f 70/21/10 71/20/10 50/22/10 -f 44/32/10 45/33/10 9/31/10 -f 55/33/7 10/30/7 54/32/7 -f 69/32/6 70/33/6 12/31/6 -f 69/20/7 70/21/7 51/23/7 -f 63/33/6 52/30/6 65/32/6 -f 30/23/7 65/20/7 29/22/7 -f 27/23/6 59/20/6 17/22/6 -f 57/33/7 61/30/7 59/32/7 -f 61/22/6 60/23/6 55/21/6 -f 39/27/3 40/28/3 49/34/3 -f 41/13/8 40/17/8 32/19/8 -f 22/15/3 21/16/3 39/14/3 -f 34/13/4 33/17/4 26/19/4 -f 35/14/8 19/15/8 33/26/8 -f 34/8/4 38/24/4 33/35/4 -f 37/34/8 35/27/8 36/29/8 -f 36/18/4 38/19/4 46/17/4 -f 42/14/8 37/15/8 46/26/8 -f 43/8/4 16/24/4 46/35/4 -f 15/34/8 42/27/8 14/29/8 -f 8/124/1 9/38/1 183/37/1 -f 7/36/1 5/40/1 183/37/1 -f 6/41/1 16/54/1 181/39/1 -f 14/170/1 181/39/1 16/54/1 -f 14/170/1 15/44/1 182/43/1 -f 13/42/1 11/128/1 182/43/1 -f 11/128/1 12/47/1 184/46/1 -f 10/45/1 8/124/1 184/46/1 -f 41/51/1 40/48/1 64/50/1 -f 34/51/1 33/48/1 39/50/1 -f 63/50/1 59/51/1 65/49/1 -f 58/49/1 59/50/1 35/48/1 -f 36/170/1 37/44/1 122/52/1 -f 53/42/1 52/128/1 122/52/1 -f 124/37/1 60/124/1 62/38/1 -f 62/38/1 48/36/1 124/37/1 -f 61/45/1 60/124/1 121/46/1 -f 121/46/1 52/128/1 51/47/1 -f 49/41/1 38/54/1 123/39/1 -f 36/170/1 123/39/1 38/54/1 -f 69/49/1 70/50/1 55/48/1 -f 70/49/1 71/50/1 45/48/1 -f 54/50/1 46/51/1 56/49/1 -f 45/49/1 47/50/1 46/48/1 -f 44/8/4 72/9/4 7/24/4 -f 2/10/5 72/9/5 6/34/5 -f 74/12/4 41/13/4 31/11/4 -f 74/9/4 73/10/4 41/8/4 -f 44/13/4 48/19/4 72/12/4 -f 74/12/5 31/11/5 39/14/5 -f 74/9/5 39/27/5 73/10/5 -f 73/11/5 49/15/5 72/12/5 -f 3/10/8 68/9/8 12/34/8 -f 51/15/8 55/14/8 67/11/8 -f 57/27/8 51/34/8 66/9/8 -f 24/11/8 30/15/8 66/12/8 -f 75/12/8 65/13/8 18/11/8 -f 75/9/8 76/10/8 65/8/8 -f 77/12/8 69/13/8 76/11/8 -f 10/24/8 69/8/8 1/10/8 -f 18/11/4 28/15/4 75/12/4 -f 64/27/4 62/34/4 75/9/4 -f 62/15/4 71/14/4 76/11/4 -f 1/10/4 77/9/4 9/34/4 -f 80/9/5 4/10/5 43/8/5 -f 79/11/5 80/12/5 38/19/5 -f 78/9/5 79/10/5 34/8/5 -f 34/13/5 26/19/5 78/12/5 -f 25/11/3 19/15/3 78/12/3 -f 37/34/3 79/10/3 35/27/3 -f 42/14/3 80/12/3 37/15/3 -f 15/34/3 4/10/3 42/27/3 -f 81/57/19 79/194/19 38/54/19 -f 49/41/20 73/195/20 82/53/20 -f 81/57/1 38/54/1 82/53/1 -f 82/53/21 73/195/21 48/36/21 -f 48/36/1 62/38/1 83/55/1 -f 76/196/1 83/55/1 62/38/1 -f 81/57/1 84/56/1 37/44/1 -f 67/197/1 53/42/1 84/56/1 -f 37/44/22 79/194/22 81/57/22 -f 51/47/1 67/197/1 84/56/1 -f 76/196/1 61/45/1 83/55/1 -f 84/56/1 83/55/1 51/47/1 -f 12/47/1 3/197/1 88/56/1 -f 87/55/1 1/196/1 10/45/1 -f 10/45/1 12/47/1 88/56/1 -f 13/42/1 15/44/1 85/57/1 -f 4/194/1 85/57/1 15/44/1 -f 88/56/1 3/197/1 13/42/1 -f 16/54/1 6/41/1 86/53/1 -f 2/195/1 86/53/1 6/41/1 -f 85/57/1 4/194/1 16/54/1 -f 7/36/1 9/38/1 87/55/1 -f 1/196/1 87/55/1 9/38/1 -f 86/53/1 2/195/1 7/36/1 -f 95/198/1 97/58/1 107/60/1 -f 131/199/11 103/61/11 130/63/11 -f 105/200/1 91/64/1 112/66/1 -f 130/63/12 101/62/12 129/68/12 -f 101/201/1 103/69/1 110/71/1 -f 99/67/13 97/72/13 129/68/13 -f 93/202/1 95/74/1 89/75/1 -f 97/72/14 95/76/14 128/73/14 -f 91/203/1 93/78/1 90/65/1 -f 95/76/15 93/79/15 127/77/15 -f 97/204/1 99/81/1 108/59/1 -f 111/95/16 112/66/16 115/84/16 -f 93/79/17 91/85/17 126/80/17 -f 102/140/12 100/87/12 138/89/12 -f 125/86/18 91/85/18 132/91/18 -f 132/91/16 105/90/16 131/93/16 -f 103/205/1 105/94/1 111/95/1 -f 99/206/1 101/96/1 109/82/1 -f 113/99/2 114/207/2 120/208/2 -f 120/208/2 119/209/2 118/97/2 -f 118/97/2 117/210/2 116/98/2 -f 116/98/2 115/211/2 113/99/2 -f 113/99/2 120/208/2 118/97/2 -f 109/82/12 110/71/12 117/101/12 -f 90/65/17 89/75/17 114/103/17 -f 108/59/13 109/82/13 118/104/13 -f 107/60/14 108/59/14 119/105/14 -f 112/66/18 90/65/18 113/83/18 -f 110/71/11 111/70/11 116/100/11 -f 89/75/15 107/60/15 120/102/15 -f 132/123/18 106/107/18 125/109/18 -f 94/112/17 126/110/17 92/108/17 -f 96/114/15 127/111/15 94/112/15 -f 98/116/14 128/113/14 96/114/14 -f 100/117/13 129/115/13 98/116/13 -f 129/115/12 100/117/12 130/119/12 -f 130/119/11 102/118/11 131/121/11 -f 131/212/16 104/122/16 132/123/16 -f 131/126/1 121/46/1 130/125/1 -f 52/128/1 121/46/1 132/127/1 -f 125/129/1 122/52/1 132/127/1 -f 36/170/1 122/52/1 126/130/1 -f 36/170/1 126/130/1 123/39/1 -f 50/40/1 123/39/1 128/132/1 -f 50/40/1 128/132/1 124/37/1 -f 60/124/1 124/37/1 130/125/1 -f 140/213/2 139/134/2 148/136/2 -f 96/144/15 94/137/15 135/139/15 -f 104/214/11 102/140/11 139/141/11 -f 94/137/17 92/142/17 133/138/17 -f 98/149/14 96/144/14 136/145/14 -f 106/150/16 104/146/16 140/148/16 -f 100/87/13 98/149/13 137/88/13 -f 92/142/18 106/150/18 134/143/18 -f 145/156/13 144/151/13 153/153/13 -f 146/164/2 138/154/2 145/156/2 -f 136/215/2 135/157/2 144/151/2 -f 133/216/2 134/159/2 141/161/2 -f 134/217/2 140/162/2 142/160/2 -f 139/218/2 138/163/2 147/165/2 -f 145/156/2 137/166/2 144/151/2 -f 143/158/2 135/168/2 141/161/2 -f 96/131/1 181/39/1 94/130/1 -f 143/158/15 141/161/15 151/172/15 -f 148/136/16 147/135/16 156/174/16 -f 146/164/12 145/156/12 154/175/12 -f 144/151/14 143/158/14 152/152/14 -f 141/161/17 142/160/17 149/171/17 -f 142/160/18 148/136/18 150/176/18 -f 147/165/11 146/164/11 155/177/11 -f 158/189/8 160/178/8 157/180/8 -f 160/219/3 164/181/3 159/179/3 -f 164/188/5 162/183/5 163/185/5 -f 162/220/4 158/186/4 161/187/4 -f 157/180/2 159/179/2 161/187/2 -f 162/183/1 164/188/1 158/189/1 -f 166/220/8 168/186/8 165/187/8 -f 168/189/3 172/178/3 167/180/3 -f 172/219/5 170/181/5 171/179/5 -f 170/188/4 166/183/4 169/185/4 -f 165/187/2 167/180/2 169/182/2 -f 170/188/1 172/178/1 166/183/1 -f 175/221/1 173/222/1 174/192/1 -f 174/192/1 180/223/1 179/190/1 -f 179/190/1 178/224/1 177/191/1 -f 177/191/1 176/225/1 175/221/1 -f 175/221/1 174/192/1 177/191/1 -f 96/131/1 98/132/1 181/39/1 -f 100/133/1 183/37/1 98/132/1 -f 8/124/1 183/37/1 102/125/1 -f 104/126/1 184/46/1 102/125/1 -f 11/128/1 184/46/1 106/127/1 -f 92/129/1 182/43/1 106/127/1 -f 14/170/1 182/43/1 94/130/1 diff --git a/src/main/resources/assets/hbm/models/rbmk/crane_console.obj b/src/main/resources/assets/hbm/models/rbmk/crane_console.obj index 5ebffe130..9b4d984aa 100644 --- a/src/main/resources/assets/hbm/models/rbmk/crane_console.obj +++ b/src/main/resources/assets/hbm/models/rbmk/crane_console.obj @@ -1,5 +1,6292 @@ # Blender v2.79 (sub 0) OBJ File: 'crane_console.blend' # www.blender.org +o Shotgun +v 0.692149 1.035764 -0.683693 +v 0.692280 1.058377 -0.711010 +v 0.683466 1.035764 -0.707840 +v 0.700962 1.058377 -0.686862 +v 0.713559 1.067744 -0.718661 +v 0.722242 1.067744 -0.694513 +v 0.734838 1.058377 -0.726312 +v 0.743521 1.058377 -0.702164 +v 0.743652 1.035764 -0.729481 +v 0.752335 1.035764 -0.705334 +v 0.734838 1.013151 -0.726312 +v 0.743521 1.013151 -0.702164 +v 0.713559 1.003785 -0.718661 +v 0.722242 1.003785 -0.694513 +v 0.692280 1.013151 -0.711010 +v 0.700962 1.013151 -0.686862 +v 0.757006 1.032631 -0.719519 +v 0.731003 1.038897 -0.710169 +v 0.757006 1.038897 -0.719519 +v 0.731003 1.032631 -0.710169 +v 0.734968 1.038897 -0.699141 +v 0.734968 1.032631 -0.699141 +v 0.760971 1.038897 -0.708491 +v 0.760971 1.032631 -0.708491 +v 0.683875 1.038018 -0.681787 +v 0.683875 1.033816 -0.681787 +v 0.680346 1.035917 -0.680519 +v 0.696383 1.042221 -0.658085 +v 0.713356 1.042221 -0.664187 +v 0.704377 1.042221 -0.689159 +v 0.689325 1.035917 -0.655547 +v 0.692854 1.038018 -0.656816 +v 0.696383 1.033816 -0.658085 +v 0.687404 1.033816 -0.683056 +v 0.696383 1.029613 -0.658085 +v 0.687404 1.038018 -0.683056 +v 0.682492 1.029613 -0.733662 +v 0.687702 1.029613 -0.735535 +v 0.704377 1.029613 -0.689159 +v 0.687702 1.042221 -0.735535 +v 0.687404 1.042221 -0.683056 +v 0.696383 1.038018 -0.658085 +v 0.692854 1.033816 -0.656816 +v 0.682492 1.042221 -0.733662 +v 0.713356 1.029613 -0.664187 +v 0.687404 1.029613 -0.683056 +v 0.759877 1.035764 -0.694812 +v 0.598806 1.056565 -1.168236 +v 0.590698 1.035764 -1.165320 +v 0.767985 1.056565 -0.697727 +v 0.618380 1.065181 -1.175274 +v 0.787559 1.065181 -0.704765 +v 0.637954 1.056565 -1.182312 +v 0.807133 1.056565 -0.711803 +v 0.646062 1.035764 -1.185228 +v 0.815241 1.035764 -0.714719 +v 0.637954 1.014963 -1.182312 +v 0.807133 1.014963 -0.711803 +v 0.618380 1.006347 -1.175274 +v 0.787559 1.006347 -0.704765 +v 0.598806 1.014963 -1.168236 +v 0.767985 1.014963 -0.697727 +v 0.544332 1.020228 -1.385557 +v 0.548604 1.049507 -1.380858 +v 0.544332 1.049507 -1.385557 +v 0.548604 1.020228 -1.380858 +v 0.554948 1.049507 -1.380556 +v 0.554948 1.020228 -1.380556 +v 0.559647 1.049507 -1.384829 +v 0.559647 1.020228 -1.384829 +v 0.559949 1.049507 -1.391173 +v 0.559949 1.020228 -1.391173 +v 0.555676 1.049507 -1.395872 +v 0.555676 1.020228 -1.395872 +v 0.549333 1.049507 -1.396173 +v 0.549333 1.020228 -1.396173 +v 0.544633 1.049507 -1.391901 +v 0.544633 1.020228 -1.391901 +v 0.496631 0.997377 -1.485690 +v 0.496631 1.074152 -1.485690 +v 0.415581 1.045215 -1.458066 +v 0.477010 1.038732 -1.627683 +v 0.489400 1.032797 -1.647032 +v 0.477010 1.032797 -1.627683 +v 0.464578 1.038732 -1.604343 +v 0.464578 1.032797 -1.604343 +v 0.536348 1.032797 -1.694010 +v 0.538792 1.038732 -1.694847 +v 0.538792 1.032797 -1.694847 +v 0.513952 1.038866 -1.561843 +v 0.507087 1.032638 -1.550864 +v 0.513952 1.032663 -1.561843 +v 0.430109 1.055225 -1.521909 +v 0.422911 1.041705 -1.520928 +v 0.425503 1.058102 -1.520881 +v 0.442957 1.032797 -1.536957 +v 0.455435 1.038732 -1.583264 +v 0.455435 1.032797 -1.583264 +v 0.521014 1.038732 -1.682495 +v 0.525225 1.032797 -1.687010 +v 0.521014 1.032797 -1.682495 +v 0.530838 1.038732 -1.691225 +v 0.530838 1.032797 -1.691225 +v 0.440314 1.038732 -1.532288 +v 0.440314 1.032797 -1.532288 +v 0.525225 1.038732 -1.687010 +v 0.559794 1.053258 -1.615229 +v 0.558758 1.063808 -1.617134 +v 0.557800 1.063808 -1.619798 +v 0.422708 1.011845 -1.518055 +v 0.419038 1.026314 -1.511065 +v 0.420452 1.026314 -1.518019 +v 0.520935 1.038851 -1.570701 +v 0.520935 1.032677 -1.570701 +v 0.433345 1.033059 -1.524612 +v 0.415687 1.026314 -1.483283 +v 0.417041 1.045215 -1.498211 +v 0.417041 1.026314 -1.498211 +v 0.419038 1.045215 -1.511065 +v 0.440273 0.998881 -1.519687 +v 0.435242 1.004834 -1.521136 +v 0.443516 1.000634 -1.520263 +v 0.498310 1.030952 -1.505816 +v 0.496771 1.031138 -1.514354 +v 0.496771 1.035764 -1.514354 +v 0.502180 1.038928 -1.540707 +v 0.502180 1.032601 -1.540707 +v 0.499020 1.038981 -1.532603 +v 0.497031 1.032475 -1.524158 +v 0.499020 1.032548 -1.532603 +v 0.497031 1.039054 -1.524158 +v 0.496792 1.039153 -1.515142 +v 0.498310 1.051768 -1.505816 +v 0.498310 1.062960 -1.505816 +v 0.500792 1.074152 -1.498296 +v 0.428143 0.997377 -1.482553 +v 0.429425 0.997377 -1.496689 +v 0.500792 0.997377 -1.498296 +v 0.415340 1.045215 -1.470280 +v 0.415581 1.026314 -1.458066 +v 0.415340 1.026314 -1.470280 +v 0.415687 1.045215 -1.483283 +v 0.428660 1.001254 -1.517735 +v 0.436752 0.997377 -1.517133 +v 0.430026 1.032185 -1.522566 +v 0.429910 1.035764 -1.522436 +v 0.496774 1.039560 -1.514461 +v 0.496771 1.040391 -1.514354 +v 0.496782 1.039314 -1.514756 +v 0.484278 1.000622 -1.516503 +v 0.448976 1.003017 -1.522102 +v 0.484359 1.002998 -1.519120 +v 0.452980 1.067640 -1.524261 +v 0.484359 1.068531 -1.519120 +v 0.484454 1.067661 -1.522485 +v 0.433351 1.038685 -1.524616 +v 0.429425 1.074152 -1.496689 +v 0.428650 1.070258 -1.517789 +v 0.423233 1.070275 -1.497450 +v 0.429492 1.031970 -1.522376 +v 0.422923 1.029988 -1.520670 +v 0.435242 1.066695 -1.521136 +v 0.431711 1.068777 -1.520392 +v 0.430026 1.039344 -1.522566 +v 0.429492 1.039559 -1.522376 +v 0.496774 1.031968 -1.514461 +v 0.496782 1.032214 -1.514756 +v 0.496792 1.032376 -1.515142 +v 0.448976 1.068511 -1.522102 +v 0.484278 1.070907 -1.516503 +v 0.452980 1.003889 -1.524261 +v 0.484454 1.003868 -1.522485 +v 0.478882 1.003860 -1.595031 +v 0.461227 1.007737 -1.580949 +v 0.470199 1.007737 -1.601632 +v 0.456987 1.018328 -1.582644 +v 0.466084 1.018328 -1.603616 +v 0.478882 1.067669 -1.595031 +v 0.461227 1.063792 -1.580949 +v 0.470082 1.067669 -1.574744 +v 0.470199 1.063792 -1.601632 +v 0.456987 1.053200 -1.582644 +v 0.466084 1.053200 -1.603616 +v 0.490844 1.003860 -1.617489 +v 0.482396 1.007737 -1.624531 +v 0.478453 1.018328 -1.626839 +v 0.490844 1.067668 -1.617489 +v 0.482396 1.063792 -1.624531 +v 0.502770 1.003860 -1.636112 +v 0.494554 1.007737 -1.643517 +v 0.490781 1.018328 -1.646090 +v 0.502770 1.067668 -1.636112 +v 0.490781 1.053200 -1.646090 +v 0.478453 1.053200 -1.626839 +v 0.489400 1.038732 -1.647032 +v 0.533595 1.003860 -1.677699 +v 0.525836 1.007737 -1.678522 +v 0.529410 1.007737 -1.682355 +v 0.522306 1.018328 -1.681430 +v 0.526347 1.018328 -1.685763 +v 0.533595 1.067669 -1.677699 +v 0.525836 1.063792 -1.678522 +v 0.530658 1.067668 -1.674550 +v 0.529410 1.063792 -1.682355 +v 0.522306 1.053200 -1.681430 +v 0.526347 1.053200 -1.685763 +v 0.534142 1.007737 -1.685908 +v 0.537446 1.003860 -1.680592 +v 0.531723 1.018328 -1.689801 +v 0.534142 1.063792 -1.685908 +v 0.538818 1.007737 -1.688272 +v 0.541289 1.003861 -1.682534 +v 0.537010 1.018328 -1.692473 +v 0.537446 1.067669 -1.680592 +v 0.538818 1.063792 -1.688272 +v 0.537010 1.053200 -1.692473 +v 0.531723 1.053200 -1.689801 +v 0.536348 1.038732 -1.694010 +v 0.542249 1.007737 -1.689658 +v 0.545706 1.003860 -1.684468 +v 0.539718 1.018328 -1.693457 +v 0.541289 1.067668 -1.682534 +v 0.542249 1.063792 -1.689658 +v 0.539718 1.053200 -1.693457 +v 0.530658 1.003860 -1.674550 +v 0.494554 1.063792 -1.643517 +v 0.448636 1.007737 -1.534331 +v 0.454315 1.003860 -1.531705 +v 0.440864 1.018287 -1.529869 +v 0.444479 1.018328 -1.536253 +v 0.448636 1.063792 -1.534331 +v 0.443565 1.063756 -1.524691 +v 0.440864 1.053242 -1.529869 +v 0.444479 1.053200 -1.536253 +v 0.470082 1.003860 -1.574744 +v 0.454315 1.067668 -1.531705 +v 0.442957 1.038732 -1.536957 +v 0.511444 1.003859 -1.578805 +v 0.508845 1.007718 -1.565437 +v 0.503738 1.003859 -1.569030 +v 0.516190 1.007720 -1.574753 +v 0.512583 1.018261 -1.562806 +v 0.519664 1.018268 -1.571787 +v 0.511444 1.067670 -1.578805 +v 0.508845 1.063810 -1.565437 +v 0.516190 1.063808 -1.574753 +v 0.512583 1.053267 -1.562806 +v 0.519664 1.053260 -1.571787 +v 0.501620 1.007715 -1.553882 +v 0.496153 1.003859 -1.556901 +v 0.505622 1.018249 -1.551673 +v 0.503738 1.067670 -1.569030 +v 0.501620 1.063814 -1.553882 +v 0.505622 1.053280 -1.551673 +v 0.507087 1.038890 -1.550864 +v 0.490739 1.003859 -1.545693 +v 0.496460 1.007710 -1.543200 +v 0.500647 1.018230 -1.541375 +v 0.490739 1.067669 -1.545693 +v 0.496153 1.067669 -1.556901 +v 0.496460 1.063819 -1.543200 +v 0.560523 1.038848 -1.613557 +v 0.560751 1.053258 -1.612565 +v 0.555077 1.067669 -1.626040 +v 0.487082 1.003860 -1.536316 +v 0.490784 1.007693 -1.524833 +v 0.484537 1.003860 -1.525508 +v 0.493051 1.007703 -1.534459 +v 0.495357 1.018167 -1.524339 +v 0.497420 1.018204 -1.533100 +v 0.487082 1.067669 -1.536316 +v 0.490784 1.063835 -1.524833 +v 0.493051 1.063826 -1.534459 +v 0.495357 1.053361 -1.524339 +v 0.497420 1.053325 -1.533100 +v 0.490498 1.069629 -1.514866 +v 0.490535 1.066708 -1.515807 +v 0.495090 1.057271 -1.514491 +v 0.495108 1.055235 -1.515059 +v 0.500647 1.053298 -1.541375 +v 0.436377 1.018478 -1.524820 +v 0.443564 1.007801 -1.524691 +v 0.498310 1.074152 -1.505816 +v 0.484224 1.074152 -1.515378 +v 0.425528 1.013375 -1.520750 +v 0.430109 1.016304 -1.521909 +v 0.440237 1.072667 -1.519681 +v 0.420390 1.045105 -1.518407 +v 0.421577 1.001254 -1.470259 +v 0.421915 1.001254 -1.482918 +v 0.417011 1.011845 -1.470274 +v 0.417356 1.011845 -1.483185 +v 0.428143 1.074152 -1.482553 +v 0.421577 1.070275 -1.470259 +v 0.427814 1.074152 -1.470237 +v 0.421915 1.070275 -1.482918 +v 0.417011 1.059683 -1.470274 +v 0.417356 1.059683 -1.483185 +v 0.423233 1.001254 -1.497450 +v 0.418700 1.011845 -1.498007 +v 0.418979 1.011845 -1.499808 +v 0.418979 1.059683 -1.499808 +v 0.418700 1.059683 -1.498007 +v 0.417240 1.059683 -1.458632 +v 0.421776 1.070275 -1.460177 +v 0.427971 1.074152 -1.462289 +v 0.427971 0.997377 -1.462289 +v 0.427814 0.997377 -1.470237 +v 0.421776 1.001254 -1.460177 +v 0.417240 1.011845 -1.458632 +v 0.498310 0.997377 -1.505816 +v 0.490498 1.001900 -1.514866 +v 0.498310 1.008569 -1.505816 +v 0.495090 1.014257 -1.514491 +v 0.498310 1.019761 -1.505816 +v 0.484224 0.997377 -1.515378 +v 0.490535 1.004820 -1.515807 +v 0.495108 1.016294 -1.515059 +v 0.436380 1.053158 -1.524822 +v 0.490602 1.006910 -1.518150 +v 0.495149 1.017604 -1.516552 +v 0.490688 1.007684 -1.521243 +v 0.495203 1.018119 -1.518555 +v 0.490602 1.064619 -1.518150 +v 0.490688 1.063844 -1.521243 +v 0.495149 1.053925 -1.516552 +v 0.495203 1.053410 -1.518555 +v 0.439849 1.006929 -1.522719 +v 0.432913 1.017605 -1.522889 +v 0.439605 0.997377 -1.519021 +v 0.443516 1.070895 -1.520263 +v 0.439605 1.074152 -1.519021 +v 0.422666 1.059620 -1.518251 +v 0.439849 1.064600 -1.522719 +v 0.432913 1.053924 -1.522889 +v 0.484537 1.067669 -1.525508 +v 0.560523 1.032681 -1.613557 +v 0.561481 1.038848 -1.610893 +v 0.557800 1.007721 -1.619798 +v 0.556035 1.003860 -1.623376 +v 0.558758 1.007721 -1.617134 +v 0.559794 1.018270 -1.615229 +v 0.561481 1.032681 -1.610893 +v 0.568994 1.038847 -1.619025 +v 0.566654 1.007721 -1.625682 +v 0.568367 1.018271 -1.620809 +v 0.560751 1.018270 -1.612565 +v 0.568994 1.032682 -1.619025 +v 0.568367 1.053258 -1.620809 +v 0.566654 1.063807 -1.625682 +v 0.556035 1.067669 -1.623376 +v 0.564315 1.067669 -1.632339 +v 0.564315 1.003860 -1.632339 +v 0.436753 1.074152 -1.517136 +v 0.431726 1.002745 -1.520363 +v 0.545706 1.067669 -1.684468 +v 0.536263 1.005153 -1.669843 +v 0.480905 1.005153 -1.600961 +v 0.484860 1.005153 -1.597783 +v 0.483150 1.001881 -1.597014 +v 0.483150 1.005153 -1.597014 +v 0.540217 1.001881 -1.666665 +v 0.484860 1.001881 -1.597783 +v 0.480905 1.001881 -1.600961 +v 0.480522 1.005153 -1.599126 +v 0.540217 1.005153 -1.666665 +v 0.540601 1.005153 -1.668500 +v 0.536263 1.001881 -1.669843 +v 0.540601 1.001881 -1.668500 +v 0.540299 1.005153 -1.670817 +v 0.540299 1.001881 -1.670817 +v 0.537972 1.005153 -1.670613 +v 0.480823 1.001881 -1.596809 +v 0.480823 1.005153 -1.596809 +v 0.480522 1.001881 -1.599126 +v 0.537972 1.001881 -1.670613 +v 0.540851 1.005153 -1.660091 +v 0.485523 1.005153 -1.591245 +v 0.489477 1.005153 -1.588066 +v 0.487763 1.001881 -1.587291 +v 0.487763 1.005153 -1.587291 +v 0.544806 1.001881 -1.656912 +v 0.489477 1.001881 -1.588066 +v 0.485523 1.001881 -1.591245 +v 0.485134 1.005153 -1.589403 +v 0.544806 1.005153 -1.656912 +v 0.545194 1.005153 -1.658754 +v 0.540851 1.001881 -1.660091 +v 0.545194 1.001881 -1.658754 +v 0.544898 1.005153 -1.661076 +v 0.544898 1.001881 -1.661076 +v 0.542566 1.005153 -1.660866 +v 0.485431 1.001881 -1.587081 +v 0.485431 1.005153 -1.587081 +v 0.485134 1.001881 -1.589403 +v 0.542566 1.001881 -1.660866 +v 0.549330 1.005153 -1.639237 +v 0.494024 1.005153 -1.570419 +v 0.497979 1.005153 -1.567241 +v 0.496260 1.001881 -1.566461 +v 0.496260 1.005153 -1.566461 +v 0.553285 1.001881 -1.636059 +v 0.497979 1.001881 -1.567241 +v 0.494024 1.001881 -1.570419 +v 0.493632 1.005153 -1.568573 +v 0.553285 1.005153 -1.636059 +v 0.553677 1.005153 -1.637905 +v 0.549330 1.001881 -1.639237 +v 0.553677 1.001881 -1.637905 +v 0.553384 1.005153 -1.640232 +v 0.553384 1.001881 -1.640232 +v 0.551049 1.005153 -1.640017 +v 0.493925 1.001881 -1.566246 +v 0.493925 1.005153 -1.566246 +v 0.493632 1.001881 -1.568573 +v 0.551049 1.001881 -1.640017 +v 0.544834 1.005153 -1.649123 +v 0.489528 1.005153 -1.580305 +v 0.493483 1.005153 -1.577127 +v 0.491764 1.001881 -1.576347 +v 0.491764 1.005153 -1.576347 +v 0.548789 1.001881 -1.645945 +v 0.493483 1.001881 -1.577127 +v 0.489528 1.001881 -1.580305 +v 0.489136 1.005153 -1.578459 +v 0.548789 1.005153 -1.645945 +v 0.549181 1.005153 -1.647791 +v 0.544834 1.001881 -1.649123 +v 0.549181 1.001881 -1.647791 +v 0.548888 1.005153 -1.650118 +v 0.548888 1.001881 -1.650118 +v 0.546552 1.005153 -1.649903 +v 0.489428 1.001881 -1.576132 +v 0.489428 1.005153 -1.576132 +v 0.489136 1.001881 -1.578459 +v 0.546552 1.001881 -1.649903 +v 0.536263 1.069648 -1.669843 +v 0.480905 1.069648 -1.600961 +v 0.484860 1.069648 -1.597783 +v 0.483150 1.066375 -1.597014 +v 0.483150 1.069648 -1.597014 +v 0.540217 1.066375 -1.666665 +v 0.484860 1.066375 -1.597783 +v 0.480905 1.066375 -1.600961 +v 0.480522 1.069648 -1.599126 +v 0.540217 1.069648 -1.666665 +v 0.540601 1.069648 -1.668500 +v 0.536263 1.066375 -1.669843 +v 0.540601 1.066375 -1.668500 +v 0.540299 1.069648 -1.670817 +v 0.540299 1.066375 -1.670817 +v 0.537972 1.069648 -1.670613 +v 0.480823 1.066375 -1.596809 +v 0.480823 1.069648 -1.596809 +v 0.480522 1.066375 -1.599126 +v 0.537972 1.066375 -1.670613 +v 0.540851 1.069648 -1.660091 +v 0.485523 1.069648 -1.591245 +v 0.489477 1.069648 -1.588066 +v 0.487763 1.066375 -1.587291 +v 0.487763 1.069648 -1.587291 +v 0.544806 1.066375 -1.656912 +v 0.489477 1.066375 -1.588066 +v 0.485523 1.066375 -1.591245 +v 0.485134 1.069648 -1.589403 +v 0.544806 1.069648 -1.656912 +v 0.545194 1.069648 -1.658754 +v 0.540851 1.066375 -1.660091 +v 0.545194 1.066375 -1.658754 +v 0.544898 1.069648 -1.661076 +v 0.544898 1.066375 -1.661076 +v 0.542566 1.069648 -1.660866 +v 0.485431 1.066375 -1.587081 +v 0.485431 1.069648 -1.587081 +v 0.485134 1.066375 -1.589403 +v 0.542566 1.066375 -1.660866 +v 0.549330 1.069648 -1.639237 +v 0.494024 1.069648 -1.570419 +v 0.497979 1.069648 -1.567241 +v 0.496260 1.066375 -1.566461 +v 0.496260 1.069648 -1.566461 +v 0.553285 1.066375 -1.636059 +v 0.497979 1.066375 -1.567241 +v 0.494024 1.066375 -1.570419 +v 0.493632 1.069648 -1.568573 +v 0.553285 1.069648 -1.636059 +v 0.553677 1.069648 -1.637905 +v 0.549330 1.066375 -1.639237 +v 0.553677 1.066375 -1.637905 +v 0.553384 1.069648 -1.640232 +v 0.553384 1.066375 -1.640232 +v 0.551049 1.069648 -1.640017 +v 0.493925 1.066375 -1.566246 +v 0.493925 1.069648 -1.566246 +v 0.493632 1.066375 -1.568573 +v 0.551049 1.066375 -1.640017 +v 0.544834 1.069648 -1.649123 +v 0.489528 1.069648 -1.580305 +v 0.493483 1.069648 -1.577127 +v 0.491764 1.066375 -1.576347 +v 0.491764 1.069648 -1.576347 +v 0.548789 1.066375 -1.645945 +v 0.493483 1.066375 -1.577127 +v 0.489528 1.066375 -1.580305 +v 0.489136 1.069648 -1.578459 +v 0.548789 1.069648 -1.645945 +v 0.549181 1.069648 -1.647791 +v 0.544834 1.066375 -1.649123 +v 0.549181 1.066375 -1.647791 +v 0.548888 1.069648 -1.650118 +v 0.548888 1.066375 -1.650118 +v 0.546552 1.069648 -1.649903 +v 0.489428 1.066375 -1.576132 +v 0.489428 1.069648 -1.576132 +v 0.489136 1.066375 -1.578459 +v 0.546552 1.066375 -1.649903 +v 0.498310 1.040576 -1.505816 +v 0.555077 1.003860 -1.626040 +v 0.513440 0.998725 -1.433918 +v 0.495210 1.001154 -1.427363 +v 0.513440 1.001154 -1.433918 +v 0.495210 0.998725 -1.427363 +v 0.578615 1.001153 -1.195405 +v 0.578615 0.998725 -1.195405 +v 0.596844 1.001153 -1.201959 +v 0.596844 0.998725 -1.201959 +v 0.509272 1.074130 -1.444486 +v 0.484943 1.070375 -1.435738 +v 0.484943 1.074130 -1.435738 +v 0.563785 1.070375 -1.216468 +v 0.563785 1.074129 -1.216468 +v 0.598405 1.074129 -1.196595 +v 0.588114 1.074129 -1.225216 +v 0.588114 1.070375 -1.225216 +v 0.509272 1.070375 -1.444486 +v 0.574076 1.070375 -1.187847 +v 0.598405 1.070375 -1.196595 +v 0.543309 1.074129 -1.176785 +v 0.574076 1.074129 -1.187847 +v 0.533018 1.074129 -1.205405 +v 0.543309 1.070375 -1.176785 +v 0.533018 1.070375 -1.205405 +v 0.619333 1.001153 -1.176606 +v 0.566003 1.001153 -1.110426 +v 0.571481 1.001153 -1.160024 +v 0.533104 1.001153 -1.281312 +v 0.530132 1.001153 -1.286527 +v 0.439596 1.055536 -1.374785 +v 0.428063 1.015992 -1.410344 +v 0.439596 1.015992 -1.374785 +v 0.566003 1.070375 -1.110426 +v 0.503031 1.070375 -1.501351 +v 0.503031 1.001154 -1.501351 +v 0.435301 1.070375 -1.476998 +v 0.428063 1.055536 -1.410344 +v 0.422002 1.015992 -1.441826 +v 0.425381 1.070375 -1.465533 +v 0.425381 1.001154 -1.465533 +v 0.422002 1.055536 -1.441826 +v 0.435301 1.001154 -1.476998 +v 0.538240 1.055536 -1.100443 +v 0.465229 1.001154 -1.389116 +v 0.458451 1.002283 -1.376174 +v 0.451007 1.002283 -1.397240 +v 0.448542 1.005500 -1.375444 +v 0.438949 1.005500 -1.404127 +v 0.441922 1.010314 -1.374956 +v 0.430892 1.010314 -1.408728 +v 0.465229 1.070375 -1.389116 +v 0.458451 1.069246 -1.376174 +v 0.470140 1.070375 -1.377035 +v 0.451007 1.069246 -1.397240 +v 0.448542 1.066029 -1.375444 +v 0.438949 1.066029 -1.404127 +v 0.441922 1.061215 -1.374956 +v 0.430892 1.061215 -1.408728 +v 0.424088 1.002283 -1.456461 +v 0.422991 1.005500 -1.448770 +v 0.422259 1.010314 -1.443631 +v 0.422991 1.066029 -1.448770 +v 0.422259 1.061215 -1.443631 +v 0.540354 1.061215 -1.101203 +v 0.546372 1.066029 -1.103367 +v 0.555379 1.069245 -1.106606 +v 0.555379 1.002283 -1.106606 +v 0.540448 1.002283 -1.148130 +v 0.542563 1.002074 -1.148427 +v 0.470140 1.001154 -1.377035 +v 0.504003 1.001153 -1.282856 +v 0.495346 1.002074 -1.279744 +v 0.489446 1.005053 -1.265613 +v 0.529016 1.005053 -1.155564 +v 0.546372 1.005499 -1.103367 +v 0.540354 1.010314 -1.101203 +v 0.538240 1.015992 -1.100443 +v 0.662439 1.001153 -1.145520 +v 0.647915 1.070375 -1.186987 +v 0.662439 1.070375 -1.145520 +v 0.619333 1.070375 -1.176606 +v 0.647915 1.001153 -1.186987 +v 0.573704 1.034203 -1.165348 +v 0.571481 1.034203 -1.160024 +v 0.530132 1.034203 -1.286527 +v 0.525028 1.001153 -1.289216 +v 0.533104 1.034203 -1.281312 +v 0.572674 1.001153 -1.171262 +v 0.572674 1.034203 -1.171262 +v 0.557312 1.039003 -1.182406 +v 0.533764 1.039003 -1.173938 +v 0.528356 1.039003 -1.262937 +v 0.573704 1.001153 -1.165348 +v 0.490639 1.003398 -1.276851 +v 0.495346 1.034203 -1.279744 +v 0.519557 1.001153 -1.288449 +v 0.519557 1.034203 -1.288449 +v 0.490639 1.034203 -1.276851 +v 0.488416 1.004706 -1.271528 +v 0.566774 1.001153 -1.157132 +v 0.566774 1.034203 -1.157132 +v 0.488416 1.034203 -1.271528 +v 0.537092 1.034203 -1.147659 +v 0.531988 1.004706 -1.150348 +v 0.531988 1.034203 -1.150348 +v 0.489446 1.034203 -1.265613 +v 0.525028 1.034203 -1.289216 +v 0.537092 1.003398 -1.147659 +v 0.551220 1.001153 -1.151539 +v 0.569832 1.037775 -1.171952 +v 0.531353 1.037775 -1.278970 +v 0.532040 1.039003 -1.263454 +v 0.530318 1.037775 -1.280785 +v 0.568668 1.037775 -1.166247 +v 0.564354 1.037775 -1.163596 +v 0.570191 1.037775 -1.169894 +v 0.560482 1.039003 -1.184353 +v 0.542563 1.034203 -1.148427 +v 0.530080 1.039003 -1.173422 +v 0.535299 1.037775 -1.154249 +v 0.531802 1.037775 -1.156091 +v 0.501638 1.039003 -1.252522 +v 0.491929 1.037775 -1.266981 +v 0.493452 1.037775 -1.270628 +v 0.521807 1.037775 -1.281924 +v 0.526821 1.037775 -1.282627 +v 0.504807 1.039003 -1.254470 +v 0.530767 1.037775 -1.157906 +v 0.529016 1.034203 -1.155564 +v 0.492288 1.037775 -1.264923 +v 0.497766 1.037775 -1.273279 +v 0.540312 1.037775 -1.154952 +v 0.424088 1.069246 -1.456461 +v 0.493527 1.002283 -1.278626 +v 0.707876 1.035764 -0.647525 +v 0.546805 1.056565 -1.120949 +v 0.538697 1.035764 -1.118034 +v 0.715984 1.056565 -0.650440 +v 0.566379 1.065181 -1.127987 +v 0.735558 1.065181 -0.657479 +v 0.585953 1.056565 -1.135026 +v 0.755132 1.056565 -0.664517 +v 0.594061 1.035764 -1.137941 +v 0.763240 1.035764 -0.667432 +v 0.585953 1.014963 -1.135026 +v 0.755132 1.014963 -0.664517 +v 0.566379 1.006347 -1.127987 +v 0.735558 1.006347 -0.657479 +v 0.546805 1.014963 -1.120949 +v 0.715984 1.014963 -0.650440 +v 0.721610 1.035764 -0.601756 +v 0.711158 1.058377 -0.658507 +v 0.702344 1.035764 -0.655338 +v 0.730424 1.058377 -0.604925 +v 0.732437 1.067744 -0.666158 +v 0.751703 1.067744 -0.612576 +v 0.753716 1.058377 -0.673810 +v 0.772982 1.058377 -0.620228 +v 0.762530 1.035764 -0.676979 +v 0.781796 1.035764 -0.623397 +v 0.753716 1.013151 -0.673810 +v 0.772982 1.013151 -0.620228 +v 0.732437 1.003785 -0.666158 +v 0.751703 1.003785 -0.612576 +v 0.751703 1.009534 -0.612576 +v 0.734249 1.054312 -0.606300 +v 0.751703 1.061995 -0.612576 +v 0.711158 1.013151 -0.658507 +v 0.730424 1.013151 -0.604925 +v 0.732437 1.009534 -0.666158 +v 0.749891 1.017216 -0.672434 +v 0.714983 1.054312 -0.659882 +v 0.707753 1.035764 -0.657283 +v 0.732437 1.061995 -0.666158 +v 0.749891 1.054312 -0.672434 +v 0.769157 1.054312 -0.618852 +v 0.757121 1.035764 -0.675034 +v 0.776387 1.035764 -0.621452 +v 0.769157 1.017216 -0.618852 +v 0.734249 1.017216 -0.606300 +v 0.714983 1.017216 -0.659882 +v 0.727020 1.035764 -0.603701 +v 0.753707 1.035764 -0.705628 +v 0.755533 1.058083 -0.727871 +v 0.746833 1.035764 -0.724743 +v 0.762406 1.058083 -0.708756 +v 0.776535 1.067328 -0.735423 +v 0.783409 1.067328 -0.716308 +v 0.797538 1.058083 -0.742975 +v 0.804411 1.058083 -0.723859 +v 0.806237 1.035764 -0.746103 +v 0.813110 1.035764 -0.726987 +v 0.797538 1.013445 -0.742975 +v 0.804411 1.013445 -0.723859 +v 0.776535 1.004200 -0.735423 +v 0.783409 1.004200 -0.716308 +v 0.755533 1.013445 -0.727871 +v 0.762406 1.013445 -0.708756 +v 0.585552 1.001153 -1.115745 +v 0.589794 0.998029 -1.104150 +v 0.589564 1.001153 -1.104585 +v 0.744124 1.065964 -0.891414 +v 0.673053 1.066293 -0.872391 +v 0.675133 1.065964 -0.866607 +v 0.809292 1.015851 -0.749462 +v 0.756634 1.055639 -0.895912 +v 0.809292 1.055677 -0.749462 +v 0.671533 1.004444 -0.876620 +v 0.742301 1.005236 -0.897291 +v 0.673053 1.005236 -0.872391 +v 0.656907 1.001153 -1.075545 +v 0.661214 1.001153 -1.065693 +v 0.661427 1.001153 -1.059562 +v 0.598482 1.001153 -1.081104 +v 0.599859 1.001153 -1.077275 +v 0.667855 1.001153 -1.057394 +v 0.671401 1.001153 -1.094040 +v 0.673333 1.001153 -1.097359 +v 0.744124 1.005564 -0.891414 +v 0.675133 1.005564 -0.866607 +v 0.669354 1.069255 -0.882679 +v 0.741517 1.067086 -0.901788 +v 0.741653 1.069253 -0.908672 +v 0.727792 1.065964 -0.720157 +v 0.727792 1.005564 -0.720157 +v 0.796817 1.005564 -0.744976 +v 0.671757 1.060087 -1.146741 +v 0.671757 1.011441 -1.146741 +v 0.659283 1.070375 -1.142256 +v 0.669354 1.002274 -0.882679 +v 0.741517 1.004442 -0.901788 +v 0.665754 1.001153 -0.892692 +v 0.741086 1.001482 -0.913246 +v 0.667834 1.001482 -0.886908 +v 0.754904 1.015669 -0.901823 +v 0.756634 1.015890 -0.895912 +v 0.754229 1.056514 -0.906359 +v 0.754364 1.012848 -0.913241 +v 0.754364 1.058680 -0.913241 +v 0.742301 1.066293 -0.897291 +v 0.671533 1.067085 -0.876620 +v 0.754229 1.015015 -0.906359 +v 0.741086 1.070046 -0.913246 +v 0.665754 1.070375 -0.892692 +v 0.667834 1.070047 -0.886908 +v 0.751960 1.011479 -0.923688 +v 0.753689 1.059613 -0.917777 +v 0.753689 1.011915 -0.917777 +v 0.741653 1.002275 -0.908672 +v 0.753216 1.010452 -0.901216 +v 0.752526 1.009729 -0.905746 +v 0.747873 1.005859 -0.904073 +v 0.748603 1.006633 -0.899557 +v 0.754958 1.010727 -0.895309 +v 0.750379 1.006948 -0.893663 +v 0.754904 1.055860 -0.901823 +v 0.754958 1.060802 -0.895309 +v 0.748603 1.064895 -0.899557 +v 0.750379 1.064581 -0.893663 +v 0.753216 1.061076 -0.901216 +v 0.747873 1.065670 -0.904073 +v 0.752661 1.063967 -0.912629 +v 0.747388 1.068648 -0.915512 +v 0.748009 1.067837 -0.910956 +v 0.751960 1.060049 -0.923688 +v 0.752001 1.064830 -0.917170 +v 0.745705 1.068991 -0.921439 +v 0.739451 1.070375 -0.919191 +v 0.752001 1.006699 -0.917170 +v 0.750284 1.006316 -0.923086 +v 0.745705 1.002537 -0.921439 +v 0.747388 1.002880 -0.915512 +v 0.739451 1.001153 -0.919191 +v 0.752661 1.007562 -0.912629 +v 0.748009 1.003692 -0.910956 +v 0.807621 1.060821 -0.748860 +v 0.803055 1.064586 -0.747219 +v 0.796817 1.065964 -0.744976 +v 0.752526 1.061800 -0.905746 +v 0.803055 1.006942 -0.747219 +v 0.585552 1.070375 -1.115745 +v 0.589794 1.073499 -1.104149 +v 0.585341 1.073499 -1.116289 +v 0.669529 1.002532 -1.133345 +v 0.664216 0.998030 -1.130918 +v 0.671017 0.999532 -1.133364 +v 0.665520 1.068997 -1.144498 +v 0.671624 1.067891 -1.147313 +v 0.670086 1.065231 -1.146140 +v 0.675768 1.011443 -1.135588 +v 0.674096 1.006298 -1.134987 +v 0.663291 1.001153 -1.131102 +v 0.670864 1.070375 -1.036388 +v 0.674544 1.070375 -1.035088 +v 0.668145 1.070375 -1.057329 +v 0.615303 0.996639 -1.034018 +v 0.665366 1.001153 -1.052019 +v 0.615303 1.001153 -1.034018 +v 0.673716 1.074889 -1.028455 +v 0.623762 1.070375 -1.010493 +v 0.673716 1.070375 -1.028455 +v 0.603991 0.996639 -1.065477 +v 0.606844 1.001153 -1.057544 +v 0.603991 1.001153 -1.065477 +v 0.603991 1.074889 -1.065477 +v 0.606844 1.070375 -1.057544 +v 0.606844 1.074889 -1.057544 +v 0.599859 1.070375 -1.077275 +v 0.589565 1.070375 -1.104584 +v 0.603991 1.070375 -1.065477 +v 0.654055 0.996639 -1.083478 +v 0.654055 1.001153 -1.083478 +v 0.653946 1.074889 -1.083439 +v 0.632221 0.996639 -0.986968 +v 0.682284 1.001153 -1.004969 +v 0.632221 1.001153 -0.986968 +v 0.682175 1.074889 -1.004930 +v 0.632221 1.070375 -0.986968 +v 0.682175 1.070375 -1.004930 +v 0.612450 0.996639 -1.041952 +v 0.612450 1.001153 -1.041952 +v 0.612450 1.074889 -1.041952 +v 0.615303 1.070375 -1.034018 +v 0.615303 1.074889 -1.034018 +v 0.606844 0.996639 -1.057544 +v 0.656798 1.074889 -1.075506 +v 0.656798 1.070375 -1.075506 +v 0.662405 1.074889 -1.059914 +v 0.661427 1.070375 -1.059562 +v 0.668142 1.074909 -1.057332 +v 0.667445 1.070410 -1.054955 +v 0.667299 0.996639 -1.055338 +v 0.665366 0.996639 -1.052019 +v 0.662514 0.996639 -1.059953 +v 0.674544 1.074889 -1.035088 +v 0.670864 1.074889 -1.036388 +v 0.620909 0.996639 -1.018426 +v 0.623762 1.001153 -1.010493 +v 0.620909 1.001153 -1.018426 +v 0.620909 1.074889 -1.018426 +v 0.623762 1.074889 -1.010493 +v 0.658840 0.996639 -1.078864 +v 0.656907 0.996639 -1.075545 +v 0.665257 1.074889 -1.051980 +v 0.670973 1.001153 -1.036427 +v 0.670973 0.996639 -1.036427 +v 0.620909 1.070375 -1.018426 +v 0.690634 1.074889 -0.981404 +v 0.640680 1.070375 -0.963442 +v 0.690634 1.070375 -0.981404 +v 0.640680 0.996639 -0.963442 +v 0.690743 1.001153 -0.981443 +v 0.640680 1.001153 -0.963442 +v 0.699093 1.074889 -0.957879 +v 0.649138 1.070375 -0.939917 +v 0.699093 1.070375 -0.957879 +v 0.629368 0.996639 -0.994901 +v 0.629368 1.001153 -0.994901 +v 0.629368 1.074889 -0.994901 +v 0.632221 1.074889 -0.986968 +v 0.623762 0.996639 -1.010493 +v 0.673825 1.001153 -1.028494 +v 0.657627 1.074889 -1.082139 +v 0.679432 1.001153 -1.012902 +v 0.679432 0.996639 -1.012902 +v 0.679323 1.074889 -1.012863 +v 0.629368 1.070375 -0.994901 +v 0.649138 0.996639 -0.939917 +v 0.699202 1.001153 -0.957918 +v 0.649138 1.001153 -0.939917 +v 0.707552 1.074889 -0.934353 +v 0.657597 1.070375 -0.916391 +v 0.707552 1.070375 -0.934353 +v 0.637827 0.996639 -0.971375 +v 0.637827 1.001153 -0.971375 +v 0.637827 1.074889 -0.971375 +v 0.640680 1.074889 -0.963442 +v 0.675758 0.996639 -1.031813 +v 0.673825 0.996639 -1.028494 +v 0.687891 1.001153 -0.989376 +v 0.687891 0.996639 -0.989376 +v 0.687782 1.074889 -0.989337 +v 0.637827 1.070375 -0.971375 +v 0.657597 0.996639 -0.916391 +v 0.707661 1.001153 -0.934392 +v 0.657597 1.001153 -0.916391 +v 0.598482 1.074889 -1.081104 +v 0.658376 1.070375 -1.102640 +v 0.667062 1.074889 -1.105763 +v 0.646286 0.996639 -0.947850 +v 0.646286 1.001153 -0.947850 +v 0.646286 1.074889 -0.947850 +v 0.649138 1.074889 -0.939917 +v 0.684217 0.996639 -1.008288 +v 0.682284 0.996639 -1.004969 +v 0.696350 1.001153 -0.965851 +v 0.696350 0.996639 -0.965851 +v 0.696241 1.074889 -0.965812 +v 0.646286 1.070375 -0.947850 +v 0.671401 0.996639 -1.094040 +v 0.658069 1.001153 -1.089246 +v 0.667891 1.074889 -1.112396 +v 0.664210 1.074889 -1.113697 +v 0.654745 0.996639 -0.924324 +v 0.654745 1.001153 -0.924324 +v 0.654745 1.074889 -0.924324 +v 0.657597 1.074889 -0.916391 +v 0.692676 0.996639 -0.984762 +v 0.690743 0.996639 -0.981443 +v 0.683003 1.074889 -1.011562 +v 0.704808 1.001153 -0.942326 +v 0.704808 0.996639 -0.942326 +v 0.704700 1.074889 -0.942286 +v 0.654745 1.070375 -0.924324 +v 0.709594 0.996639 -0.937711 +v 0.707661 0.996639 -0.934392 +v 0.595630 0.996639 -1.089038 +v 0.595630 1.001153 -1.089038 +v 0.595630 1.074889 -1.089038 +v 0.598482 1.070375 -1.081104 +v 0.701135 0.996639 -0.961237 +v 0.699202 0.996639 -0.957918 +v 0.691462 1.074889 -0.988037 +v 0.658583 1.001153 -1.111673 +v 0.664319 0.996639 -1.113736 +v 0.602712 1.074889 -1.069342 +v 0.602712 1.070375 -1.069342 +v 0.658069 1.070375 -1.089246 +v 0.664210 1.070375 -1.113697 +v 0.658583 1.070375 -1.111673 +v 0.669104 0.996639 -1.109121 +v 0.667171 0.996639 -1.105803 +v 0.708380 1.074889 -0.940986 +v 0.599859 0.996639 -1.077275 +v 0.602712 1.001153 -1.069342 +v 0.599859 1.074889 -1.077275 +v 0.658376 1.001153 -1.102640 +v 0.598482 0.996639 -1.081104 +v 0.699921 1.074889 -0.964511 +v 0.658276 1.001153 -1.098279 +v 0.668439 1.074889 -1.101934 +v 0.668439 1.070375 -1.101934 +v 0.658276 1.070375 -1.098279 +v 0.659396 1.001153 -1.080919 +v 0.657658 1.001153 -1.082150 +v 0.658840 1.001153 -1.078864 +v 0.674576 1.001153 -1.035099 +v 0.683035 1.001153 -1.011574 +v 0.699953 1.001153 -0.964523 +v 0.708412 1.001153 -0.940997 +v 0.664319 1.001153 -1.113736 +v 0.667922 0.996639 -1.112408 +v 0.667922 1.001153 -1.112408 +v 0.669660 0.996639 -1.111177 +v 0.708412 0.996639 -0.940997 +v 0.710149 0.996639 -0.939767 +v 0.662514 1.001153 -1.059953 +v 0.666117 0.996639 -1.058625 +v 0.666117 1.001153 -1.058625 +v 0.667855 0.996639 -1.057394 +v 0.674576 0.996639 -1.035099 +v 0.676314 0.996639 -1.033868 +v 0.683035 0.996639 -1.011574 +v 0.684773 0.996639 -1.010343 +v 0.691494 0.996639 -0.988048 +v 0.691494 1.001153 -0.988048 +v 0.693232 0.996639 -0.986817 +v 0.699953 0.996639 -0.964523 +v 0.701690 0.996639 -0.963292 +v 0.673889 1.001153 -1.099414 +v 0.673333 0.996639 -1.097359 +v 0.673889 0.996639 -1.099414 +v 0.657658 0.996639 -1.082150 +v 0.659396 0.996639 -1.080919 +v 0.667299 1.001153 -1.055338 +v 0.676314 1.001153 -1.033868 +v 0.675758 1.001153 -1.031813 +v 0.693232 1.001153 -0.986817 +v 0.692676 1.001153 -0.984762 +v 0.701690 1.001153 -0.963292 +v 0.701135 1.001153 -0.961237 +v 0.710149 1.001153 -0.939767 +v 0.709594 1.001153 -0.937711 +v 0.668548 1.001153 -1.101973 +v 0.672152 0.996639 -1.100645 +v 0.668548 0.996639 -1.101973 +v 0.672152 1.001153 -1.100645 +v 0.684773 1.001153 -1.010343 +v 0.684217 1.001153 -1.008288 +v 0.669660 1.001153 -1.111177 +v 0.669104 1.001153 -1.109121 +v 0.653946 1.070375 -1.083439 +v 0.657627 1.070375 -1.082139 +v 0.659396 1.070375 -1.080919 +v 0.612450 1.070375 -1.041952 +v 0.679323 1.070375 -1.012863 +v 0.683003 1.070375 -1.011562 +v 0.687782 1.070375 -0.989337 +v 0.691462 1.070375 -0.988037 +v 0.696241 1.070375 -0.965812 +v 0.699921 1.070375 -0.964511 +v 0.701103 1.070375 -0.961225 +v 0.704700 1.070375 -0.942286 +v 0.708380 1.070375 -0.940986 +v 0.676314 1.070375 -1.033868 +v 0.676314 1.074889 -1.033868 +v 0.658808 1.074889 -1.078852 +v 0.658808 1.070375 -1.078852 +v 0.659396 1.074889 -1.080919 +v 0.675726 1.074889 -1.031802 +v 0.675726 1.070375 -1.031802 +v 0.684185 1.074889 -1.008276 +v 0.684185 1.070375 -1.008276 +v 0.684773 1.074889 -1.010343 +v 0.701103 1.074889 -0.961225 +v 0.701690 1.074889 -0.963292 +v 0.667062 1.070375 -1.105763 +v 0.669072 1.074889 -1.109110 +v 0.669072 1.070375 -1.109110 +v 0.669660 1.074889 -1.111177 +v 0.673889 1.070375 -1.099414 +v 0.672120 1.074889 -1.100633 +v 0.673889 1.074889 -1.099414 +v 0.672120 1.070375 -1.100633 +v 0.693232 1.070375 -0.986817 +v 0.693232 1.074889 -0.986817 +v 0.692644 1.074889 -0.984751 +v 0.692644 1.070375 -0.984751 +v 0.701690 1.070375 -0.963292 +v 0.710149 1.070375 -0.939767 +v 0.710149 1.074889 -0.939767 +v 0.709562 1.074889 -0.937700 +v 0.709562 1.070375 -0.937700 +v 0.671292 1.070375 -1.094001 +v 0.673302 1.074889 -1.097347 +v 0.671292 1.074889 -1.094001 +v 0.673302 1.070375 -1.097347 +v 0.684773 1.070375 -1.010343 +v 0.666085 1.070375 -1.058613 +v 0.666095 1.074943 -1.058587 +v 0.669660 1.070375 -1.111177 +v 0.667891 1.070375 -1.112396 +v 0.667443 1.074943 -1.054959 +v 0.665260 1.070356 -1.051977 +v 0.677818 1.062281 -1.135809 +v 0.675768 1.060086 -1.135588 +v 0.659283 1.001153 -1.142256 +v 0.585341 0.998029 -1.116289 +v 0.674096 1.065230 -1.134987 +v 0.675996 1.067890 -1.135154 +v 0.663291 1.070375 -1.131102 +v 0.750284 1.065212 -0.923086 +v 0.669529 1.068996 -1.133345 +v 0.673446 1.009246 -1.147969 +v 0.673446 1.062283 -1.147969 +v 0.658992 1.001153 -1.129556 +v 0.659529 0.998030 -1.129233 +v 0.659845 1.073499 -1.143078 +v 0.671017 1.071996 -1.133364 +v 0.665520 1.002532 -1.144498 +v 0.659846 0.998030 -1.143078 +v 0.666646 1.071996 -1.145523 +v 0.664216 1.073499 -1.130918 +v 0.666646 0.999532 -1.145523 +v 0.675996 1.003639 -1.135154 +v 0.671624 1.003638 -1.147313 +v 0.659529 1.073499 -1.129232 +v 0.658992 1.070375 -1.129556 +v 0.677818 1.009248 -1.135809 +v 0.670086 1.006297 -1.146140 +v 0.667171 1.001153 -1.105803 +v 0.807621 1.010708 -0.748860 +v 0.595630 1.070375 -1.089038 +v 0.662405 1.070375 -1.059914 +v 0.602712 0.996639 -1.069342 +v 0.496616 1.021493 -1.497419 +v 0.557190 1.049628 -1.328955 +v 0.496616 1.049628 -1.497419 +v 0.498670 1.021493 -1.498158 +v 0.498670 1.049628 -1.498158 +v 0.578160 1.049628 -1.407251 +v 0.570408 1.021493 -1.400785 +v 0.578160 1.021493 -1.407251 +v 0.541590 1.021493 -1.480804 +v 0.526866 1.049628 -1.482721 +v 0.541590 1.049628 -1.480804 +v 0.526866 1.021493 -1.482721 +v 0.511167 1.049628 -1.489276 +v 0.511167 1.021493 -1.489276 +v 0.557190 1.021493 -1.328955 +v 0.559358 1.049628 -1.329735 +v 0.546807 1.021493 -1.481672 +v 0.546807 1.049628 -1.481672 +v 0.570408 1.049628 -1.400785 +v 0.561532 1.021493 -1.383752 +v 0.561532 1.049628 -1.383752 +v 0.559065 1.021493 -1.356379 +v 0.559065 1.049628 -1.356379 +v 0.559358 1.021493 -1.329735 +v 0.555676 1.049628 -1.395872 +v 0.559949 1.049628 -1.391173 +v 0.557426 1.049628 -1.399047 +v 0.521387 1.049628 -1.458189 +v 0.522048 1.049628 -1.465217 +v 0.562755 1.049628 -1.472850 +v 0.559418 1.049628 -1.471864 +v 0.562835 1.049628 -1.464567 +v 0.581256 1.049628 -1.422436 +v 0.582417 1.021493 -1.413157 +v 0.581256 1.021493 -1.422436 +v 0.582417 1.049628 -1.413157 +v 0.555238 1.021493 -1.480624 +v 0.555238 1.049628 -1.480624 +v 0.562755 1.021493 -1.472850 +v 0.562835 1.021493 -1.464567 +v 0.559418 1.021493 -1.471864 +v 0.557426 1.021493 -1.399047 +v 0.559949 1.021493 -1.391173 +v 0.536786 1.021493 -1.413155 +v 0.544332 1.021493 -1.385557 +v 0.569292 1.049628 -1.403314 +v 0.542195 1.049628 -1.478675 +v 0.530329 1.021493 -1.474408 +v 0.542195 1.021493 -1.478675 +v 0.576222 1.021493 -1.427335 +v 0.576222 1.049628 -1.427335 +v 0.523398 1.049628 -1.450387 +v 0.523398 1.021493 -1.450387 +v 0.554432 1.021493 -1.476862 +v 0.554432 1.049628 -1.476862 +v 0.548146 1.021493 -1.479379 +v 0.548146 1.049628 -1.479379 +v 0.521387 1.021493 -1.458189 +v 0.522048 1.021493 -1.465217 +v 0.525292 1.049628 -1.471161 +v 0.525292 1.021493 -1.471161 +v 0.530329 1.049628 -1.474408 +v 0.551475 1.021493 -1.398343 +v 0.551475 1.049628 -1.398343 +v 0.545188 1.021493 -1.400860 +v 0.545188 1.049628 -1.400860 +v 0.540203 1.021493 -1.405858 +v 0.540203 1.049628 -1.405858 +v 0.536786 1.049628 -1.413155 +v 0.578234 1.021493 -1.419533 +v 0.578234 1.049628 -1.419533 +v 0.577573 1.021493 -1.412505 +v 0.577573 1.049628 -1.412505 +v 0.574329 1.021493 -1.406561 +v 0.574329 1.049628 -1.406561 +v 0.569292 1.021493 -1.403314 +v 0.548604 1.049628 -1.380858 +v 0.544332 1.049628 -1.385557 +v 0.554948 1.049628 -1.380556 +v 0.548604 1.021493 -1.380858 +v 0.559647 1.049628 -1.384829 +v 0.554948 1.021493 -1.380556 +v 0.559721 1.049628 -1.386380 +v 0.559721 1.021493 -1.386380 +v 0.555676 1.021493 -1.395872 +v 0.551889 1.049628 -1.396052 +v 0.549333 1.021493 -1.396173 +v 0.551889 1.021493 -1.396052 +v 0.544633 1.021493 -1.391901 +v 0.549333 1.049628 -1.396173 +v 0.544633 1.049628 -1.391901 +v 0.559647 1.021493 -1.384829 +v 0.567948 1.016754 -1.329629 +v 0.558531 1.054775 -1.326242 +v 0.567948 1.054775 -1.329629 +v 0.577965 1.016754 -1.301770 +v 0.577965 1.054775 -1.301770 +v 0.631913 1.019923 -1.203454 +v 0.628048 1.051605 -1.214202 +v 0.631913 1.051605 -1.203454 +v 0.602637 1.019923 -1.255320 +v 0.588858 1.051605 -1.277936 +v 0.602637 1.051605 -1.255320 +v 0.603564 1.016754 -1.230554 +v 0.621465 1.054775 -1.210324 +v 0.603564 1.054775 -1.230554 +v 0.582279 1.016754 -1.260194 +v 0.582279 1.054775 -1.260194 +v 0.558531 1.016754 -1.326242 +v 0.631097 1.053964 -1.203990 +v 0.628722 1.054775 -1.205552 +v 0.623644 1.051605 -1.223584 +v 0.625873 1.019923 -1.219519 +v 0.623644 1.019923 -1.223584 +v 0.589800 1.016754 -1.270145 +v 0.604193 1.016754 -1.246521 +v 0.625873 1.051605 -1.219519 +v 0.628048 1.019923 -1.214202 +v 0.583303 1.051605 -1.288577 +v 0.588858 1.019923 -1.277936 +v 0.583303 1.019923 -1.288577 +v 0.624928 1.016754 -1.215196 +v 0.625811 1.017564 -1.218084 +v 0.625634 1.016754 -1.213909 +v 0.623972 1.017564 -1.221439 +v 0.624928 1.054775 -1.215196 +v 0.625811 1.053964 -1.218084 +v 0.623972 1.053964 -1.221439 +v 0.627607 1.017564 -1.213696 +v 0.626322 1.016754 -1.212226 +v 0.625634 1.054775 -1.213909 +v 0.627607 1.053964 -1.213696 +v 0.603035 1.017564 -1.253070 +v 0.631097 1.017564 -1.203990 +v 0.628722 1.016754 -1.205552 +v 0.626322 1.054775 -1.212226 +v 0.604193 1.054775 -1.246521 +v 0.603035 1.053964 -1.253070 +v 0.583303 1.016754 -1.288577 +v 0.589099 1.017564 -1.275944 +v 0.583303 1.054775 -1.288577 +v 0.589800 1.054775 -1.270145 +v 0.589099 1.053964 -1.275944 +v 0.621465 1.016754 -1.210324 +v 0.528149 1.038786 -1.432743 +v 0.520582 1.038786 -1.453541 +v 0.528149 1.032743 -1.432743 +v 0.532004 1.032743 -1.469145 +v 0.526728 1.032743 -1.463709 +v 0.530552 1.032743 -1.470357 +v 0.533027 1.034308 -1.467348 +v 0.528251 1.037220 -1.462427 +v 0.528251 1.034308 -1.462427 +v 0.541834 1.034308 -1.471907 +v 0.533027 1.037220 -1.467348 +v 0.549776 1.034308 -1.472673 +v 0.541834 1.037220 -1.471907 +v 0.556162 1.034308 -1.471209 +v 0.549776 1.037220 -1.472673 +v 0.550521 1.038786 -1.474473 +v 0.550521 1.038786 -1.474473 +v 0.556162 1.037220 -1.471209 +v 0.541016 1.038786 -1.474955 +v 0.530552 1.038786 -1.470357 +v 0.532004 1.038786 -1.469145 +v 0.541016 1.032743 -1.474955 +v 0.550521 1.032743 -1.474473 +v 0.524641 1.032743 -1.464332 +v 0.520582 1.032743 -1.453541 +v 0.524641 1.038786 -1.464332 +v 0.526218 1.037220 -1.448325 +v 0.526218 1.034308 -1.448325 +v 0.525790 1.033143 -1.448390 +v 0.531355 1.033143 -1.423931 +v 0.532457 1.034308 -1.420902 +v 0.524546 1.032743 -1.448577 +v 0.527861 1.033143 -1.462755 +v 0.532766 1.033143 -1.467807 +v 0.541670 1.033143 -1.472417 +v 0.541192 1.032743 -1.473902 +v 0.549724 1.033143 -1.473194 +v 0.550521 1.032743 -1.474473 +v 0.554720 1.033143 -1.472044 +v 0.531355 1.038385 -1.423931 +v 0.532457 1.037220 -1.420902 +v 0.525790 1.038385 -1.448390 +v 0.527861 1.038385 -1.462755 +v 0.524546 1.038786 -1.448577 +v 0.532766 1.038385 -1.467807 +v 0.526728 1.038786 -1.463709 +v 0.541670 1.038385 -1.472417 +v 0.549724 1.038385 -1.473194 +v 0.541192 1.038786 -1.473902 +v 0.554720 1.038385 -1.472044 +v 0.764251 1.035764 -0.676303 +v 0.766077 1.058083 -0.698547 +v 0.757378 1.035764 -0.695419 +v 0.772950 1.058083 -0.679431 +v 0.787080 1.067328 -0.706098 +v 0.793953 1.067328 -0.686983 +v 0.808082 1.058083 -0.713650 +v 0.814955 1.058083 -0.694534 +v 0.816781 1.035764 -0.716778 +v 0.814955 1.013445 -0.694535 +v 0.808082 1.013445 -0.713650 +v 0.787080 1.004200 -0.706098 +v 0.793953 1.004200 -0.686983 +v 0.823655 1.035764 -0.697663 +v 0.766077 1.013445 -0.698547 +v 0.772950 1.013445 -0.679431 +v 0.451806 1.021880 -1.352307 +v 0.445677 1.049649 -1.350103 +v 0.451806 1.049649 -1.352307 +v 0.500120 1.049649 -1.198690 +v 0.500120 1.021880 -1.198690 +v 0.500100 1.035764 -1.198683 +v 0.502600 1.021880 -1.191793 +v 0.508729 1.049649 -1.193997 +v 0.502600 1.049649 -1.191793 +v 0.506249 1.021880 -1.200894 +v 0.506249 1.049649 -1.200894 +v 0.445677 1.021880 -1.350103 +v 0.508729 1.021880 -1.193997 +v 0.494289 1.021880 -1.196594 +v 0.496769 1.029589 -1.189696 +v 0.494289 1.029589 -1.196594 +v 0.494289 1.049649 -1.196594 +v 0.496769 1.041939 -1.189696 +v 0.496769 1.049649 -1.189696 +v 0.502580 1.035764 -1.191786 +v 0.494289 1.041939 -1.196594 +v 0.496769 1.021880 -1.189696 +v 0.601958 1.056398 -1.221501 +v 0.601958 1.015131 -1.221501 +v 0.601529 1.010761 -1.221699 +v 0.619214 1.060768 -1.172514 +v 0.601529 1.060768 -1.221699 +v 0.619214 1.010761 -1.172514 +v 0.645547 1.060768 -1.181983 +v 0.645547 1.010761 -1.181983 +v 0.640684 1.056398 -1.195506 +v 0.637175 1.060768 -1.205268 +v 0.637175 1.010761 -1.205268 +v 0.614669 1.015131 -1.186152 +v 0.614669 1.056398 -1.186152 +v 0.640684 1.015131 -1.195506 +v 0.637175 1.056398 -1.205268 +v 0.637175 1.015131 -1.205268 +v 0.522823 1.002659 -1.275367 +v 0.510153 1.016124 -1.270811 +v 0.522823 1.016124 -1.275367 +v 0.510153 1.002659 -1.270811 +v 0.515948 1.002659 -1.254694 +v 0.515948 1.002764 -1.254693 +v 0.546742 1.016124 -1.169050 +v 0.546742 1.002764 -1.169050 +v 0.547102 1.002716 -1.169180 +v 0.559413 1.016124 -1.173606 +v 0.559413 1.002716 -1.173606 +v 0.528575 1.002716 -1.259372 +v 0.528575 1.002659 -1.259372 +v 0.516262 1.002659 -1.254944 +v 0.540536 1.005798 -1.147583 +v 0.503010 1.009891 -1.228926 +v 0.506647 1.005798 -1.241834 +v 0.546759 1.003263 -1.149820 +v 0.510582 1.003263 -1.250433 +v 0.553216 1.002391 -1.152142 +v 0.580341 1.002391 -1.161895 +v 0.516253 1.002391 -1.254941 +v 0.543377 1.002391 -1.264694 +v 0.503099 1.010193 -1.228958 +v 0.540614 1.006105 -1.147611 +v 0.506721 1.006106 -1.241861 +v 0.546804 1.003582 -1.149836 +v 0.553227 1.002716 -1.152146 +v 0.543377 1.002716 -1.264694 +v 0.580341 1.002716 -1.161895 +v 0.533206 1.009891 -1.144947 +v 0.510622 1.003583 -1.250448 +v 0.533295 1.010193 -1.144979 +vt 0.703156 0.520987 +vt 0.703156 0.554227 +vt 0.703156 0.520987 +vt 0.703156 0.554227 +vt 0.717254 0.554227 +vt 0.717254 0.554227 +vt 0.717254 0.520987 +vt 0.717254 0.520987 +vt 0.680946 0.743152 +vt 0.680946 0.743152 +vt 0.680946 0.747663 +vt 0.712868 0.738640 +vt 0.712868 0.716943 +vt 0.680946 0.716943 +vt 0.712868 0.747663 +vt 0.712868 0.743152 +vt 0.712868 0.738640 +vt 0.680946 0.738640 +vt 0.712868 0.738640 +vt 0.680946 0.738640 +vt 0.621661 0.723604 +vt 0.621661 0.716943 +vt 0.680946 0.716943 +vt 0.621661 0.716943 +vt 0.680946 0.738640 +vt 0.712868 0.738640 +vt 0.712868 0.743152 +vt 0.621661 0.723604 +vt 0.712868 0.716943 +vt 0.680946 0.738640 +vt 0.105115 0.891994 +vt 0.105115 0.913274 +vt 0.105115 0.891994 +vt 0.105115 0.913274 +vt 0.375880 0.913274 +vt 0.375880 0.913274 +vt 0.375880 0.891994 +vt 0.375880 0.891994 +vt 0.092643 0.892375 +vt 0.092643 0.920774 +vt 0.092643 0.920774 +vt 0.348596 0.920774 +vt 0.348596 0.920774 +vt 0.382005 0.892375 +vt 0.348596 0.892375 +vt 0.348596 0.892375 +vt 0.092643 0.892375 +vt 0.382005 0.920774 +vt 0.382005 0.892375 +vt 0.382005 0.956688 +vt 0.382005 0.920774 +vt 0.348596 0.956688 +vt 0.382005 0.956688 +vt 0.348596 0.956688 +vt 0.394791 0.688361 +vt 0.394791 0.696196 +vt 0.394791 0.688361 +vt 0.588350 0.696196 +vt 0.588350 0.696196 +vt 0.588350 0.696221 +vt 0.597168 0.696196 +vt 0.597168 0.688361 +vt 0.597168 0.696196 +vt 0.588350 0.688361 +vt 0.588350 0.688361 +vt 0.394791 0.696196 +vt 0.597168 0.688361 +vt 0.588350 0.703650 +vt 0.597168 0.703650 +vt 0.588350 0.703650 +vt 0.588350 0.703650 +vt 0.597168 0.703650 +vt 0.597168 0.703650 +vt 0.597168 0.696221 +vt 0.588350 0.703650 +vt 0.597168 0.703650 +vt 0.371558 0.219091 +vt 0.371558 0.219091 +vt 0.371159 0.219497 +vt 0.434034 0.219497 +vt 0.371159 0.219497 +vt 0.434034 0.219497 +vt 0.434034 0.185834 +vt 0.434034 0.185834 +vt 0.416747 0.185834 +vt 0.404268 0.185834 +vt 0.404268 0.185834 +vt 0.416747 0.219091 +vt 0.416747 0.219091 +vt 0.416747 0.185834 +vt 0.404268 0.185834 +vt 0.404268 0.185834 +vt 0.515296 0.663237 +vt 0.515296 0.682674 +vt 0.515296 0.663237 +vt 0.515296 0.682674 +vt 0.540019 0.682674 +vt 0.540021 0.682674 +vt 0.671399 0.682674 +vt 0.671399 0.682674 +vt 0.671399 0.682121 +vt 0.671399 0.663237 +vt 0.671399 0.663237 +vt 0.539833 0.663237 +vt 0.539833 0.663237 +vt 0.539833 0.682125 +vt 0.729032 0.553323 +vt 0.698162 0.542055 +vt 0.698162 0.553323 +vt 0.729032 0.542055 +vt 0.698162 0.514853 +vt 0.729032 0.514853 +vt 0.698162 0.487651 +vt 0.729032 0.487651 +vt 0.698162 0.476384 +vt 0.729032 0.476384 +vt 0.698162 0.487651 +vt 0.729032 0.487651 +vt 0.698162 0.514853 +vt 0.729032 0.514853 +vt 0.698162 0.542055 +vt 0.729032 0.542055 +vt 0.743036 0.769004 +vt 0.141560 0.758639 +vt 0.141560 0.769004 +vt 0.743036 0.758639 +vt 0.141560 0.733616 +vt 0.743036 0.733616 +vt 0.141560 0.708594 +vt 0.743036 0.708594 +vt 0.141560 0.698229 +vt 0.743036 0.698229 +vt 0.141560 0.708594 +vt 0.743036 0.708594 +vt 0.141560 0.733616 +vt 0.743036 0.733617 +vt 0.141560 0.758639 +vt 0.743036 0.758639 +vt 0.486610 0.403096 +vt 0.493668 0.400172 +vt 0.486610 0.403096 +vt 0.493668 0.400172 +vt 0.496592 0.393114 +vt 0.496592 0.393114 +vt 0.493668 0.386056 +vt 0.493668 0.386056 +vt 0.486610 0.383132 +vt 0.486610 0.383132 +vt 0.479552 0.386056 +vt 0.479552 0.386056 +vt 0.476628 0.393114 +vt 0.476628 0.393114 +vt 0.479552 0.400172 +vt 0.479552 0.400172 +vt 0.628329 0.321805 +vt 0.628329 0.321805 +vt 0.723547 0.410717 +vt 0.451913 0.450017 +vt 0.417065 0.447278 +vt 0.451913 0.450017 +vt 0.492148 0.449947 +vt 0.492148 0.449947 +vt 0.320353 0.418005 +vt 0.317476 0.415326 +vt 0.317476 0.415326 +vt 0.513735 0.353212 +vt 0.533389 0.354544 +vt 0.513735 0.353212 +vt 0.627472 0.437038 +vt 0.633953 0.445991 +vt 0.632155 0.442480 +vt 0.598064 0.430599 +vt 0.526987 0.447088 +vt 0.526987 0.447088 +vt 0.346805 0.430312 +vt 0.337725 0.427903 +vt 0.346805 0.430312 +vt 0.328043 0.423398 +vt 0.328043 0.423398 +vt 0.606224 0.430794 +vt 0.606224 0.430794 +vt 0.337725 0.427903 +vt 0.409219 0.330020 +vt 0.407407 0.332776 +vt 0.404520 0.335973 +vt 0.637952 0.444202 +vt 0.649964 0.444108 +vt 0.639619 0.447202 +vt 0.496840 0.350199 +vt 0.496840 0.350199 +vt 0.621523 0.434636 +vt 0.689639 0.428669 +vt 0.668641 0.437565 +vt 0.668641 0.437565 +vt 0.649964 0.444108 +vt 0.623159 0.421808 +vt 0.624826 0.429596 +vt 0.620060 0.417870 +vt 0.600123 0.333994 +vt 0.589773 0.342184 +vt 0.589773 0.342184 +vt 0.550537 0.353838 +vt 0.550537 0.353838 +vt 0.563678 0.352263 +vt 0.576433 0.348871 +vt 0.563678 0.352263 +vt 0.576433 0.348871 +vt 0.588701 0.342722 +vt 0.600123 0.333994 +vt 0.600123 0.333994 +vt 0.608431 0.325267 +vt 0.681681 0.411435 +vt 0.661797 0.419859 +vt 0.608431 0.325267 +vt 0.707333 0.419804 +vt 0.723547 0.410717 +vt 0.707333 0.419804 +vt 0.689639 0.428669 +vt 0.634111 0.435986 +vt 0.629112 0.424699 +vt 0.626650 0.437620 +vt 0.626907 0.437684 +vt 0.589627 0.342258 +vt 0.589773 0.342184 +vt 0.589226 0.342459 +vt 0.595854 0.360487 +vt 0.613675 0.411865 +vt 0.592285 0.362257 +vt 0.607904 0.408042 +vt 0.592285 0.362257 +vt 0.587703 0.364543 +vt 0.621514 0.434631 +vt 0.661797 0.419859 +vt 0.634046 0.436039 +vt 0.665219 0.428712 +vt 0.627288 0.438200 +vt 0.634290 0.445789 +vt 0.624826 0.429596 +vt 0.628358 0.433800 +vt 0.626650 0.437620 +vt 0.627288 0.438200 +vt 0.589627 0.342258 +vt 0.589226 0.342459 +vt 0.588701 0.342722 +vt 0.613675 0.411865 +vt 0.595854 0.360487 +vt 0.607904 0.408042 +vt 0.587703 0.364543 +vt 0.494375 0.424075 +vt 0.525936 0.437655 +vt 0.491751 0.440461 +vt 0.526705 0.444560 +vt 0.492041 0.447405 +vt 0.494375 0.424075 +vt 0.525936 0.437655 +vt 0.527906 0.421323 +vt 0.491751 0.440461 +vt 0.526705 0.444560 +vt 0.492041 0.447405 +vt 0.455663 0.424142 +vt 0.452277 0.440529 +vt 0.452011 0.447475 +vt 0.455663 0.424142 +vt 0.452277 0.440529 +vt 0.422122 0.421506 +vt 0.418083 0.437842 +vt 0.417338 0.444750 +vt 0.422122 0.421506 +vt 0.417338 0.444750 +vt 0.452011 0.447475 +vt 0.417065 0.447278 +vt 0.344211 0.409994 +vt 0.348674 0.420993 +vt 0.340968 0.418949 +vt 0.347305 0.427815 +vt 0.338594 0.425504 +vt 0.344211 0.409994 +vt 0.348674 0.420993 +vt 0.350543 0.411674 +vt 0.340968 0.418949 +vt 0.347305 0.427815 +vt 0.338594 0.425504 +vt 0.332805 0.415150 +vt 0.337566 0.406902 +vt 0.329319 0.421188 +vt 0.332805 0.415150 +vt 0.326277 0.410573 +vt 0.332202 0.403141 +vt 0.321940 0.416013 +vt 0.337566 0.406902 +vt 0.326277 0.410573 +vt 0.321940 0.416013 +vt 0.329319 0.421188 +vt 0.320353 0.418005 +vt 0.321958 0.406964 +vt 0.326439 0.398603 +vt 0.318677 0.413085 +vt 0.332202 0.403141 +vt 0.321958 0.406964 +vt 0.318677 0.413085 +vt 0.350543 0.411674 +vt 0.418083 0.437842 +vt 0.597512 0.421096 +vt 0.596961 0.411593 +vt 0.609075 0.428320 +vt 0.597916 0.428052 +vt 0.597512 0.421096 +vt 0.614083 0.420982 +vt 0.609075 0.428320 +vt 0.597916 0.428052 +vt 0.527906 0.421323 +vt 0.596961 0.411593 +vt 0.598064 0.430599 +vt 0.492779 0.368748 +vt 0.512578 0.362642 +vt 0.511421 0.372072 +vt 0.494809 0.359474 +vt 0.513425 0.355739 +vt 0.496296 0.352684 +vt 0.492779 0.368748 +vt 0.512578 0.362642 +vt 0.494809 0.359474 +vt 0.513425 0.355739 +vt 0.496296 0.352684 +vt 0.533263 0.364044 +vt 0.533137 0.373544 +vt 0.533356 0.357089 +vt 0.511421 0.372072 +vt 0.533263 0.364044 +vt 0.533356 0.357089 +vt 0.533389 0.354544 +vt 0.552058 0.372765 +vt 0.551297 0.363302 +vt 0.550740 0.356374 +vt 0.552058 0.372765 +vt 0.533137 0.373544 +vt 0.551297 0.363302 +vt 0.410939 0.327841 +vt 0.412106 0.326823 +vt 0.398101 0.344105 +vt 0.567262 0.370942 +vt 0.580011 0.357736 +vt 0.583588 0.366602 +vt 0.565470 0.361603 +vt 0.577392 0.351247 +vt 0.564158 0.354765 +vt 0.567262 0.370942 +vt 0.580011 0.357736 +vt 0.565470 0.361602 +vt 0.577392 0.351247 +vt 0.564158 0.354765 +vt 0.593588 0.350968 +vt 0.592299 0.351594 +vt 0.590796 0.344538 +vt 0.590020 0.344921 +vt 0.550740 0.356374 +vt 0.619069 0.430717 +vt 0.614084 0.420983 +vt 0.600123 0.333994 +vt 0.597402 0.359752 +vt 0.632313 0.442352 +vt 0.627472 0.437038 +vt 0.623193 0.421852 +vt 0.639144 0.447563 +vt 0.702887 0.411421 +vt 0.685660 0.420052 +vt 0.706141 0.417558 +vt 0.688573 0.426360 +vt 0.681681 0.411435 +vt 0.702887 0.411421 +vt 0.698440 0.403038 +vt 0.685660 0.420052 +vt 0.706141 0.417558 +vt 0.688573 0.426360 +vt 0.665219 0.428712 +vt 0.667724 0.435193 +vt 0.665108 0.436110 +vt 0.665108 0.436110 +vt 0.667724 0.435193 +vt 0.721597 0.408896 +vt 0.716269 0.403921 +vt 0.708991 0.397125 +vt 0.708991 0.397125 +vt 0.698440 0.403038 +vt 0.716269 0.403921 +vt 0.721597 0.408896 +vt 0.600123 0.333994 +vt 0.593588 0.350968 +vt 0.600123 0.333994 +vt 0.590796 0.344538 +vt 0.600123 0.333994 +vt 0.597402 0.359752 +vt 0.592299 0.351594 +vt 0.590020 0.344921 +vt 0.619065 0.430715 +vt 0.589107 0.353184 +vt 0.587987 0.345938 +vt 0.584897 0.355289 +vt 0.585262 0.347302 +vt 0.589107 0.353184 +vt 0.584897 0.355289 +vt 0.587987 0.345937 +vt 0.585262 0.347302 +vt 0.619396 0.424552 +vt 0.624145 0.433979 +vt 0.624532 0.422226 +vt 0.620060 0.417870 +vt 0.624532 0.422226 +vt 0.637719 0.444398 +vt 0.619396 0.424552 +vt 0.624145 0.433979 +vt 0.583588 0.366602 +vt 0.410939 0.327841 +vt 0.413826 0.324644 +vt 0.404520 0.335973 +vt 0.400987 0.340908 +vt 0.407407 0.332776 +vt 0.409219 0.330020 +vt 0.413826 0.324644 +vt 0.397524 0.320401 +vt 0.390272 0.328317 +vt 0.395581 0.322522 +vt 0.412106 0.326823 +vt 0.397524 0.320401 +vt 0.395581 0.322522 +vt 0.390272 0.328317 +vt 0.400987 0.340908 +vt 0.383020 0.336232 +vt 0.383020 0.336232 +vt 0.629108 0.424700 +vt 0.628386 0.433758 +vt 0.326439 0.398603 +vt 0.352835 0.400778 +vt 0.484968 0.425617 +vt 0.486394 0.418030 +vt 0.488653 0.419772 +vt 0.488653 0.419772 +vt 0.354262 0.393192 +vt 0.486394 0.418030 +vt 0.484968 0.425617 +vt 0.487705 0.424814 +vt 0.354262 0.393192 +vt 0.351525 0.393994 +vt 0.352835 0.400778 +vt 0.351525 0.393994 +vt 0.348633 0.396061 +vt 0.348633 0.396061 +vt 0.350577 0.399036 +vt 0.490597 0.422747 +vt 0.490597 0.422747 +vt 0.487705 0.424814 +vt 0.350577 0.399036 +vt 0.362627 0.387623 +vt 0.494690 0.412449 +vt 0.496116 0.404863 +vt 0.498387 0.406607 +vt 0.498387 0.406607 +vt 0.364053 0.380037 +vt 0.496116 0.404863 +vt 0.494690 0.412449 +vt 0.497439 0.411649 +vt 0.364053 0.380037 +vt 0.361304 0.380838 +vt 0.362627 0.387623 +vt 0.361304 0.380838 +vt 0.358401 0.382902 +vt 0.358401 0.382902 +vt 0.360356 0.385880 +vt 0.500342 0.409584 +vt 0.500342 0.409584 +vt 0.497439 0.411649 +vt 0.360356 0.385880 +vt 0.384519 0.361285 +vt 0.516529 0.386100 +vt 0.517955 0.378514 +vt 0.520235 0.380260 +vt 0.520235 0.380260 +vt 0.385945 0.353698 +vt 0.517955 0.378514 +vt 0.516529 0.386100 +vt 0.519287 0.385301 +vt 0.385945 0.353698 +vt 0.383187 0.354497 +vt 0.384519 0.361285 +vt 0.383187 0.354497 +vt 0.380275 0.356560 +vt 0.380275 0.356560 +vt 0.382239 0.359539 +vt 0.522198 0.383239 +vt 0.522198 0.383239 +vt 0.519287 0.385301 +vt 0.382239 0.359539 +vt 0.374483 0.374411 +vt 0.506492 0.399226 +vt 0.507919 0.391640 +vt 0.510198 0.393386 +vt 0.510198 0.393386 +vt 0.375909 0.366825 +vt 0.507919 0.391640 +vt 0.506492 0.399226 +vt 0.509250 0.398428 +vt 0.375909 0.366825 +vt 0.373151 0.367623 +vt 0.374483 0.374411 +vt 0.373151 0.367623 +vt 0.370239 0.369686 +vt 0.370239 0.369686 +vt 0.372203 0.372665 +vt 0.512162 0.396365 +vt 0.512162 0.396365 +vt 0.509250 0.398428 +vt 0.372203 0.372665 +vt 0.352835 0.400778 +vt 0.484968 0.425617 +vt 0.486394 0.418030 +vt 0.488653 0.419772 +vt 0.488653 0.419772 +vt 0.354262 0.393192 +vt 0.486394 0.418030 +vt 0.484968 0.425617 +vt 0.487705 0.424814 +vt 0.354262 0.393192 +vt 0.351525 0.393994 +vt 0.352835 0.400778 +vt 0.351525 0.393994 +vt 0.348633 0.396061 +vt 0.348633 0.396061 +vt 0.350577 0.399036 +vt 0.490597 0.422747 +vt 0.490597 0.422747 +vt 0.487705 0.424814 +vt 0.350577 0.399036 +vt 0.362627 0.387623 +vt 0.494690 0.412449 +vt 0.496116 0.404863 +vt 0.498387 0.406607 +vt 0.498387 0.406607 +vt 0.364053 0.380037 +vt 0.496116 0.404863 +vt 0.494690 0.412449 +vt 0.497439 0.411649 +vt 0.364053 0.380037 +vt 0.361304 0.380837 +vt 0.362627 0.387623 +vt 0.361304 0.380838 +vt 0.358401 0.382902 +vt 0.358401 0.382902 +vt 0.360356 0.385880 +vt 0.500342 0.409584 +vt 0.500342 0.409584 +vt 0.497439 0.411649 +vt 0.360356 0.385880 +vt 0.384519 0.361285 +vt 0.516529 0.386100 +vt 0.517955 0.378514 +vt 0.520235 0.380260 +vt 0.520235 0.380260 +vt 0.385945 0.353698 +vt 0.517955 0.378514 +vt 0.516529 0.386100 +vt 0.519287 0.385301 +vt 0.385945 0.353698 +vt 0.383187 0.354497 +vt 0.384519 0.361285 +vt 0.383187 0.354497 +vt 0.380275 0.356560 +vt 0.380275 0.356560 +vt 0.382239 0.359539 +vt 0.522198 0.383239 +vt 0.522198 0.383239 +vt 0.519287 0.385301 +vt 0.382239 0.359539 +vt 0.374483 0.374411 +vt 0.506492 0.399226 +vt 0.507919 0.391640 +vt 0.510198 0.393386 +vt 0.510198 0.393386 +vt 0.375909 0.366825 +vt 0.507919 0.391640 +vt 0.506492 0.399226 +vt 0.509250 0.398428 +vt 0.375909 0.366825 +vt 0.373151 0.367623 +vt 0.374483 0.374411 +vt 0.373151 0.367623 +vt 0.370239 0.369686 +vt 0.370239 0.369686 +vt 0.372203 0.372665 +vt 0.512162 0.396365 +vt 0.512162 0.396365 +vt 0.509250 0.398428 +vt 0.372203 0.372665 +vt 0.600123 0.333994 +vt 0.398101 0.344105 +vt 0.410446 0.878172 +vt 0.459032 0.957893 +vt 0.409800 0.933798 +vt 0.270167 0.928387 +vt 0.263671 0.929521 +vt 0.138793 0.990301 +vt 0.097751 0.989006 +vt 0.138793 0.990301 +vt 0.459032 0.957893 +vt 0.031544 0.877691 +vt 0.031544 0.877691 +vt 0.031544 0.956752 +vt 0.097751 0.989006 +vt 0.062956 0.983571 +vt 0.039707 0.971267 +vt 0.039707 0.971267 +vt 0.062956 0.983571 +vt 0.031544 0.956752 +vt 0.459032 0.990301 +vt 0.133506 0.958479 +vt 0.144365 0.970295 +vt 0.119823 0.970161 +vt 0.141437 0.980809 +vt 0.108223 0.980065 +vt 0.139480 0.987834 +vt 0.100472 0.986683 +vt 0.133506 0.958479 +vt 0.144365 0.970295 +vt 0.147819 0.957893 +vt 0.119823 0.970161 +vt 0.141437 0.980809 +vt 0.108223 0.980065 +vt 0.139480 0.987834 +vt 0.100472 0.986683 +vt 0.048604 0.975975 +vt 0.056147 0.979967 +vt 0.061187 0.982635 +vt 0.056147 0.979967 +vt 0.061187 0.982635 +vt 0.459032 0.987834 +vt 0.459032 0.980809 +vt 0.459032 0.970295 +vt 0.459032 0.970295 +vt 0.410561 0.970295 +vt 0.411041 0.967999 +vt 0.147819 0.957893 +vt 0.257754 0.957893 +vt 0.257754 0.967999 +vt 0.270167 0.979350 +vt 0.398628 0.979350 +vt 0.459032 0.980809 +vt 0.459032 0.987834 +vt 0.459032 0.990301 +vt 0.458599 0.845169 +vt 0.410339 0.844769 +vt 0.458599 0.845169 +vt 0.410446 0.878172 +vt 0.410339 0.844769 +vt 0.405124 0.929521 +vt 0.409800 0.933798 +vt 0.263671 0.929521 +vt 0.258995 0.933798 +vt 0.270167 0.928387 +vt 0.398628 0.928387 +vt 0.398628 0.928387 +vt 0.381400 0.940125 +vt 0.381400 0.967613 +vt 0.287395 0.940125 +vt 0.405124 0.929521 +vt 0.258995 0.973940 +vt 0.257754 0.967999 +vt 0.257754 0.939738 +vt 0.257754 0.939738 +vt 0.258995 0.973940 +vt 0.263671 0.978216 +vt 0.411041 0.939738 +vt 0.411041 0.939738 +vt 0.263671 0.978216 +vt 0.409800 0.973940 +vt 0.405124 0.978216 +vt 0.405124 0.978216 +vt 0.270167 0.979350 +vt 0.258995 0.933798 +vt 0.409800 0.973940 +vt 0.411041 0.957893 +vt 0.396858 0.931068 +vt 0.271936 0.931068 +vt 0.288230 0.936125 +vt 0.269676 0.931463 +vt 0.402323 0.934393 +vt 0.403459 0.939837 +vt 0.399119 0.931463 +vt 0.380565 0.936125 +vt 0.411041 0.967999 +vt 0.380565 0.971613 +vt 0.402323 0.973344 +vt 0.399119 0.976274 +vt 0.288230 0.971613 +vt 0.269676 0.976274 +vt 0.266472 0.973344 +vt 0.265336 0.939837 +vt 0.266472 0.934393 +vt 0.287395 0.967613 +vt 0.396858 0.976669 +vt 0.398628 0.979350 +vt 0.271937 0.976669 +vt 0.265336 0.967900 +vt 0.403459 0.967900 +vt 0.048604 0.975975 +vt 0.258234 0.970295 +vt 0.766609 0.756295 +vt 0.165134 0.745931 +vt 0.165134 0.756295 +vt 0.766609 0.745931 +vt 0.165134 0.720908 +vt 0.766609 0.720908 +vt 0.165134 0.695885 +vt 0.766609 0.695885 +vt 0.165134 0.685521 +vt 0.766609 0.685521 +vt 0.165134 0.695885 +vt 0.766609 0.695885 +vt 0.165134 0.720908 +vt 0.766609 0.720908 +vt 0.165134 0.745931 +vt 0.766609 0.745931 +vt 0.782994 0.575784 +vt 0.714498 0.564516 +vt 0.714498 0.575784 +vt 0.782994 0.564516 +vt 0.714498 0.537314 +vt 0.782994 0.537314 +vt 0.714498 0.510112 +vt 0.782994 0.510112 +vt 0.714498 0.498845 +vt 0.782994 0.498845 +vt 0.714498 0.510112 +vt 0.782994 0.510112 +vt 0.714498 0.537314 +vt 0.782994 0.537314 +vt 0.782994 0.537314 +vt 0.782994 0.559627 +vt 0.782994 0.537314 +vt 0.714498 0.564516 +vt 0.782994 0.564516 +vt 0.714498 0.537314 +vt 0.714498 0.515002 +vt 0.714498 0.559627 +vt 0.714498 0.568869 +vt 0.714498 0.537314 +vt 0.714498 0.515002 +vt 0.782994 0.515002 +vt 0.714498 0.505760 +vt 0.782994 0.505760 +vt 0.782994 0.515002 +vt 0.782994 0.559627 +vt 0.714498 0.559627 +vt 0.782994 0.568869 +vt 0.729257 0.590922 +vt 0.704821 0.579801 +vt 0.704821 0.590922 +vt 0.729257 0.579801 +vt 0.704821 0.552952 +vt 0.729257 0.552952 +vt 0.704821 0.526104 +vt 0.729257 0.526104 +vt 0.704821 0.514983 +vt 0.729257 0.514983 +vt 0.704821 0.526104 +vt 0.729257 0.526104 +vt 0.704821 0.552952 +vt 0.729257 0.552952 +vt 0.704821 0.579801 +vt 0.729257 0.579801 +vt 0.164335 0.434657 +vt 0.179187 0.434574 +vt 0.178601 0.434657 +vt 0.482821 0.346461 +vt 0.475427 0.434657 +vt 0.482821 0.434657 +vt 0.670036 0.330470 +vt 0.482821 0.330470 +vt 0.670036 0.330470 +vt 0.470021 0.434657 +vt 0.475425 0.346133 +vt 0.475427 0.434657 +vt 0.238885 0.370245 +vt 0.251790 0.369380 +vt 0.258817 0.371634 +vt 0.208811 0.434119 +vt 0.213706 0.434119 +vt 0.263888 0.365240 +vt 0.223848 0.346310 +vt 0.220877 0.342772 +vt 0.482821 0.346461 +vt 0.482821 0.434657 +vt 0.462275 0.434657 +vt 0.470016 0.345190 +vt 0.462279 0.342235 +vt 0.670036 0.434657 +vt 0.670036 0.434657 +vt 0.670036 0.346418 +vt 0.164335 0.324456 +vt 0.164335 0.324456 +vt 0.164335 0.340403 +vt 0.462275 0.434657 +vt 0.470016 0.345190 +vt 0.449475 0.434657 +vt 0.456870 0.341015 +vt 0.456869 0.434657 +vt 0.475425 0.330022 +vt 0.482821 0.330470 +vt 0.470016 0.328940 +vt 0.462280 0.325986 +vt 0.462280 0.325986 +vt 0.475425 0.346133 +vt 0.470021 0.434657 +vt 0.470016 0.328940 +vt 0.456870 0.341015 +vt 0.449475 0.434657 +vt 0.456869 0.434657 +vt 0.449475 0.324456 +vt 0.456870 0.324904 +vt 0.456870 0.324904 +vt 0.462279 0.342235 +vt 0.475425 0.332181 +vt 0.470016 0.331117 +vt 0.470016 0.337065 +vt 0.475425 0.338078 +vt 0.482821 0.332613 +vt 0.482821 0.338466 +vt 0.475425 0.330022 +vt 0.482821 0.332613 +vt 0.475425 0.338078 +vt 0.482821 0.338466 +vt 0.475425 0.332181 +vt 0.470016 0.337065 +vt 0.462280 0.328162 +vt 0.456870 0.332959 +vt 0.462280 0.334110 +vt 0.449475 0.324456 +vt 0.456870 0.327062 +vt 0.449475 0.332451 +vt 0.449475 0.340446 +vt 0.456870 0.327062 +vt 0.449475 0.326598 +vt 0.449475 0.332451 +vt 0.456870 0.332959 +vt 0.449475 0.340446 +vt 0.462280 0.328163 +vt 0.462280 0.334110 +vt 0.670036 0.332607 +vt 0.670036 0.338444 +vt 0.670036 0.346418 +vt 0.470016 0.331117 +vt 0.670036 0.338444 +vt 0.164335 0.434657 +vt 0.179188 0.434574 +vt 0.163633 0.434674 +vt 0.178592 0.332430 +vt 0.179177 0.339433 +vt 0.179177 0.330739 +vt 0.164335 0.332429 +vt 0.163633 0.324373 +vt 0.164335 0.326592 +vt 0.178592 0.324456 +vt 0.178592 0.326592 +vt 0.178592 0.340405 +vt 0.288891 0.370384 +vt 0.291861 0.366747 +vt 0.264079 0.364938 +vt 0.268958 0.434243 +vt 0.268958 0.370245 +vt 0.268958 0.434243 +vt 0.299032 0.370384 +vt 0.299032 0.434243 +vt 0.299032 0.370384 +vt 0.228743 0.434243 +vt 0.238885 0.434243 +vt 0.228743 0.434243 +vt 0.228743 0.434243 +vt 0.238885 0.434243 +vt 0.238885 0.434243 +vt 0.213706 0.434119 +vt 0.178603 0.434657 +vt 0.228743 0.434243 +vt 0.228743 0.370245 +vt 0.228743 0.370245 +vt 0.228743 0.370384 +vt 0.329106 0.434243 +vt 0.329106 0.370245 +vt 0.329106 0.434243 +vt 0.329106 0.370384 +vt 0.329106 0.434243 +vt 0.329106 0.370384 +vt 0.258817 0.434243 +vt 0.258817 0.434243 +vt 0.258817 0.434243 +vt 0.268958 0.434243 +vt 0.268958 0.434243 +vt 0.238885 0.434243 +vt 0.238885 0.370384 +vt 0.238885 0.370384 +vt 0.258817 0.370384 +vt 0.258817 0.371634 +vt 0.264075 0.364940 +vt 0.266481 0.366696 +vt 0.265988 0.366706 +vt 0.268958 0.370245 +vt 0.258817 0.370245 +vt 0.291861 0.366747 +vt 0.288891 0.370384 +vt 0.288891 0.434243 +vt 0.299032 0.434243 +vt 0.288891 0.434243 +vt 0.288891 0.434243 +vt 0.299032 0.434243 +vt 0.235914 0.366706 +vt 0.238885 0.370245 +vt 0.268958 0.370384 +vt 0.288891 0.370245 +vt 0.288891 0.370245 +vt 0.288891 0.434243 +vt 0.359180 0.370384 +vt 0.359180 0.434243 +vt 0.359180 0.370384 +vt 0.359180 0.434243 +vt 0.359180 0.370245 +vt 0.359180 0.434243 +vt 0.389254 0.370384 +vt 0.389254 0.434243 +vt 0.389254 0.370384 +vt 0.318965 0.434243 +vt 0.318965 0.434243 +vt 0.318965 0.434243 +vt 0.329106 0.434243 +vt 0.299032 0.434243 +vt 0.299032 0.370245 +vt 0.231714 0.366747 +vt 0.318965 0.370245 +vt 0.318965 0.370245 +vt 0.318965 0.370384 +vt 0.318965 0.434243 +vt 0.389254 0.434243 +vt 0.389254 0.370245 +vt 0.389254 0.434243 +vt 0.419327 0.370384 +vt 0.419327 0.434243 +vt 0.419327 0.370384 +vt 0.349038 0.434243 +vt 0.349038 0.434243 +vt 0.349038 0.434243 +vt 0.359180 0.434243 +vt 0.296062 0.366706 +vt 0.299032 0.370245 +vt 0.349038 0.370245 +vt 0.349038 0.370245 +vt 0.349038 0.370384 +vt 0.349038 0.434243 +vt 0.419327 0.434243 +vt 0.419327 0.370245 +vt 0.419327 0.434243 +vt 0.208811 0.434119 +vt 0.208811 0.357554 +vt 0.208811 0.346449 +vt 0.379112 0.434243 +vt 0.379112 0.434243 +vt 0.379112 0.434243 +vt 0.389254 0.434243 +vt 0.326136 0.366706 +vt 0.329106 0.370245 +vt 0.379112 0.370245 +vt 0.379112 0.370245 +vt 0.379112 0.370384 +vt 0.379112 0.434243 +vt 0.223848 0.346310 +vt 0.223848 0.363353 +vt 0.201640 0.342812 +vt 0.198670 0.346449 +vt 0.409186 0.434243 +vt 0.409186 0.434243 +vt 0.409186 0.434243 +vt 0.419327 0.434243 +vt 0.356209 0.366706 +vt 0.359180 0.370245 +vt 0.321935 0.366747 +vt 0.409186 0.370245 +vt 0.409186 0.370245 +vt 0.409186 0.370384 +vt 0.409186 0.434243 +vt 0.416357 0.366706 +vt 0.419327 0.370245 +vt 0.198670 0.434119 +vt 0.198670 0.434119 +vt 0.198670 0.434119 +vt 0.208811 0.434119 +vt 0.386283 0.366706 +vt 0.389254 0.370245 +vt 0.352009 0.366747 +vt 0.198670 0.353643 +vt 0.198670 0.346310 +vt 0.223848 0.434119 +vt 0.223848 0.434119 +vt 0.223848 0.363353 +vt 0.198670 0.346449 +vt 0.198670 0.353643 +vt 0.205841 0.342772 +vt 0.208811 0.346310 +vt 0.412156 0.366747 +vt 0.213706 0.434119 +vt 0.223848 0.434119 +vt 0.213706 0.434119 +vt 0.208811 0.357554 +vt 0.208811 0.434119 +vt 0.382083 0.366747 +vt 0.213706 0.359442 +vt 0.213706 0.346449 +vt 0.213706 0.346449 +vt 0.213706 0.359442 +vt 0.233814 0.365240 +vt 0.231714 0.366706 +vt 0.235914 0.366706 +vt 0.291861 0.366706 +vt 0.321935 0.366706 +vt 0.382083 0.366706 +vt 0.412156 0.366706 +vt 0.198670 0.346310 +vt 0.201640 0.342772 +vt 0.201640 0.342772 +vt 0.203740 0.341306 +vt 0.412156 0.366706 +vt 0.414257 0.365240 +vt 0.258817 0.370245 +vt 0.261787 0.366706 +vt 0.261787 0.366706 +vt 0.263888 0.365240 +vt 0.291861 0.366706 +vt 0.293962 0.365240 +vt 0.321935 0.366706 +vt 0.324035 0.365240 +vt 0.352009 0.366706 +vt 0.352009 0.366706 +vt 0.354109 0.365240 +vt 0.382083 0.366706 +vt 0.384183 0.365240 +vt 0.218777 0.341306 +vt 0.220877 0.342772 +vt 0.218777 0.341306 +vt 0.231714 0.366706 +vt 0.233814 0.365240 +vt 0.265988 0.366706 +vt 0.293962 0.365240 +vt 0.296062 0.366706 +vt 0.354109 0.365240 +vt 0.356209 0.366706 +vt 0.384183 0.365240 +vt 0.386283 0.366706 +vt 0.414257 0.365240 +vt 0.416357 0.366706 +vt 0.213706 0.346310 +vt 0.216677 0.342772 +vt 0.213706 0.346310 +vt 0.216677 0.342772 +vt 0.324035 0.365240 +vt 0.326136 0.366706 +vt 0.203740 0.341306 +vt 0.205841 0.342772 +vt 0.228743 0.370384 +vt 0.231714 0.366747 +vt 0.233814 0.365240 +vt 0.258817 0.434243 +vt 0.318965 0.370384 +vt 0.321935 0.366747 +vt 0.349038 0.370384 +vt 0.352009 0.366747 +vt 0.379112 0.370384 +vt 0.382083 0.366747 +vt 0.386283 0.366747 +vt 0.409186 0.370384 +vt 0.412156 0.366747 +vt 0.293962 0.365240 +vt 0.293962 0.365240 +vt 0.235914 0.366747 +vt 0.235914 0.366747 +vt 0.233814 0.365240 +vt 0.296062 0.366747 +vt 0.296062 0.366747 +vt 0.326136 0.366747 +vt 0.326136 0.366747 +vt 0.324035 0.365240 +vt 0.386283 0.366747 +vt 0.384183 0.365240 +vt 0.208811 0.346449 +vt 0.205841 0.342812 +vt 0.205841 0.342812 +vt 0.203740 0.341306 +vt 0.218777 0.341306 +vt 0.216677 0.342812 +vt 0.218777 0.341306 +vt 0.216677 0.342812 +vt 0.354109 0.365240 +vt 0.354109 0.365240 +vt 0.356209 0.366747 +vt 0.356209 0.366747 +vt 0.384183 0.365240 +vt 0.414257 0.365240 +vt 0.414257 0.365240 +vt 0.416357 0.366747 +vt 0.416357 0.366747 +vt 0.223848 0.346449 +vt 0.220877 0.342812 +vt 0.223848 0.346449 +vt 0.220877 0.342812 +vt 0.324035 0.365240 +vt 0.261787 0.366747 +vt 0.261821 0.366747 +vt 0.203740 0.341306 +vt 0.201640 0.342812 +vt 0.266477 0.366698 +vt 0.268963 0.370382 +vt 0.179177 0.322044 +vt 0.178592 0.324456 +vt 0.164335 0.340403 +vt 0.163633 0.434674 +vt 0.178592 0.326592 +vt 0.179177 0.324374 +vt 0.178592 0.340405 +vt 0.449475 0.326598 +vt 0.178592 0.332430 +vt 0.163633 0.322044 +vt 0.163633 0.322044 +vt 0.178593 0.345901 +vt 0.179178 0.345425 +vt 0.163633 0.339431 +vt 0.179177 0.330739 +vt 0.164335 0.332429 +vt 0.163633 0.339431 +vt 0.163633 0.330737 +vt 0.179177 0.339433 +vt 0.163633 0.330737 +vt 0.179177 0.324374 +vt 0.163633 0.324373 +vt 0.179178 0.345425 +vt 0.178593 0.345901 +vt 0.179177 0.322044 +vt 0.164335 0.326592 +vt 0.208811 0.346310 +vt 0.670036 0.332607 +vt 0.198670 0.434119 +vt 0.258817 0.370384 +vt 0.223848 0.434119 +vt 0.176155 0.159372 +vt 0.351182 0.159372 +vt 0.176155 0.159372 +vt 0.176155 0.157238 +vt 0.176155 0.157238 +vt 0.286086 0.114179 +vt 0.289470 0.123449 +vt 0.286086 0.114179 +vt 0.206319 0.123491 +vt 0.199684 0.136404 +vt 0.206319 0.123491 +vt 0.199684 0.136404 +vt 0.188460 0.148679 +vt 0.188460 0.148679 +vt 0.351182 0.159372 +vt 0.351182 0.157119 +vt 0.207246 0.118405 +vt 0.207246 0.118405 +vt 0.289470 0.123449 +vt 0.302205 0.137250 +vt 0.302205 0.137250 +vt 0.326572 0.148575 +vt 0.326572 0.148575 +vt 0.351182 0.157119 +vt 0.289117 0.138628 +vt 0.294854 0.136252 +vt 0.286775 0.135968 +vt 0.220441 0.149560 +vt 0.214194 0.146627 +vt 0.220638 0.106650 +vt 0.220441 0.110047 +vt 0.228285 0.109317 +vt 0.273140 0.106307 +vt 0.282061 0.108308 +vt 0.273140 0.106307 +vt 0.282061 0.108308 +vt 0.210999 0.110994 +vt 0.210999 0.110994 +vt 0.220638 0.106650 +vt 0.228285 0.109317 +vt 0.220441 0.110047 +vt 0.286775 0.135968 +vt 0.294854 0.136252 +vt 0.266968 0.150290 +vt 0.294854 0.152477 +vt 0.286775 0.123640 +vt 0.208478 0.123640 +vt 0.208478 0.135968 +vt 0.208478 0.123640 +vt 0.266968 0.109317 +vt 0.266968 0.109317 +vt 0.228285 0.150290 +vt 0.228285 0.150290 +vt 0.214194 0.112981 +vt 0.214194 0.112981 +vt 0.209799 0.117931 +vt 0.209799 0.117931 +vt 0.220441 0.149560 +vt 0.214194 0.146627 +vt 0.209799 0.141676 +vt 0.209799 0.141676 +vt 0.208478 0.135968 +vt 0.285454 0.141676 +vt 0.285454 0.141676 +vt 0.281058 0.146627 +vt 0.281058 0.146627 +vt 0.274811 0.149560 +vt 0.274811 0.149560 +vt 0.266968 0.150290 +vt 0.274811 0.110047 +vt 0.274811 0.110047 +vt 0.281058 0.112981 +vt 0.281058 0.112981 +vt 0.285454 0.117931 +vt 0.285454 0.117931 +vt 0.286775 0.123640 +vt 0.300590 0.150101 +vt 0.294854 0.152477 +vt 0.302967 0.144365 +vt 0.300590 0.150101 +vt 0.300590 0.138628 +vt 0.302967 0.144365 +vt 0.299187 0.138047 +vt 0.299187 0.138047 +vt 0.289117 0.138628 +vt 0.287699 0.142053 +vt 0.286741 0.144365 +vt 0.287699 0.142053 +vt 0.289117 0.150101 +vt 0.286741 0.144365 +vt 0.289117 0.150101 +vt 0.300590 0.138628 +vt 0.437463 0.717486 +vt 0.437463 0.729525 +vt 0.437463 0.717486 +vt 0.473076 0.717486 +vt 0.473076 0.717486 +vt 0.606328 0.696434 +vt 0.592588 0.696434 +vt 0.606328 0.696434 +vt 0.535699 0.708464 +vt 0.504490 0.714856 +vt 0.535699 0.708464 +vt 0.564112 0.717495 +vt 0.594299 0.705466 +vt 0.564112 0.717495 +vt 0.521896 0.729525 +vt 0.521896 0.729525 +vt 0.437463 0.729525 +vt 0.605389 0.697140 +vt 0.602655 0.699193 +vt 0.580175 0.697602 +vt 0.585684 0.696733 +vt 0.580175 0.697602 +vt 0.513693 0.716961 +vt 0.546293 0.710284 +vt 0.585684 0.696733 +vt 0.592588 0.696434 +vt 0.490183 0.716814 +vt 0.504490 0.714856 +vt 0.490183 0.716814 +vt 0.590193 0.699562 +vt 0.587283 0.697386 +vt 0.591937 0.699287 +vt 0.582737 0.698103 +vt 0.590193 0.699562 +vt 0.587283 0.697386 +vt 0.582737 0.698103 +vt 0.592981 0.697140 +vt 0.594123 0.699193 +vt 0.591937 0.699287 +vt 0.592981 0.697140 +vt 0.538409 0.708929 +vt 0.605389 0.697140 +vt 0.602655 0.699193 +vt 0.594123 0.699193 +vt 0.546293 0.710284 +vt 0.538409 0.708929 +vt 0.490183 0.716814 +vt 0.506844 0.715395 +vt 0.490183 0.716814 +vt 0.513693 0.716961 +vt 0.506844 0.715395 +vt 0.594299 0.705466 +vt 0.559609 0.765930 +vt 0.494705 0.766175 +vt 0.559609 0.765930 +vt 0.462977 0.719170 +vt 0.472742 0.739125 +vt 0.458190 0.721973 +vt 0.468953 0.718129 +vt 0.477793 0.736194 +vt 0.477793 0.736194 +vt 0.465109 0.689302 +vt 0.468953 0.718129 +vt 0.470874 0.666624 +vt 0.465109 0.689302 +vt 0.481252 0.650452 +vt 0.470874 0.666624 +vt 0.466646 0.662781 +vt 0.466646 0.662781 +vt 0.481252 0.650452 +vt 0.455884 0.688533 +vt 0.458190 0.721973 +vt 0.462977 0.719170 +vt 0.455884 0.688533 +vt 0.466646 0.662781 +vt 0.468953 0.744266 +vt 0.494705 0.766175 +vt 0.468953 0.744266 +vt 0.514692 0.755797 +vt 0.514692 0.755797 +vt 0.514090 0.756913 +vt 0.587110 0.765826 +vt 0.596562 0.765790 +vt 0.512336 0.760159 +vt 0.476501 0.736944 +vt 0.467424 0.718395 +vt 0.463538 0.689249 +vt 0.458967 0.689095 +vt 0.469385 0.666251 +vt 0.466646 0.662781 +vt 0.477517 0.653605 +vt 0.587110 0.765826 +vt 0.596562 0.765790 +vt 0.514090 0.756913 +vt 0.476501 0.736944 +vt 0.512336 0.760159 +vt 0.467424 0.718395 +vt 0.472742 0.739125 +vt 0.463538 0.689249 +vt 0.469385 0.666251 +vt 0.458967 0.689095 +vt 0.477517 0.653605 +vt 0.771627 0.571391 +vt 0.747191 0.560270 +vt 0.747191 0.571391 +vt 0.771627 0.560270 +vt 0.747191 0.533421 +vt 0.771627 0.533421 +vt 0.747191 0.506573 +vt 0.771627 0.506573 +vt 0.747191 0.495452 +vt 0.771627 0.506573 +vt 0.747191 0.506573 +vt 0.747191 0.533421 +vt 0.771627 0.533421 +vt 0.771627 0.495452 +vt 0.747191 0.560270 +vt 0.771627 0.560270 +vt 0.697530 0.701590 +vt 0.568704 0.712834 +vt 0.552946 0.701590 +vt 0.697530 0.692045 +vt 0.543187 0.692045 +vt 0.697530 0.682139 +vt 0.697530 0.640529 +vt 0.539833 0.682139 +vt 0.539833 0.640529 +vt 0.568704 0.712699 +vt 0.697530 0.701471 +vt 0.552946 0.701476 +vt 0.697530 0.691975 +vt 0.697530 0.682121 +vt 0.539833 0.640529 +vt 0.697530 0.640529 +vt 0.697530 0.712834 +vt 0.543187 0.691982 +vt 0.697530 0.712699 +vn -0.3384 0.0000 -0.9410 +vn -0.9410 0.0000 0.3383 +vn 0.3384 0.0000 0.9410 +vn 0.9410 0.0000 -0.3384 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn -0.9410 0.0000 0.3384 +vn -0.4600 0.8724 0.1654 +vn -0.4600 -0.8724 0.1654 +vn -0.9953 0.0000 0.0966 +vn 0.3383 0.0000 0.9410 +vn -0.3383 0.0000 -0.9410 +vn 0.9410 0.0000 -0.3383 +vn -0.3346 0.0000 -0.9424 +vn 0.3281 0.0000 0.9447 +vn -0.6654 0.7071 0.2393 +vn -0.6654 -0.7071 0.2393 +vn -0.6654 -0.7071 0.2392 +vn 0.4189 0.0000 -0.9080 +vn 0.4186 0.0000 -0.9082 +vn 0.4188 0.0000 -0.9081 +vn -0.9412 0.0006 0.3377 +vn 0.9412 0.0000 -0.3378 +vn 0.6654 0.7071 -0.2393 +vn 0.6654 -0.7071 -0.2393 +vn -0.5173 -0.0000 0.8558 +vn -0.7299 0.5490 -0.4073 +vn -0.9438 -0.0000 -0.3304 +vn -0.3033 0.5490 0.7788 +vn -0.2133 0.7764 -0.5931 +vn 0.2133 0.7764 0.5931 +vn 0.3033 0.5490 -0.7788 +vn 0.7299 0.5490 0.4073 +vn 0.5173 0.0000 -0.8558 +vn 0.9438 -0.0000 0.3304 +vn 0.3034 -0.5490 -0.7788 +vn 0.7299 -0.5490 0.4073 +vn -0.2133 -0.7764 -0.5931 +vn 0.2133 -0.7764 0.5931 +vn -0.7299 -0.5490 -0.4073 +vn -0.3033 -0.5490 0.7788 +vn -0.4262 0.0000 0.9046 +vn 0.9047 0.0000 0.4261 +vn 0.9046 0.0000 0.4262 +vn 0.4261 0.0000 -0.9047 +vn -0.9047 0.0000 -0.4262 +vn -0.9047 0.0000 -0.4261 +vn 0.7105 0.0000 0.7037 +vn 0.3226 0.0000 0.9465 +vn -0.8616 0.0574 -0.5043 +vn -0.7956 -0.0572 -0.6031 +vn -0.8616 -0.0574 -0.5043 +vn -0.8992 0.0574 -0.4337 +vn -0.8992 -0.0574 -0.4337 +vn -0.3878 -0.0574 -0.9199 +vn -0.3244 0.0577 -0.9441 +vn -0.3245 -0.0577 -0.9441 +vn 0.8165 0.0579 0.5745 +vn 0.8741 -0.0579 0.4824 +vn 0.8165 -0.0579 0.5745 +vn -0.2207 0.0934 -0.9709 +vn -0.4812 0.0163 -0.8765 +vn -0.4133 0.1627 -0.8959 +vn -0.9237 -0.0579 -0.3786 +vn -0.9424 0.0573 -0.3295 +vn -0.9424 -0.0573 -0.3295 +vn -0.7377 0.0574 -0.6727 +vn -0.6674 -0.0575 -0.7425 +vn -0.7377 -0.0574 -0.6727 +vn -0.5270 0.0575 -0.8479 +vn -0.5270 -0.0575 -0.8479 +vn -0.8115 0.0647 -0.5808 +vn -0.8118 -0.0650 -0.5803 +vn -0.6674 0.0575 -0.7425 +vn -0.9408 -0.0217 0.3383 +vn -0.9399 -0.0487 0.3380 +vn -0.9371 -0.0905 0.3370 +vn -0.8184 -0.2983 -0.4911 +vn -0.9810 -0.0701 -0.1808 +vn -0.8723 -0.0815 -0.4821 +vn 0.7593 0.0578 0.6482 +vn 0.7593 -0.0578 0.6482 +vn -0.6306 -0.0531 -0.7743 +vn -0.9966 -0.0574 -0.0584 +vn -0.9909 0.0574 -0.1218 +vn -0.9909 -0.0574 -0.1218 +vn -0.9823 0.0693 -0.1740 +vn -0.0837 -0.3900 -0.9170 +vn -0.1348 -0.2335 -0.9630 +vn -0.0100 -0.4280 -0.9037 +vn 0.9693 0.0000 -0.2460 +vn 0.9341 -0.0442 -0.3543 +vn 0.9971 0.0000 -0.0758 +vn 0.9153 0.0579 0.3986 +vn 0.9153 -0.0579 0.3986 +vn 0.9534 0.0582 0.2961 +vn 0.9901 -0.0587 0.1279 +vn 0.9534 -0.0582 0.2961 +vn 0.9901 0.0587 0.1279 +vn 0.9987 0.0490 0.0163 +vn 0.9533 0.0215 -0.3012 +vn 0.9084 0.0518 -0.4150 +vn 1.0000 0.0000 0.0000 +vn -0.2791 -0.9601 -0.0164 +vn -0.2835 -0.9575 -0.0538 +vn -0.9983 0.0574 -0.0035 +vn -0.9982 -0.0568 0.0197 +vn -0.9982 0.0568 0.0197 +vn -0.9983 -0.0574 -0.0035 +vn -0.9966 0.0574 -0.0584 +vn -0.5909 -0.6494 -0.4787 +vn -0.2236 -0.9093 -0.3508 +vn -0.4212 -0.0227 -0.9067 +vn -0.3875 -0.0042 -0.9219 +vn 0.9990 0.0389 -0.0213 +vn 0.9342 0.0443 -0.3540 +vn 0.9989 0.0479 -0.0000 +vn 0.2393 -0.5035 -0.8302 +vn -0.0768 -0.6880 -0.7217 +vn 0.3047 -0.8339 -0.4602 +vn -0.1386 0.9537 -0.2668 +vn 0.3047 0.8339 -0.4602 +vn 0.2874 0.9515 -0.1097 +vn -0.6298 0.0522 -0.7750 +vn -0.2835 0.9575 -0.0538 +vn -0.5892 0.6508 -0.4789 +vn -0.7512 0.6471 -0.1306 +vn -0.2869 -0.0129 -0.9579 +vn -0.4987 -0.0341 -0.8661 +vn -0.1299 0.2325 -0.9639 +vn -0.2681 0.3995 -0.8766 +vn -0.4245 0.0200 -0.9052 +vn -0.2678 0.0138 -0.9634 +vn 0.9990 -0.0389 -0.0213 +vn 0.9989 -0.0479 -0.0000 +vn 0.9987 -0.0490 0.0163 +vn -0.0766 0.6888 -0.7209 +vn 0.2394 0.5035 -0.8302 +vn -0.1393 -0.9536 -0.2670 +vn 0.2874 -0.9515 -0.1098 +vn -0.1603 -0.9841 -0.0763 +vn -0.6585 -0.7159 -0.2320 +vn -0.6220 -0.7228 -0.3009 +vn -0.9124 -0.2562 -0.3192 +vn -0.8704 -0.2573 -0.4198 +vn -0.1603 0.9841 -0.0763 +vn -0.6585 0.7159 -0.2320 +vn -0.1758 0.9826 -0.0603 +vn -0.6221 0.7228 -0.3009 +vn -0.9124 0.2562 -0.3192 +vn -0.8704 0.2573 -0.4198 +vn -0.1515 -0.9845 -0.0878 +vn -0.5946 -0.7244 -0.3488 +vn -0.8340 -0.2573 -0.4881 +vn -0.1515 0.9846 -0.0878 +vn -0.5946 0.7244 -0.3488 +vn -0.1425 -0.9851 -0.0967 +vn -0.5595 -0.7168 -0.4161 +vn -0.7704 -0.2560 -0.5839 +vn -0.1425 0.9851 -0.0967 +vn -0.7704 0.2560 -0.5839 +vn -0.8340 0.2573 -0.4881 +vn -0.7956 0.0572 -0.6031 +vn -0.1921 -0.9578 -0.2137 +vn -0.5603 -0.6516 -0.5114 +vn -0.5106 -0.6454 -0.5681 +vn -0.7138 -0.2578 -0.6512 +vn -0.6461 -0.2569 -0.7187 +vn -0.1922 0.9578 -0.2137 +vn -0.5603 0.6516 -0.5114 +vn -0.2048 0.9611 -0.1852 +vn -0.5106 0.6454 -0.5681 +vn -0.7138 0.2578 -0.6512 +vn -0.6461 0.2569 -0.7187 +vn -0.4032 -0.6454 -0.6488 +vn -0.1515 -0.9579 -0.2440 +vn -0.5102 -0.2569 -0.8208 +vn -0.4032 0.6454 -0.6488 +vn -0.3135 -0.6477 -0.6944 +vn -0.1184 -0.9600 -0.2537 +vn -0.3832 -0.2564 -0.8874 +vn -0.1515 0.9578 -0.2441 +vn -0.3135 0.6477 -0.6944 +vn -0.3832 0.2564 -0.8874 +vn -0.5102 0.2569 -0.8208 +vn -0.3878 0.0574 -0.9199 +vn -0.2818 -0.6675 -0.6892 +vn -0.1087 -0.9628 -0.2476 +vn -0.3326 -0.2612 -0.9062 +vn -0.1184 0.9600 -0.2537 +vn -0.2818 0.6675 -0.6893 +vn -0.3326 0.2612 -0.9062 +vn -0.2048 -0.9611 -0.1852 +vn -0.5595 0.7168 -0.4161 +vn -0.6806 -0.6854 -0.2588 +vn -0.2823 -0.9566 -0.0718 +vn -0.7858 -0.2872 -0.5478 +vn -0.8929 -0.2613 -0.3666 +vn -0.6804 0.6854 -0.2593 +vn -0.4723 0.6136 -0.6328 +vn -0.7846 0.2865 -0.5499 +vn -0.8929 0.2613 -0.3666 +vn -0.1758 -0.9826 -0.0603 +vn -0.2823 0.9566 -0.0718 +vn -0.9237 0.0579 -0.3786 +vn 0.2032 -0.9637 0.1735 +vn 0.6149 -0.6594 0.4325 +vn 0.2163 -0.9644 0.1521 +vn 0.5730 -0.6576 0.4891 +vn 0.7896 -0.2606 0.5554 +vn 0.7344 -0.2600 0.6269 +vn 0.2032 0.9637 0.1735 +vn 0.6149 0.6594 0.4325 +vn 0.5730 0.6576 0.4891 +vn 0.7896 0.2606 0.5554 +vn 0.7344 0.2600 0.6269 +vn 0.6580 -0.6597 0.3631 +vn 0.2313 -0.9645 0.1277 +vn 0.8453 -0.2609 0.4663 +vn 0.2163 0.9644 0.1521 +vn 0.6580 0.6597 0.3631 +vn 0.8453 0.2609 0.4663 +vn 0.8741 0.0579 0.4824 +vn 0.2444 -0.9638 0.1064 +vn 0.6902 -0.6584 0.3002 +vn 0.8853 -0.2606 0.3851 +vn 0.2444 0.9638 0.1064 +vn 0.2313 0.9645 0.1277 +vn 0.6902 0.6584 0.3002 +vn -0.9410 -0.0044 0.3383 +vn -0.9409 -0.0175 0.3383 +vn 0.5313 0.6906 0.4908 +vn 0.0750 0.9948 0.0693 +vn 0.7076 0.2686 0.6536 +vn 0.7333 0.0586 0.6774 +vn 0.2490 -0.9654 0.0773 +vn 0.7380 -0.6680 0.0952 +vn 0.2517 -0.9672 0.0339 +vn 0.7154 -0.6625 0.2219 +vn 0.9565 -0.2646 0.1228 +vn 0.9217 -0.2621 0.2858 +vn 0.2490 0.9654 0.0773 +vn 0.7380 0.6680 0.0951 +vn 0.7154 0.6625 0.2219 +vn 0.9565 0.2646 0.1228 +vn 0.9217 0.2621 0.2858 +vn 0.5378 0.3495 -0.7672 +vn 0.6304 0.4005 -0.6649 +vn 0.8199 0.1705 -0.5465 +vn 0.9349 0.1920 -0.2984 +vn 0.8853 0.2606 0.3851 +vn -0.5808 -0.2303 -0.7808 +vn -0.4731 -0.6115 -0.6342 +vn -0.4315 -0.1607 -0.8877 +vn -0.2357 -0.0945 -0.9672 +vn -0.0850 0.3912 -0.9164 +vn -0.8693 0.0768 -0.4884 +vn -0.7597 -0.6503 -0.0027 +vn -0.7590 -0.6496 -0.0445 +vn -0.9663 -0.2575 -0.0034 +vn -0.9647 -0.2574 -0.0565 +vn -0.2791 0.9601 -0.0164 +vn -0.7597 0.6503 -0.0027 +vn -0.2782 0.9605 -0.0010 +vn -0.7590 0.6496 -0.0445 +vn -0.9663 0.2575 -0.0034 +vn -0.9647 0.2574 -0.0565 +vn -0.7512 -0.6470 -0.1307 +vn -0.9591 -0.2574 -0.1179 +vn -0.9456 -0.2735 -0.1761 +vn -0.9458 0.2735 -0.1752 +vn -0.9591 0.2574 -0.1179 +vn -0.9679 0.2504 0.0191 +vn -0.7837 0.6210 0.0154 +vn -0.3249 0.9457 0.0064 +vn -0.3249 -0.9457 0.0064 +vn -0.2782 -0.9605 -0.0010 +vn -0.7837 -0.6210 0.0154 +vn -0.9679 -0.2504 0.0191 +vn 0.8521 -0.0818 -0.5170 +vn 0.5378 -0.3495 -0.7672 +vn 0.9084 -0.0518 -0.4150 +vn 0.8199 -0.1705 -0.5465 +vn 0.9533 -0.0215 -0.3012 +vn 0.8521 0.0818 -0.5170 +vn 0.2446 0.3919 -0.8869 +vn 0.2446 -0.3919 -0.8869 +vn 0.6304 -0.4005 -0.6649 +vn 0.9349 -0.1920 -0.2984 +vn -0.5783 0.2352 -0.7811 +vn 0.7779 -0.5611 -0.2830 +vn 0.9715 -0.2204 -0.0876 +vn 0.7726 -0.6321 -0.0586 +vn 0.9696 -0.2445 -0.0070 +vn 0.7779 0.5611 -0.2830 +vn 0.7726 0.6322 -0.0586 +vn 0.9715 0.2204 -0.0876 +vn 0.9696 0.2445 -0.0070 +vn -0.2498 -0.3605 -0.8987 +vn -0.3577 -0.1356 -0.9239 +vn -0.3404 -0.2505 -0.9063 +vn -0.0100 0.4280 -0.9037 +vn -0.3366 0.2593 -0.9052 +vn -0.8149 0.3018 -0.4948 +vn -0.2508 0.3617 -0.8979 +vn -0.3608 0.1384 -0.9223 +vn 0.2517 0.9672 0.0339 +vn -0.9410 0.0044 0.3383 +vn -0.9410 -0.0040 0.3383 +vn -0.9372 0.0906 0.3370 +vn -0.9347 0.1160 0.3360 +vn -0.9399 0.0487 0.3380 +vn 0.7333 -0.0586 0.6774 +vn 0.7076 -0.2686 0.6536 +vn 0.5313 -0.6906 0.4908 +vn 0.7334 -0.0567 0.6775 +vn 0.7333 0.0588 0.6774 +vn 0.7334 0.0567 0.6775 +vn 0.2560 -0.9373 0.2364 +vn 0.5268 -0.6970 0.4866 +vn 0.5820 -0.6101 0.5376 +vn 0.7072 -0.2705 0.6532 +vn 0.7115 -0.2484 0.6573 +vn 0.7333 -0.0588 0.6774 +vn 0.7115 0.2484 0.6573 +vn 0.7072 0.2705 0.6532 +vn 0.5820 0.6101 0.5376 +vn 0.5268 0.6970 0.4866 +vn 0.2560 0.9373 0.2365 +vn 0.1437 0.9807 0.1328 +vn -0.9347 -0.1160 0.3361 +vn -0.9409 0.0175 0.3383 +vn -0.9410 0.0040 0.3383 +vn 0.9422 0.0006 -0.3351 +vn 0.9434 0.0000 -0.3316 +vn 0.9422 0.0019 -0.3351 +vn -0.9408 0.0217 0.3383 +vn -0.2235 0.9101 -0.3490 +vn -0.2735 -0.3980 -0.8757 +vn 0.8323 -0.0000 -0.5544 +vn 0.8323 -0.0000 -0.5543 +vn 0.2524 0.0000 0.9676 +vn 0.6118 0.0000 0.7910 +vn -0.9042 0.0000 -0.4272 +vn -0.9993 0.0000 -0.0383 +vn -0.9041 0.0000 -0.4272 +vn 0.9041 0.0000 0.4273 +vn 0.9993 0.0000 0.0383 +vn -0.6119 0.0000 -0.7910 +vn -0.6118 0.0000 -0.7910 +vn 0.9917 0.0000 -0.1289 +vn -0.0875 0.0000 -0.9962 +vn -0.2524 0.0000 -0.9676 +vn 0.0875 0.0000 0.9962 +vn -0.9917 0.0000 0.1289 +vn -0.2525 0.0000 -0.9676 +vn 0.2544 0.0000 0.9671 +vn 0.6125 0.0000 0.7905 +vn -0.9037 0.0000 -0.4281 +vn -0.9992 0.0000 -0.0404 +vn 0.9037 0.0000 0.4281 +vn 0.9992 0.0000 0.0404 +vn -0.6125 0.0000 -0.7905 +vn -0.6125 0.0000 -0.7904 +vn 0.9919 0.0000 -0.1267 +vn -0.0897 0.0000 -0.9960 +vn -0.2545 0.0000 -0.9671 +vn 0.0898 0.0000 0.9960 +vn -0.9919 0.0000 0.1266 +vn -0.9919 0.0000 0.1267 +vn 0.2560 0.0000 0.9667 +vn 0.6131 0.0000 0.7900 +vn -0.9034 0.0000 -0.4287 +vn -0.9991 0.0000 -0.0421 +vn -0.9034 0.0000 -0.4288 +vn 0.6132 0.0000 0.7900 +vn 0.9034 0.0000 0.4287 +vn 0.9991 0.0000 0.0420 +vn -0.6131 0.0000 -0.7900 +vn 0.9922 0.0000 -0.1249 +vn -0.0917 0.0000 -0.9958 +vn -0.2561 0.0000 -0.9666 +vn 0.0915 0.0000 0.9958 +vn -0.9922 0.0000 0.1248 +vn -0.9991 0.0000 -0.0420 +vn -0.2560 0.0000 -0.9667 +vn 0.2559 0.0000 0.9667 +vn -0.6132 0.0000 -0.7899 +vn -0.0915 0.0000 -0.9958 +vn -0.2561 0.0000 -0.9667 +vn 0.2525 0.0000 0.9676 +vn 0.2545 0.0000 0.9671 +vn -0.9038 0.0000 -0.4281 +vn -0.9992 0.0000 -0.0403 +vn -0.6126 0.0000 -0.7904 +vn -0.2544 0.0000 -0.9671 +vn -0.1086 0.9628 -0.2476 +vn 0.0750 -0.9948 0.0693 +vn 0.1437 -0.9807 0.1328 +vn 0.9434 0.0000 -0.3315 +vn 0.9420 0.0006 -0.3355 +vn 0.9420 -0.0006 -0.3355 +vn 0.9422 -0.0006 -0.3351 +vn 0.9422 -0.0019 -0.3351 +vn 0.8322 0.0000 -0.5544 +vn 0.0000 1.0000 -0.0001 +vn 0.0000 1.0000 0.0001 +vn 0.0916 0.0000 0.9958 +vn 0.0000 -1.0000 0.0001 +vn 0.0000 -1.0000 -0.0001 +vn -0.0470 -0.9988 0.0169 +vn -0.9295 0.1873 0.3178 +vn -0.9505 -0.1821 0.2519 +vn -0.9295 -0.1873 0.3177 +vn -0.0470 0.9988 0.0169 +vn -0.5658 0.0000 -0.8246 +vn -0.9505 0.1821 0.2519 +vn -0.9987 -0.0314 0.0402 +vn -0.9050 0.0000 -0.4254 +vn -0.9987 0.0314 0.0402 +vn -0.9244 0.1872 0.3324 +vn -0.0485 -0.9986 0.0196 +vn -0.1988 -0.9774 0.0717 +vn -0.2132 -0.9736 0.0821 +vn -0.4406 -0.8843 0.1543 +vn -0.4573 -0.8767 0.1490 +vn -0.7525 -0.6055 0.2590 +vn -0.7626 -0.6093 0.2174 +vn -0.0485 0.9986 0.0196 +vn -0.1988 0.9774 0.0717 +vn -0.0462 0.9988 0.0175 +vn -0.2132 0.9736 0.0821 +vn -0.4406 0.8843 0.1543 +vn -0.4573 0.8767 0.1490 +vn -0.7525 0.6055 0.2591 +vn -0.7626 0.6093 0.2174 +vn -0.0457 -0.9987 0.0211 +vn -0.2812 -0.9511 0.1278 +vn -0.8912 -0.4449 0.0889 +vn -0.9710 -0.2201 0.0929 +vn -0.0457 0.9987 0.0211 +vn -0.8912 0.4449 0.0889 +vn -0.9710 0.2201 0.0929 +vn -0.7485 0.6061 0.2691 +vn -0.4385 0.8848 0.1577 +vn -0.1980 0.9776 0.0712 +vn -0.1980 -0.9776 0.0712 +vn -0.2112 -0.9745 0.0759 +vn -0.0937 -0.9950 0.0337 +vn -0.0462 -0.9988 0.0175 +vn -0.0469 -0.9988 0.0169 +vn -0.2997 -0.9479 0.1077 +vn -0.2996 -0.9480 0.1078 +vn -0.4385 -0.8848 0.1577 +vn -0.7485 -0.6061 0.2691 +vn -0.9244 -0.1872 0.3324 +vn 0.3402 -0.0000 0.9403 +vn 0.9438 0.0000 -0.3306 +vn 0.9438 0.0000 -0.3305 +vn 0.9414 0.0000 -0.3372 +vn -0.3414 0.0000 -0.9399 +vn -0.9056 -0.4025 -0.1339 +vn -0.7599 0.0000 -0.6501 +vn -0.6618 -0.4662 -0.5871 +vn -0.6129 -0.4025 0.6799 +vn -0.1719 0.0000 0.9851 +vn -0.6953 0.0000 0.7187 +vn -0.8625 -0.3040 0.4047 +vn -0.9667 0.0000 0.2559 +vn -0.9227 -0.3039 0.2372 +vn -0.9083 0.0000 0.4183 +vn -0.0143 -0.9995 -0.0293 +vn -0.0076 -0.9995 -0.0318 +vn 0.0076 -0.9995 0.0318 +vn -0.9938 0.0000 -0.1114 +vn 0.7238 0.0000 0.6900 +vn 0.4274 0.0000 0.9041 +vn 0.4332 -0.0000 0.9013 +vn 0.2399 0.0000 0.9708 +vn 0.6618 -0.4662 0.5871 +vn 0.9907 0.0000 0.1360 +vn -0.4332 0.0000 -0.9013 +vn -0.4333 0.0000 -0.9013 +vn 0.9056 -0.4025 0.1339 +vn 0.9671 0.0000 -0.2544 +vn 0.1364 -0.4662 -0.8741 +vn 0.6773 0.0000 -0.7357 +vn 0.6129 -0.4025 -0.6799 +vn 0.9227 -0.3040 -0.2372 +vn 0.9076 0.0000 -0.4197 +vn -0.1364 -0.4662 0.8741 +vn -0.2462 -0.0000 -0.9692 +vn -0.1389 -0.0002 -0.9903 +vn 0.1186 -0.0000 -0.9929 +vn -0.5316 -0.8348 0.1433 +vn -0.5011 -0.8348 0.2281 +vn -0.1107 -0.9922 0.0567 +vn -0.3778 -0.8733 0.3075 +vn -0.2792 -0.9392 -0.1999 +vn -0.1223 -0.9601 -0.2514 +vn -0.1977 -0.8874 -0.4164 +vn -0.4871 -0.8733 0.0035 +vn -0.1215 -0.9922 0.0268 +vn -0.1127 -0.8875 -0.4469 +vn 0.1107 -0.9922 -0.0567 +vn 0.0879 -0.9392 -0.3319 +vn 0.3778 -0.8733 -0.3075 +vn 0.1215 -0.9922 -0.0268 +vn 0.4871 -0.8733 -0.0035 +vn 0.2792 -0.9392 0.1999 +vn 0.0658 -0.9601 0.2717 +vn 0.1127 -0.8875 0.4469 +vn -0.0879 -0.9392 0.3319 +vn 0.0143 -0.9995 0.0294 +vn 0.1977 -0.8874 0.4164 +vn 0.5011 -0.8348 -0.2281 +vn 0.8625 -0.3040 -0.4046 +vn 0.5316 -0.8348 -0.1433 +vn 0.1223 -0.9601 0.2514 +vn -0.0658 -0.9601 -0.2717 +vn -0.9900 0.0000 -0.1411 +vn -0.2812 0.9511 0.1278 +vn -0.2998 -0.9479 0.1078 +vn 0.3420 0.0000 0.9397 +vn 0.5235 0.0000 0.8520 +vn -0.2399 -0.0000 -0.9708 +vn -0.9400 -0.0001 0.3411 +vn -0.9405 -0.0176 0.3394 +vn -0.9410 -0.0078 0.3384 +vn 0.1049 0.9945 -0.0071 +vn 0.0385 0.9935 0.1070 +vn 0.0090 0.9996 0.0251 +vn 0.9280 -0.1655 -0.3337 +vn 0.9389 0.1639 -0.3027 +vn 0.9280 0.1655 -0.3337 +vn 0.0836 -0.9690 0.2326 +vn 0.1342 -0.9874 0.0833 +vn 0.0385 -0.9935 0.1070 +vn 0.0000 -1.0000 -0.0003 +vn 0.1049 -0.9945 -0.0071 +vn 0.0090 -0.9996 0.0251 +vn 0.0836 0.9690 0.2326 +vn 0.1796 0.9583 0.2224 +vn 0.1883 0.9564 0.2233 +vn 0.0963 -0.9947 -0.0347 +vn -0.4694 -0.0124 -0.8829 +vn -0.4694 0.0124 -0.8829 +vn -0.3451 -0.0959 -0.9337 +vn 0.1796 -0.9583 0.2224 +vn 0.1432 -0.9860 0.0855 +vn 0.0385 -0.9935 0.1069 +vn 0.9674 -0.1589 -0.1971 +vn 0.9389 -0.1639 -0.3027 +vn 0.9885 0.1488 -0.0278 +vn 0.9872 -0.1576 -0.0249 +vn 0.9872 0.1576 -0.0249 +vn 0.1342 0.9875 0.0833 +vn 0.9885 -0.1487 -0.0278 +vn 0.1433 0.9860 0.0854 +vn 0.9391 -0.1682 -0.2998 +vn 0.9674 0.1676 -0.1900 +vn 0.9674 -0.1676 -0.1900 +vn 0.1883 -0.9564 0.2233 +vn 0.8117 -0.5718 -0.1189 +vn 0.8389 -0.5386 0.0782 +vn 0.4794 -0.8593 0.1783 +vn 0.4373 -0.8993 0.0023 +vn 0.7774 -0.5813 -0.2403 +vn 0.4045 -0.9080 -0.1090 +vn 0.9674 0.1589 -0.1971 +vn 0.7774 0.5813 -0.2403 +vn 0.4373 0.8993 0.0023 +vn 0.4045 0.9080 -0.1090 +vn 0.8117 0.5718 -0.1189 +vn 0.4794 0.8593 0.1784 +vn 0.8370 0.5419 0.0765 +vn 0.4491 0.8934 0.0107 +vn 0.4881 0.8545 0.1776 +vn 0.9391 0.1682 -0.2998 +vn 0.8122 0.5737 -0.1062 +vn 0.4103 0.9059 -0.1053 +vn 0.1089 0.9940 -0.0066 +vn 0.8122 -0.5737 -0.1062 +vn 0.7784 -0.5825 -0.2340 +vn 0.4103 -0.9059 -0.1053 +vn 0.4491 -0.8934 0.0107 +vn 0.1089 -0.9940 -0.0066 +vn 0.8370 -0.5419 0.0765 +vn 0.4881 -0.8545 0.1776 +vn 0.7649 0.5824 -0.2752 +vn 0.3944 0.9079 -0.1419 +vn 0.0963 0.9947 -0.0347 +vn 0.8389 0.5386 0.0782 +vn 0.3944 -0.9079 -0.1419 +vn -0.9400 0.0001 0.3411 +vn -0.9405 0.0176 0.3394 +vn -0.9388 -0.0034 0.3444 +vn 0.2776 0.1319 0.9516 +vn 0.3188 0.1496 0.9360 +vn 0.2774 0.1318 0.9517 +vn -0.3758 -0.0904 -0.9223 +vn -0.4690 -0.1150 -0.8757 +vn -0.4292 -0.0592 -0.9013 +vn 0.9281 -0.1655 -0.3337 +vn 0.7650 -0.5824 -0.2750 +vn 0.3944 -0.9079 -0.1418 +vn 0.0963 -0.9947 -0.0346 +vn 0.6399 0.0000 0.7685 +vn 0.6347 0.0000 0.7728 +vn 0.0040 0.0000 -1.0000 +vn -0.0028 0.0000 -1.0000 +vn 0.0003 0.0014 -1.0000 +vn 0.9592 0.0007 0.2828 +vn 0.8961 0.0008 0.4439 +vn -0.0027 0.0000 -1.0000 +vn 0.4660 0.0000 -0.8848 +vn 0.5781 0.0000 -0.8160 +vn 0.5780 0.0000 -0.8160 +vn 0.9653 0.0000 0.2611 +vn 0.9227 0.0000 0.3854 +vn 0.9653 0.0000 0.2610 +vn 0.9227 0.0000 0.3855 +vn 0.4659 0.0000 -0.8848 +vn 0.5675 0.0000 -0.8234 +vn 0.4543 0.0000 -0.8909 +vn 0.9176 0.0000 0.3976 +vn 0.9619 0.0000 0.2735 +vn 0.9175 0.0000 0.3976 +vn 0.5674 0.0000 -0.8234 +vn -0.0064 1.0000 0.0023 +vn -0.0060 1.0000 0.0022 +vn 0.4542 0.0000 -0.8909 +vn 0.5247 0.0025 -0.8513 +vn 0.4335 0.0015 -0.9012 +vn 0.4330 0.0042 -0.9014 +vn 0.6062 0.0009 0.7953 +vn 0.8961 0.0008 0.4438 +vn 0.3383 0.0008 0.9410 +vn 0.5972 0.0009 0.8021 +vn 0.1267 0.0186 0.9918 +vn 0.1531 -0.0438 0.9872 +vn 0.1267 -0.0186 0.9918 +vn -0.3451 0.0959 -0.9337 +vn -0.3326 0.1835 -0.9250 +vn -0.3369 0.0923 -0.9370 +vn 0.2023 -0.0835 0.9758 +vn 0.2199 -0.0964 0.9708 +vn 0.0963 0.9947 -0.0346 +vn 0.7784 0.5825 -0.2340 +vn 0.3944 0.9079 -0.1418 +vn 0.9281 0.1655 -0.3337 +vn 0.9281 0.1654 -0.3337 +vn 0.3344 0.1537 0.9298 +vn 0.3344 0.1540 0.9298 +vn 0.3344 0.1538 0.9298 +vn -0.3326 -0.1835 -0.9250 +vn -0.3516 -0.1786 -0.9190 +vn 0.2776 -0.1319 0.9516 +vn 0.2774 -0.1318 0.9517 +vn -0.3758 0.0904 -0.9223 +vn -0.3516 0.1786 -0.9189 +vn 0.7650 0.5824 -0.2750 +vn 0.0963 0.9948 -0.0346 +vn 0.0963 -0.9948 -0.0346 +vn 0.7650 -0.5823 -0.2750 +vn 0.2199 0.0964 0.9707 +vn 0.2023 0.0835 0.9758 +vn 0.3215 -0.1503 0.9349 +vn 0.3344 -0.1538 0.9298 +vn -0.4690 0.1150 -0.8757 +vn -0.4017 0.1574 -0.9021 +vn -0.4017 -0.1574 -0.9021 +vn -0.5419 -0.0520 -0.8388 +vn 0.1531 0.0438 0.9872 +vn 0.3215 0.1503 0.9349 +vn -0.5419 0.0520 -0.8388 +vn -0.4292 0.0592 -0.9013 +vn 0.3188 -0.1496 0.9359 +vn 0.3344 -0.1539 0.9298 +vn -0.9388 0.0034 0.3444 +vn 0.0000 -1.0000 0.0009 +vn 0.0000 -1.0000 -0.0004 +vn 0.0000 -1.0000 -0.0002 +vn 0.0000 -1.0000 0.0017 +vn -0.9410 0.0078 0.3384 +vn -0.3369 -0.0923 -0.9370 +vn 0.3383 -0.0001 0.9410 +vn 0.3383 0.0001 0.9410 +vn 0.7649 -0.5824 -0.2751 +vn 0.0000 1.0000 0.0002 +vn 0.3112 -0.6367 0.7055 +vn 0.6761 -0.3911 0.6244 +vn 0.4445 -0.5517 0.7057 +vn 0.9592 0.0007 0.2829 +vn 0.8659 -0.1189 0.4858 +vn 0.5780 0.0000 -0.8161 +vn 0.0000 1.0000 -0.0009 +vn 0.9619 0.0000 0.2734 +vn -0.0076 1.0000 0.0028 +vn -0.0080 1.0000 0.0028 +vn 0.0219 0.9997 -0.0081 +vn 0.5291 -0.0003 -0.8486 +vn 0.9281 -0.1654 -0.3337 +vn 0.1359 0.0000 -0.9907 +vn 0.7316 0.0000 0.6817 +vn 0.7788 0.0000 0.6272 +vn -0.0177 0.0000 -0.9998 +vn 0.2595 0.0000 -0.9657 +vn 0.4853 0.0000 -0.8743 +vn -0.0207 0.0000 -0.9998 +vn 0.9596 0.0000 0.2813 +vn 0.9992 0.0000 0.0394 +vn 0.9999 0.0000 -0.0110 +vn 0.9718 0.0000 -0.2359 +vn 0.9689 0.0000 0.2474 +vn 0.4466 0.0000 -0.8947 +vn 0.8472 0.0000 -0.5313 +vn -0.4430 -0.0000 -0.8965 +vn -0.2294 -0.0000 -0.9733 +vn 0.2294 0.0000 0.9733 +vn 0.4430 0.0000 0.8965 +vn -0.9243 0.0000 0.3816 +vn -0.9557 0.0000 0.2944 +vn 0.9557 0.0000 -0.2943 +vn 0.9243 0.0000 -0.3816 +vn -0.8190 0.0000 0.5737 +vn -0.5512 0.0000 0.8344 +vn -0.5511 0.0000 0.8344 +vn -0.1312 0.0000 0.9914 +vn 0.9969 0.0000 -0.0792 +vn 0.9563 0.0000 0.2924 +vn 0.7324 0.0000 0.6808 +vn 0.7325 0.0000 0.6808 +vn 0.4429 0.0000 0.8966 +vn 0.1312 0.0000 -0.9914 +vn 0.5512 0.0000 -0.8344 +vn 0.8190 0.0000 -0.5738 +vn 0.8190 0.0000 -0.5737 +vn -0.9969 0.0000 0.0792 +vn -0.9563 0.0000 -0.2924 +vn -0.7325 0.0000 -0.6808 +vn 0.4262 0.0000 -0.9047 +vn 0.4262 0.0000 -0.9046 +vn -0.9989 0.0000 -0.0475 +vn -0.4261 -0.0000 0.9047 +vn -0.0474 0.0000 0.9989 +vn -0.0475 0.0000 0.9989 +vn -0.9046 0.0000 -0.4262 +vn 0.9342 0.0000 -0.3568 +vn 0.9355 -0.1082 -0.3364 +vn 0.9261 0.1228 -0.3567 +vn 0.9355 0.1082 -0.3364 +vn 0.8335 -0.1730 -0.5247 +vn 0.8767 0.1260 -0.4643 +vn 0.8335 0.1730 -0.5248 +vn -0.7816 0.0000 0.6238 +vn -0.6549 0.0000 0.7557 +vn -0.8852 0.0000 0.4653 +vn -0.5494 0.0000 0.8356 +vn -0.5494 0.0000 0.8355 +vn 0.8387 0.1737 -0.5161 +vn 0.8900 -0.1419 -0.4334 +vn 0.8387 -0.1737 -0.5161 +vn 0.1391 -0.9871 -0.0793 +vn 0.1237 -0.9890 -0.0810 +vn 0.8899 0.1419 -0.4334 +vn 0.9261 -0.1228 -0.3567 +vn 0.9078 0.0000 -0.4194 +vn 0.8766 -0.1260 -0.4643 +vn 0.1556 -0.9839 -0.0874 +vn 0.6770 -0.6627 -0.3201 +vn 0.1986 -0.9764 -0.0853 +vn 0.6071 -0.7080 -0.3608 +vn 0.1556 0.9839 -0.0874 +vn 0.6770 0.6628 -0.3201 +vn 0.6071 0.7080 -0.3608 +vn 0.7222 -0.6333 -0.2779 +vn 0.2070 -0.9752 -0.0780 +vn 0.1986 0.9764 -0.0852 +vn 0.7222 0.6334 -0.2779 +vn 0.5815 -0.7238 -0.3715 +vn 0.8387 -0.4534 -0.3016 +vn 0.3249 -0.9385 -0.1168 +vn 0.3249 0.9385 -0.1168 +vn 0.2070 0.9752 -0.0780 +vn 0.8387 0.4535 -0.3016 +vn 0.1237 0.9890 -0.0810 +vn 0.5814 0.7238 -0.3715 +vn 0.6339 -0.7179 -0.2876 +vn 0.7003 -0.6269 -0.3415 +vn 0.6339 0.7179 -0.2877 +vn 0.1391 0.9871 -0.0793 +vn 0.7002 0.6269 -0.3415 +vn -0.5493 -0.0001 0.8356 +vn -0.9397 0.0000 0.3419 +vn -1.0000 0.0000 -0.0054 +vn 0.0674 -0.9934 0.0928 +vn 0.0949 -0.9942 0.0510 +vn 0.5846 -0.2145 0.7825 +vn 0.8827 0.2064 0.4222 +vn 0.8827 -0.2063 0.4222 +vn 0.2755 -0.2195 0.9359 +vn 0.5846 0.2146 0.7824 +vn -0.0667 -0.2112 0.9752 +vn 0.2755 0.2196 0.9359 +vn -0.2218 -0.1183 0.9679 +vn -0.0667 0.2113 0.9751 +vn 0.5442 -0.0000 -0.8390 +vn 0.0533 0.0000 0.9986 +vn 0.5008 0.0000 -0.8655 +vn 0.0675 0.9934 0.0928 +vn -0.1807 0.0000 -0.9835 +vn 0.9997 0.0000 0.0253 +vn -0.5683 0.0000 -0.8228 +vn -0.8431 0.0000 -0.5378 +vn 0.9832 0.1773 -0.0436 +vn 0.9832 -0.1773 -0.0436 +vn 0.3034 -0.9504 -0.0690 +vn 0.6656 -0.7458 -0.0280 +vn 0.9093 -0.3610 -0.2069 +vn 0.9732 -0.0625 -0.2214 +vn 0.1377 -0.9905 -0.0031 +vn 0.5461 -0.7949 0.2644 +vn 0.3687 -0.7858 0.4965 +vn 0.1721 -0.7940 0.5831 +vn 0.0312 -0.9939 0.1057 +vn -0.0329 -0.7710 0.6359 +vn -0.0225 -0.7455 0.6661 +vn -0.1972 -0.4706 0.8600 +vn 0.9093 0.3610 -0.2069 +vn 0.9732 0.0625 -0.2214 +vn 0.6656 0.7457 -0.0280 +vn 0.3035 0.9503 -0.0691 +vn 0.5461 0.7949 0.2644 +vn 0.1378 0.9905 -0.0031 +vn 0.3687 0.7858 0.4965 +vn 0.0950 0.9942 0.0510 +vn 0.1721 0.7940 0.5831 +vn -0.0329 0.7710 0.6360 +vn 0.0312 0.9939 0.1058 +vn -0.1972 0.4706 0.8600 +vn -0.0225 0.7454 0.6662 +vn 0.0000 0.0000 1.0000 +vn -0.2218 0.1183 0.9679 +vn 0.5008 0.0000 -0.8656 +vn 0.9351 0.0000 0.3543 +vn 0.5009 0.0001 -0.8655 +vn -0.3880 -0.9111 0.1395 +vn -0.4378 -0.8852 0.1574 +vn -0.3600 -0.9239 0.1294 +vn -0.2293 -0.9698 0.0825 +vn -0.1850 -0.9805 0.0665 +vn -0.0594 -0.9980 0.0214 +vn -0.0526 -0.9984 0.0189 +vn 0.4378 0.8852 -0.1574 +vn 0.3881 0.9110 -0.1395 +vn 0.3602 0.9238 -0.1295 +vn 0.2293 0.9698 -0.0825 +vn 0.0593 0.9980 -0.0213 +vn 0.1184 0.9921 -0.0425 +vn -0.8984 0.2974 0.3231 +vn -0.9592 0.2825 0.0090 +vn -0.9601 0.2793 -0.0159 +vn 0.3385 0.0003 0.9410 +vn 0.3384 -0.0001 0.9410 +vn -0.9020 0.1822 -0.3913 +vn -0.7829 0.0711 -0.6181 +vn -0.7686 0.0678 -0.6361 +vn 0.3382 -0.0002 0.9411 +vn -0.6211 0.0134 -0.7836 +vn -0.4841 0.0054 -0.8750 +vn -0.4844 0.0060 -0.8748 +vn -0.3383 -0.0000 -0.9411 +vn -0.9053 0.1850 -0.3823 +vn 0.3382 0.0001 0.9411 +vn 0.1848 0.9805 -0.0664 +vn 0.1185 0.9920 -0.0426 +vn -0.6216 0.0115 -0.7832 +vn -0.3382 0.0000 -0.9411 +s off +f 17/1/1 18/2/1 19/3/1 +f 20/4/2 21/5/2 18/2/2 +f 22/6/3 23/7/3 21/5/3 +f 24/8/4 19/3/4 23/7/4 +f 21/5/5 19/3/5 18/2/5 +f 20/4/6 24/8/6 22/6/6 +f 17/1/1 20/4/1 18/2/1 +f 20/4/7 22/6/7 21/5/7 +f 22/6/3 24/8/3 23/7/3 +f 24/8/4 17/1/4 19/3/4 +f 21/5/5 23/7/5 19/3/5 +f 20/4/6 17/1/6 24/8/6 +f 25/9/1 26/10/1 27/11/1 +f 28/12/5 29/13/5 30/14/5 +f 25/9/8 31/15/8 32/16/8 +f 33/17/6 26/10/6 34/18/6 +f 34/18/7 35/19/7 33/17/7 +f 34/18/1 25/9/1 36/20/1 +f 37/21/6 38/22/6 39/23/6 +f 30/14/4 38/22/4 40/24/4 +f 41/25/7 42/26/7 28/12/7 +f 43/27/9 27/11/9 26/10/9 +f 34/18/10 36/20/10 44/28/10 +f 36/20/5 32/16/5 42/26/5 +f 29/13/4 39/23/4 30/14/4 +f 42/26/3 43/27/3 33/17/3 +f 42/26/3 33/17/3 45/29/3 +f 43/27/3 32/16/3 31/15/3 +f 37/21/1 40/24/1 38/22/1 +f 30/14/5 40/24/5 44/28/5 +f 44/28/5 41/25/5 30/14/5 +f 41/25/5 28/12/5 30/14/5 +f 25/9/8 27/11/8 31/15/8 +f 33/17/6 43/27/6 26/10/6 +f 34/18/7 46/30/7 35/19/7 +f 34/18/1 26/10/1 25/9/1 +f 39/23/6 45/29/6 35/19/6 +f 35/19/6 46/30/6 39/23/6 +f 46/30/6 37/21/6 39/23/6 +f 30/14/4 39/23/4 38/22/4 +f 41/25/7 36/20/7 42/26/7 +f 43/27/9 31/15/9 27/11/9 +f 36/20/10 41/25/10 44/28/10 +f 44/28/10 37/21/10 34/18/10 +f 37/21/10 46/30/10 34/18/10 +f 36/20/5 25/9/5 32/16/5 +f 29/13/4 45/29/4 39/23/4 +f 42/26/3 32/16/3 43/27/3 +f 45/29/3 29/13/3 42/26/3 +f 29/13/11 28/12/11 42/26/11 +f 33/17/11 35/19/11 45/29/11 +f 37/21/12 44/28/12 40/24/12 +f 519/31/1 520/32/1 521/33/1 +f 522/34/2 523/35/2 520/32/2 +f 524/36/3 525/37/3 523/35/3 +f 526/38/13 521/33/13 525/37/13 +f 522/34/6 526/38/6 524/36/6 +f 527/39/12 528/40/12 529/41/12 +f 529/41/7 530/42/7 531/43/7 +f 531/43/5 532/44/5 533/45/5 +f 527/39/4 534/46/4 535/47/4 +f 531/43/5 527/39/5 529/41/5 +f 532/44/11 536/48/11 537/49/11 +f 531/43/5 538/50/5 539/51/5 +f 533/45/4 537/49/4 534/46/4 +f 540/52/2 541/53/2 538/50/2 +f 539/51/11 541/53/11 536/48/11 +f 531/43/1 542/54/1 540/52/1 +f 519/31/12 522/34/12 520/32/12 +f 522/34/7 524/36/7 523/35/7 +f 524/36/3 526/38/3 525/37/3 +f 526/38/4 519/31/4 521/33/4 +f 522/34/6 519/31/6 526/38/6 +f 527/39/1 535/47/1 528/40/1 +f 529/41/7 528/40/7 530/42/7 +f 531/43/5 539/51/5 532/44/5 +f 527/39/4 533/45/4 534/46/4 +f 531/43/5 533/45/5 527/39/5 +f 532/44/3 539/51/3 536/48/3 +f 531/43/5 540/52/5 538/50/5 +f 533/45/4 532/44/4 537/49/4 +f 540/52/7 542/54/7 541/53/7 +f 539/51/3 538/50/3 541/53/3 +f 531/43/1 530/42/1 542/54/1 +f 1304/55/1 1305/56/1 1306/57/1 +f 1307/58/14 1308/59/14 1309/60/14 +f 1310/61/3 1311/62/3 1312/63/3 +f 1313/64/4 1306/57/4 1314/65/4 +f 1312/63/5 1314/65/5 1307/58/5 +f 1315/66/6 1313/64/6 1308/59/6 +f 1308/59/6 1316/67/6 1310/61/6 +f 1307/58/5 1306/57/5 1305/56/5 +f 1316/67/4 1314/65/4 1311/62/4 +f 1315/66/7 1307/58/7 1305/56/7 +f 1317/68/7 1318/69/7 1319/70/7 +f 1320/71/7 1321/72/7 1322/73/7 +f 1310/61/15 1312/63/15 1323/74/15 +f 1310/61/6 1317/68/6 1308/59/6 +f 1307/58/5 1322/73/5 1312/63/5 +f 1309/60/16 1318/69/16 1323/74/16 +f 1324/75/17 1323/74/17 1321/72/17 +f 1304/55/12 1315/66/12 1305/56/12 +f 1324/75/12 1320/71/12 1307/58/12 +f 1308/59/12 1317/68/12 1319/70/12 +f 1309/60/1 1324/75/1 1307/58/1 +f 1308/59/1 1319/70/1 1309/60/1 +f 1310/61/3 1316/67/3 1311/62/3 +f 1313/64/4 1304/55/4 1306/57/4 +f 1312/63/5 1311/62/5 1314/65/5 +f 1315/66/6 1304/55/6 1313/64/6 +f 1308/59/6 1313/64/6 1316/67/6 +f 1307/58/5 1314/65/5 1306/57/5 +f 1316/67/13 1313/64/13 1314/65/13 +f 1315/66/7 1308/59/7 1307/58/7 +f 1317/68/7 1325/76/7 1318/69/7 +f 1320/71/7 1324/75/7 1321/72/7 +f 1323/74/11 1318/69/11 1310/61/11 +f 1318/69/11 1325/76/11 1310/61/11 +f 1312/63/11 1322/73/11 1321/72/11 +f 1312/63/3 1321/72/3 1323/74/3 +f 1310/61/6 1325/76/6 1317/68/6 +f 1307/58/5 1320/71/5 1322/73/5 +f 1309/60/16 1319/70/16 1318/69/16 +f 1324/75/18 1309/60/18 1323/74/18 +f 1326/77/19 1327/78/19 1328/79/19 +f 1328/79/7 1329/80/7 1330/81/7 +f 1331/82/3 1332/83/3 1329/80/3 +f 1332/83/4 1333/84/4 1334/85/4 +f 1329/80/5 1335/86/5 1330/81/5 +f 1331/82/6 1336/87/6 1333/84/6 +f 1337/88/4 1326/77/4 1338/89/4 +f 1338/89/1 1339/90/1 1337/88/1 +f 1338/89/6 1340/91/6 1334/85/6 +f 1337/88/5 1341/92/5 1327/78/5 +f 1341/92/20 1336/87/20 1327/78/20 +f 1336/87/20 1328/79/20 1327/78/20 +f 1330/81/20 1335/86/20 1326/77/20 +f 1335/86/20 1340/91/20 1326/77/20 +f 1330/81/21 1326/77/21 1328/79/21 +f 1328/79/7 1331/82/7 1329/80/7 +f 1331/82/3 1333/84/3 1332/83/3 +f 1334/85/13 1340/91/13 1335/86/13 +f 1333/84/4 1336/87/4 1339/90/4 +f 1336/87/13 1341/92/13 1339/90/13 +f 1334/85/4 1335/86/4 1332/83/4 +f 1333/84/4 1339/90/4 1334/85/4 +f 1329/80/5 1332/83/5 1335/86/5 +f 1331/82/6 1328/79/6 1336/87/6 +f 1337/88/4 1327/78/4 1326/77/4 +f 1338/89/1 1334/85/1 1339/90/1 +f 1338/89/6 1326/77/6 1340/91/6 +f 1337/88/5 1339/90/5 1341/92/5 +f 1342/93/1 1343/94/1 1344/95/1 +f 1345/96/22 1346/97/22 1347/98/22 +f 1348/99/11 1349/100/11 1350/101/11 +f 1351/102/4 1352/103/4 1353/104/4 +f 1348/99/5 1344/95/5 1343/94/5 +f 1342/93/6 1354/105/6 1355/106/6 +f 1342/93/1 1345/96/1 1343/94/1 +f 1349/100/7 1348/99/7 1347/98/7 +f 1348/99/7 1343/94/7 1347/98/7 +f 1343/94/7 1345/96/7 1347/98/7 +f 1350/101/3 1352/103/3 1351/102/3 +f 1351/102/11 1348/99/11 1350/101/11 +f 1354/105/23 1342/93/23 1353/104/23 +f 1342/93/4 1344/95/4 1353/104/4 +f 1344/95/4 1351/102/4 1353/104/4 +f 1348/99/5 1351/102/5 1344/95/5 +f 1355/106/6 1346/97/6 1345/96/6 +f 1345/96/6 1342/93/6 1355/106/6 +s 1 +f 1/107/7 2/108/16 3/109/7 +f 4/110/16 5/111/5 2/108/16 +f 6/112/5 7/113/24 5/111/5 +f 8/114/24 9/115/4 7/113/24 +f 10/116/4 11/117/25 9/115/4 +f 12/118/25 13/119/6 11/117/25 +f 14/120/3 10/116/3 6/112/3 +f 14/120/6 15/121/17 13/119/6 +f 16/122/17 3/109/7 15/121/17 +f 13/119/1 15/121/1 7/113/1 +f 1/107/7 4/110/16 2/108/16 +f 4/110/16 6/112/5 5/111/5 +f 6/112/5 8/114/24 7/113/24 +f 8/114/24 10/116/4 9/115/4 +f 10/116/4 12/118/25 11/117/25 +f 12/118/25 14/120/6 13/119/6 +f 6/112/3 4/110/3 1/107/3 +f 1/107/3 16/122/3 14/120/3 +f 14/120/3 12/118/3 10/116/3 +f 10/116/3 8/114/3 6/112/3 +f 6/112/3 1/107/3 14/120/3 +f 14/120/6 16/122/17 15/121/17 +f 16/122/17 1/107/7 3/109/7 +f 15/121/1 3/109/1 7/113/1 +f 3/109/1 2/108/1 7/113/1 +f 2/108/1 5/111/1 7/113/1 +f 7/113/1 9/115/12 11/117/1 +f 11/117/1 13/119/1 7/113/1 +f 47/123/26 48/124/27 49/125/28 +f 50/126/29 51/127/30 48/124/27 +f 52/128/31 53/129/32 51/127/30 +f 54/130/33 55/131/34 53/129/32 +f 56/132/35 57/133/36 55/131/34 +f 58/134/37 59/135/38 57/133/36 +f 60/136/39 56/132/35 52/128/31 +f 60/136/39 61/137/40 59/135/38 +f 61/137/40 47/123/26 49/125/28 +f 57/133/36 59/135/38 61/137/40 +f 47/123/26 50/126/29 48/124/27 +f 50/126/29 52/128/31 51/127/30 +f 52/128/31 54/130/33 53/129/32 +f 54/130/33 56/132/35 55/131/34 +f 56/132/35 58/134/37 57/133/36 +f 58/134/37 60/136/39 59/135/38 +f 52/128/31 50/126/29 47/123/26 +f 47/123/26 62/138/41 52/128/31 +f 62/138/41 60/136/39 52/128/31 +f 60/136/39 58/134/37 56/132/35 +f 56/132/35 54/130/33 52/128/31 +f 60/136/39 62/138/41 61/137/40 +f 61/137/40 62/138/41 47/123/26 +f 61/137/40 49/125/28 48/124/27 +f 48/124/27 51/127/30 61/137/40 +f 51/127/30 53/129/32 61/137/40 +f 53/129/32 55/131/34 61/137/40 +f 55/131/34 57/133/36 61/137/40 +f 63/139/7 64/140/42 65/141/2 +f 66/142/42 67/143/3 64/140/42 +f 68/144/11 69/145/43 67/143/3 +f 70/146/44 71/147/4 69/145/43 +f 72/148/4 73/149/45 71/147/4 +f 74/150/45 75/151/1 73/149/45 +f 68/144/6 63/139/6 76/152/6 +f 76/152/1 77/153/46 75/151/1 +f 78/154/47 65/141/2 77/153/46 +f 75/151/5 77/153/5 69/145/5 +f 63/139/7 66/142/42 64/140/42 +f 66/142/42 68/144/11 67/143/3 +f 68/144/11 70/146/44 69/145/43 +f 70/146/44 72/148/4 71/147/4 +f 72/148/4 74/150/45 73/149/45 +f 74/150/45 76/152/1 75/151/1 +f 68/144/6 66/142/6 63/139/6 +f 63/139/6 78/154/6 76/152/6 +f 76/152/6 74/150/6 72/148/6 +f 72/148/6 70/146/6 76/152/6 +f 70/146/6 68/144/6 76/152/6 +f 76/152/1 78/154/47 77/153/46 +f 78/154/47 63/139/7 65/141/2 +f 77/153/5 65/141/5 69/145/5 +f 65/141/5 64/140/5 69/145/5 +f 64/140/5 67/143/5 69/145/5 +f 69/145/5 71/147/5 73/149/5 +f 73/149/5 75/151/5 69/145/5 +f 79/155/48 80/156/48 81/157/49 +f 82/158/50 83/159/51 84/160/52 +f 85/161/53 84/160/52 86/162/54 +f 87/163/55 88/164/56 89/165/57 +f 90/166/58 91/167/59 92/168/60 +f 93/169/61 94/170/62 95/171/63 +f 96/172/64 97/173/65 98/174/66 +f 99/175/67 100/176/68 101/177/69 +f 83/159/51 99/175/67 101/177/69 +f 102/178/70 87/163/55 103/179/71 +f 104/180/72 96/172/64 105/181/73 +f 106/182/74 103/179/71 100/176/68 +f 107/183/75 108/184/76 109/185/77 +f 110/186/78 111/187/79 112/188/80 +f 113/189/81 92/168/60 114/190/82 +f 115/191/83 104/180/72 105/181/73 +f 116/192/84 117/193/85 118/194/86 +f 118/194/86 119/195/87 111/187/79 +f 120/196/88 121/197/89 122/198/90 +f 123/199/91 124/200/92 125/201/93 +f 91/167/59 126/202/94 127/203/95 +f 128/204/96 129/205/97 130/206/98 +f 127/203/95 128/204/96 130/206/98 +f 131/207/99 132/208/100 125/201/93 +f 133/209/101 134/210/102 135/211/103 +f 136/212/104 137/213/105 79/155/6 +f 135/211/103 79/155/48 138/214/103 +f 97/173/65 86/162/54 98/174/66 +f 139/215/106 140/216/107 81/157/108 +f 141/217/109 142/218/110 116/192/84 +f 137/213/105 143/219/111 144/220/112 +f 115/191/83 145/221/113 146/222/114 +f 147/223/115 148/224/116 125/201/93 +f 132/208/100 149/225/117 125/201/93 +f 150/226/118 151/227/119 152/228/120 +f 153/229/121 154/230/122 155/231/123 +f 156/232/124 115/191/83 146/222/114 +f 157/233/125 158/234/126 159/235/127 +f 160/236/128 161/237/129 146/222/114 +f 162/238/130 95/171/63 163/239/131 +f 145/221/113 160/236/128 146/222/114 +f 164/240/132 156/232/124 146/222/114 +f 165/241/133 164/240/132 146/222/114 +f 124/200/92 166/242/134 125/201/93 +f 166/242/134 167/243/135 125/201/93 +f 167/243/135 168/244/136 125/201/93 +f 169/245/137 170/246/138 154/230/122 +f 149/225/117 147/223/115 125/201/93 +f 152/228/120 171/247/139 172/248/140 +f 173/249/141 174/250/142 175/251/143 +f 175/251/143 176/252/144 177/253/145 +f 177/253/145 98/174/66 86/162/54 +f 178/254/146 179/255/147 180/256/148 +f 181/257/149 182/258/150 179/255/147 +f 183/259/151 97/173/65 182/258/150 +f 184/260/152 175/251/143 185/261/153 +f 185/261/153 177/253/145 186/262/154 +f 177/253/145 84/160/52 186/262/154 +f 187/263/155 181/257/149 178/254/146 +f 188/264/156 183/259/151 181/257/149 +f 183/259/151 82/158/50 85/161/53 +f 189/265/157 185/261/153 190/266/158 +f 185/261/153 191/267/159 190/266/158 +f 186/262/154 83/159/51 191/267/159 +f 192/268/160 188/264/156 187/263/155 +f 188/264/156 193/269/161 194/270/162 +f 194/270/162 195/271/163 82/158/50 +f 196/272/164 197/273/165 198/274/166 +f 198/274/166 199/275/167 200/276/168 +f 200/276/168 101/177/69 100/176/68 +f 201/277/169 202/278/170 203/279/171 +f 204/280/172 205/281/173 202/278/170 +f 206/282/174 99/175/67 205/281/173 +f 196/272/164 207/283/175 208/284/176 +f 207/283/175 200/276/168 209/285/177 +f 200/276/168 103/179/71 209/285/177 +f 201/277/169 210/286/178 204/280/172 +f 210/286/178 206/282/174 204/280/172 +f 206/282/174 102/178/70 106/182/74 +f 208/284/176 211/287/179 212/288/180 +f 207/283/175 213/289/181 211/287/179 +f 209/285/177 87/163/55 213/289/181 +f 214/290/182 215/291/183 210/286/178 +f 210/286/178 216/292/184 217/293/185 +f 217/293/185 218/294/186 102/178/70 +f 212/288/180 219/295/187 220/296/188 +f 211/287/179 221/297/189 219/295/187 +f 213/289/181 89/165/57 221/297/189 +f 222/298/190 223/299/191 215/291/183 +f 215/291/183 224/300/192 216/292/184 +f 216/292/184 88/164/56 218/294/186 +f 225/301/193 190/266/158 197/273/165 +f 190/266/158 199/275/167 197/273/165 +f 191/267/159 101/177/69 199/275/167 +f 203/279/171 226/302/194 192/268/160 +f 226/302/194 205/281/173 193/269/161 +f 193/269/161 99/175/67 195/271/163 +f 171/247/139 227/303/195 228/304/196 +f 227/303/195 229/305/197 230/306/198 +f 230/306/198 105/181/73 96/172/64 +f 153/229/121 231/307/199 232/308/200 +f 231/307/199 233/309/201 232/308/200 +f 234/310/202 104/180/72 233/309/201 +f 235/311/203 227/303/195 174/250/142 +f 174/250/142 230/306/198 176/252/144 +f 176/252/144 96/172/64 98/174/66 +f 180/256/148 231/307/199 236/312/204 +f 179/255/147 234/310/202 231/307/199 +f 182/258/150 237/313/205 234/310/202 +f 238/314/206 239/315/207 240/316/208 +f 241/317/209 242/318/210 239/315/207 +f 243/319/211 92/168/60 242/318/210 +f 244/320/212 245/321/213 246/322/214 +f 246/322/214 247/323/215 248/324/216 +f 248/324/216 90/166/58 113/189/81 +f 240/316/208 249/325/217 250/326/218 +f 239/315/207 251/327/219 249/325/217 +f 242/318/210 91/167/59 251/327/219 +f 252/328/220 253/329/221 245/321/213 +f 245/321/213 254/330/222 247/323/215 +f 247/323/215 255/331/223 90/166/58 +f 256/332/224 249/325/217 257/333/225 +f 257/333/225 251/327/219 258/334/226 +f 251/327/219 127/203/95 258/334/226 +f 259/335/227 253/329/221 260/336/228 +f 261/337/229 254/330/222 253/329/221 +f 254/330/222 126/202/94 255/331/223 +f 262/338/230 263/339/231 107/183/75 +f 260/336/228 180/256/148 259/335/227 +f 244/320/212 109/185/232 264/340/233 +f 246/322/214 107/183/234 109/185/232 +f 248/324/216 262/338/235 107/183/234 +f 265/341/236 266/342/237 267/343/238 +f 268/344/239 269/345/240 266/342/237 +f 270/346/241 129/205/97 269/345/240 +f 271/347/242 272/348/243 273/349/244 +f 273/349/244 274/350/245 275/351/246 +f 275/351/246 131/207/99 128/204/96 +f 170/246/138 276/352/247 277/353/248 +f 277/353/248 278/354/249 279/355/250 +f 279/355/250 148/224/116 147/223/115 +f 256/332/224 268/344/239 265/341/236 +f 257/333/225 270/346/241 268/344/239 +f 258/334/226 130/206/98 270/346/241 +f 259/335/227 273/349/244 261/337/229 +f 261/337/229 275/351/246 280/356/251 +f 280/356/251 128/204/96 126/202/94 +f 105/181/73 281/357/252 115/191/83 +f 281/357/252 229/305/197 282/358/253 +f 283/359/5 284/360/5 80/156/5 +f 94/170/62 165/241/133 146/222/114 +f 121/197/89 285/361/254 286/362/255 +f 287/363/256 162/238/130 163/239/131 +f 112/188/80 119/195/87 288/364/257 +f 136/212/104 289/365/258 290/366/259 +f 290/366/259 291/367/260 292/368/261 +f 292/368/261 141/217/109 116/192/84 +f 293/369/262 294/370/263 295/371/264 +f 296/372/265 297/373/266 294/370/263 +f 298/374/267 139/215/106 297/373/266 +f 136/212/104 299/375/268 137/213/105 +f 299/375/268 292/368/261 300/376/269 +f 292/368/261 118/194/86 300/376/269 +f 293/369/262 159/235/127 296/372/265 +f 159/235/127 298/374/267 296/372/265 +f 298/374/267 117/193/85 142/218/110 +f 299/375/268 300/376/269 301/377/270 +f 301/377/270 118/194/86 111/187/79 +f 159/235/127 302/378/271 303/379/272 +f 302/378/271 117/193/85 303/379/272 +f 139/215/106 304/380/273 297/373/266 +f 297/373/266 305/381/274 294/370/263 +f 294/370/263 306/382/275 295/371/264 +f 307/383/276 289/365/258 308/384/277 +f 309/385/278 291/367/260 289/365/258 +f 310/386/279 141/217/109 291/367/260 +f 311/387/280 312/388/281 313/389/282 +f 313/389/282 314/390/283 315/391/284 +f 315/391/284 124/200/92 123/199/91 +f 283/359/285 276/352/247 284/360/286 +f 134/210/102 278/354/249 276/352/247 +f 133/209/101 148/224/116 278/354/249 +f 150/226/118 312/388/281 316/392/287 +f 317/393/288 314/390/283 312/388/281 +f 318/394/289 124/200/92 314/390/283 +f 104/180/72 319/395/290 233/309/201 +f 233/309/201 319/395/290 232/308/200 +f 152/228/120 317/393/288 150/226/118 +f 320/396/291 318/394/289 317/393/288 +f 321/397/292 166/242/134 318/394/289 +f 172/248/140 320/396/291 152/228/120 +f 322/398/293 321/397/292 320/396/291 +f 323/399/294 167/243/135 321/397/292 +f 155/231/123 324/400/295 325/401/296 +f 325/401/296 326/402/297 327/403/298 +f 327/403/298 149/225/117 132/208/100 +f 154/230/122 277/353/248 324/400/295 +f 324/400/295 279/355/250 326/402/297 +f 326/402/297 147/223/115 149/225/117 +f 151/227/119 282/358/253 171/247/139 +f 328/404/299 281/357/252 282/358/253 +f 281/357/252 145/221/113 115/191/83 +f 122/198/90 328/404/299 151/227/119 +f 121/197/89 329/405/300 328/404/299 +f 329/405/300 160/236/128 145/221/113 +f 330/406/301 120/196/88 122/198/90 +f 143/219/111 301/377/270 110/186/78 +f 94/170/62 146/222/114 161/237/129 +f 331/407/302 332/408/303 284/360/286 +f 158/234/126 302/378/271 159/235/127 +f 333/409/304 119/195/87 302/378/271 +f 331/407/302 334/410/305 162/238/130 +f 162/238/130 335/411/306 93/169/61 +f 335/411/306 165/241/133 93/169/61 +f 169/245/137 232/308/200 334/410/305 +f 334/410/305 319/395/290 335/411/306 +f 335/411/306 156/232/124 164/240/132 +f 129/205/97 323/399/294 269/345/240 +f 269/345/240 322/398/293 266/342/237 +f 266/342/237 172/248/140 267/343/238 +f 155/231/123 272/348/243 336/412/307 +f 325/401/296 274/350/245 272/348/243 +f 327/403/298 131/207/99 274/350/245 +f 337/413/308 338/414/309 262/338/230 +f 339/415/310 340/416/311 341/417/312 +f 243/319/211 337/413/313 114/190/82 +f 241/317/209 342/418/314 243/319/211 +f 238/314/206 339/415/315 241/317/209 +f 337/413/313 113/189/81 114/190/82 +f 343/419/316 344/420/317 338/414/318 +f 340/416/319 345/421/320 341/417/321 +f 341/417/321 346/422/322 347/423/323 +f 347/423/323 348/424/324 343/419/316 +f 263/339/325 344/420/317 349/425/326 +f 108/184/327 349/425/326 350/426/328 +f 351/427/329 350/426/328 352/428/330 +f 109/185/77 351/427/331 264/340/331 +f 337/413/308 347/423/332 343/419/333 +f 348/424/334 346/422/335 353/429/336 +f 250/326/218 256/332/224 235/311/203 +f 342/418/337 341/417/312 347/423/332 +f 144/220/112 120/196/88 330/406/301 +f 287/363/256 354/430/338 332/408/303 +f 163/239/131 354/430/338 287/363/256 +f 95/171/63 158/234/126 163/239/131 +f 95/171/63 288/364/257 333/409/304 +f 355/431/339 144/220/112 143/219/111 +f 285/361/254 143/219/111 110/186/78 +f 285/361/254 112/188/80 161/237/129 +f 161/237/129 288/364/257 94/170/62 +f 286/362/255 161/237/129 160/236/128 +f 88/164/340 224/300/341 356/432/340 +f 357/433/5 358/434/5 359/435/5 +f 360/436/342 359/435/343 361/437/342 +f 362/438/6 363/439/6 364/440/6 +f 364/440/344 365/441/345 358/434/346 +f 363/439/343 366/442/347 359/435/343 +f 362/438/347 367/443/348 366/442/347 +f 368/444/349 358/434/346 357/433/350 +f 369/445/348 370/446/351 367/443/348 +f 371/447/352 372/448/353 370/446/352 +f 361/437/342 373/449/354 360/436/342 +f 374/450/355 375/451/345 373/449/355 +f 376/452/356 357/433/350 372/448/353 +f 377/453/5 378/454/5 379/455/5 +f 380/456/357 379/455/358 381/457/357 +f 382/458/6 383/459/6 384/460/6 +f 384/460/359 385/461/360 378/454/359 +f 383/459/358 386/462/361 379/455/358 +f 382/458/361 387/463/362 386/462/361 +f 388/464/363 378/454/359 377/453/364 +f 389/465/362 390/466/365 387/463/362 +f 391/467/366 392/468/367 390/466/366 +f 381/457/357 393/469/368 380/456/357 +f 394/470/369 395/471/360 393/469/370 +f 396/472/367 377/453/364 392/468/367 +f 397/473/5 398/474/5 399/475/5 +f 400/476/371 399/475/372 401/477/371 +f 402/478/6 403/479/6 404/480/6 +f 404/480/373 405/481/374 398/474/375 +f 403/479/376 406/482/377 399/475/372 +f 402/478/377 407/483/378 406/482/377 +f 408/484/379 398/474/375 397/473/379 +f 409/485/378 410/486/380 407/483/378 +f 411/487/381 412/488/382 410/486/381 +f 401/477/371 413/489/383 400/476/371 +f 414/490/384 415/491/385 413/489/384 +f 416/492/386 397/473/379 412/488/382 +f 417/493/5 418/494/5 419/495/5 +f 420/496/371 419/495/372 421/497/387 +f 422/498/6 423/499/6 424/500/6 +f 424/500/373 425/501/385 418/494/373 +f 423/499/372 426/502/377 419/495/372 +f 422/498/377 427/503/378 426/502/377 +f 428/504/388 418/494/373 417/493/379 +f 429/505/378 430/506/380 427/503/378 +f 431/507/389 432/508/386 430/506/389 +f 421/497/387 433/509/383 420/496/371 +f 434/510/384 435/511/385 433/509/384 +f 436/512/390 417/493/379 432/508/386 +f 437/513/5 438/514/5 439/515/5 +f 440/516/391 439/515/343 441/517/391 +f 442/518/6 443/519/6 444/520/6 +f 444/520/346 445/521/345 438/514/346 +f 443/519/343 446/522/347 439/515/343 +f 442/518/347 447/523/348 446/522/347 +f 448/524/349 438/514/346 437/513/350 +f 449/525/348 450/526/351 447/523/348 +f 451/527/352 452/528/353 450/526/352 +f 441/517/391 453/529/354 440/516/391 +f 454/530/355 455/531/345 453/529/355 +f 456/532/356 437/513/350 452/528/353 +f 457/533/5 458/534/5 459/535/5 +f 460/536/392 459/535/358 461/537/357 +f 462/538/6 463/539/6 464/540/6 +f 464/540/393 465/541/394 458/534/393 +f 463/539/358 466/542/361 459/535/358 +f 462/538/361 467/543/362 466/542/361 +f 468/544/363 458/534/393 457/533/395 +f 469/545/362 470/546/365 467/543/362 +f 471/547/366 472/548/367 470/546/366 +f 461/537/357 473/549/368 460/536/392 +f 474/550/370 475/551/360 473/549/370 +f 476/552/396 457/533/395 472/548/367 +f 477/553/5 478/554/5 479/555/5 +f 480/556/371 479/555/372 481/557/371 +f 482/558/6 483/559/6 484/560/6 +f 484/560/375 485/561/385 478/554/375 +f 483/559/376 486/562/377 479/555/372 +f 482/558/377 487/563/378 486/562/377 +f 488/564/379 478/554/375 477/553/379 +f 489/565/378 490/566/380 487/563/378 +f 491/567/381 492/568/382 490/566/381 +f 481/557/371 493/569/383 480/556/371 +f 494/570/384 495/571/385 493/569/384 +f 496/572/386 477/553/379 492/568/382 +f 497/573/5 498/574/5 499/575/5 +f 500/576/371 499/575/372 501/577/387 +f 502/578/6 503/579/6 504/580/6 +f 504/580/373 505/581/385 498/574/373 +f 503/579/372 506/582/377 499/575/372 +f 502/578/377 507/583/378 506/582/377 +f 508/584/379 498/574/373 497/573/379 +f 509/585/378 510/586/380 507/583/378 +f 511/587/389 512/588/386 510/586/389 +f 501/577/387 513/589/383 500/576/371 +f 514/590/384 515/591/385 513/589/384 +f 516/592/386 497/573/379 512/588/386 +f 80/156/48 306/382/49 81/157/49 +f 306/382/49 305/381/49 304/380/49 +f 81/157/49 306/382/49 304/380/49 +f 81/157/49 140/216/49 79/155/48 +f 140/216/49 310/386/49 307/383/49 +f 310/386/49 309/385/49 307/383/49 +f 307/383/49 79/155/48 140/216/49 +f 82/158/50 195/271/163 83/159/51 +f 85/161/53 82/158/50 84/160/52 +f 87/163/55 218/294/186 88/164/56 +f 90/166/58 255/331/223 91/167/59 +f 93/169/61 165/241/133 94/170/62 +f 96/172/64 237/313/205 97/173/65 +f 99/175/67 106/182/74 100/176/68 +f 83/159/51 195/271/163 99/175/67 +f 102/178/70 218/294/186 87/163/55 +f 104/180/72 237/313/205 96/172/64 +f 106/182/74 102/178/70 103/179/71 +f 107/183/75 263/339/231 108/184/76 +f 110/186/78 301/377/270 111/187/79 +f 113/189/81 90/166/58 92/168/60 +f 115/191/83 156/232/124 104/180/72 +f 116/192/84 142/218/110 117/193/85 +f 118/194/86 117/193/85 119/195/87 +f 120/196/88 355/431/339 121/197/89 +f 148/224/116 517/593/91 125/201/93 +f 517/593/91 123/199/91 125/201/93 +f 91/167/59 255/331/223 126/202/94 +f 128/204/96 131/207/99 129/205/97 +f 127/203/95 126/202/94 128/204/96 +f 168/244/136 129/205/97 125/201/93 +f 129/205/97 131/207/99 125/201/93 +f 135/211/103 138/214/103 123/199/91 +f 138/214/103 311/387/280 313/389/282 +f 313/389/282 315/391/284 138/214/103 +f 315/391/284 123/199/91 138/214/103 +f 134/210/102 283/359/285 135/211/103 +f 123/199/91 517/593/91 135/211/103 +f 517/593/91 133/209/101 135/211/103 +f 137/213/105 144/220/112 330/406/6 +f 330/406/6 316/392/6 137/213/105 +f 316/392/6 311/387/6 79/155/6 +f 137/213/105 316/392/6 79/155/6 +f 311/387/6 138/214/6 79/155/6 +f 79/155/6 307/383/276 308/384/277 +f 308/384/277 136/212/104 79/155/6 +f 135/211/103 80/156/48 79/155/48 +f 97/173/65 85/161/53 86/162/54 +f 139/215/106 141/217/109 140/216/107 +f 141/217/109 139/215/106 142/218/110 +f 137/213/105 299/375/268 143/219/111 +f 150/226/118 122/198/90 151/227/119 +f 153/229/121 169/245/137 154/230/122 +f 157/233/125 354/430/338 158/234/126 +f 162/238/130 93/169/61 95/171/63 +f 169/245/137 331/407/302 170/246/138 +f 152/228/120 151/227/119 171/247/139 +f 173/249/141 235/311/203 174/250/142 +f 175/251/143 174/250/142 176/252/144 +f 177/253/145 176/252/144 98/174/66 +f 178/254/146 181/257/149 179/255/147 +f 181/257/149 183/259/151 182/258/150 +f 183/259/151 85/161/53 97/173/65 +f 184/260/152 173/249/141 175/251/143 +f 185/261/153 175/251/143 177/253/145 +f 177/253/145 86/162/54 84/160/52 +f 187/263/155 188/264/156 181/257/149 +f 188/264/156 194/270/162 183/259/151 +f 183/259/151 194/270/162 82/158/50 +f 189/265/157 184/260/152 185/261/153 +f 185/261/153 186/262/154 191/267/159 +f 186/262/154 84/160/52 83/159/51 +f 192/268/160 226/302/194 188/264/156 +f 188/264/156 226/302/194 193/269/161 +f 194/270/162 193/269/161 195/271/163 +f 196/272/164 225/301/193 197/273/165 +f 198/274/166 197/273/165 199/275/167 +f 200/276/168 199/275/167 101/177/69 +f 201/277/169 204/280/172 202/278/170 +f 204/280/172 206/282/174 205/281/173 +f 206/282/174 106/182/74 99/175/67 +f 196/272/164 198/274/166 207/283/175 +f 207/283/175 198/274/166 200/276/168 +f 200/276/168 100/176/68 103/179/71 +f 201/277/169 214/290/182 210/286/178 +f 210/286/178 217/293/185 206/282/174 +f 206/282/174 217/293/185 102/178/70 +f 208/284/176 207/283/175 211/287/179 +f 207/283/175 209/285/177 213/289/181 +f 209/285/177 103/179/71 87/163/55 +f 214/290/182 222/298/190 215/291/183 +f 210/286/178 215/291/183 216/292/184 +f 217/293/185 216/292/184 218/294/186 +f 212/288/180 211/287/179 219/295/187 +f 211/287/179 213/289/181 221/297/189 +f 213/289/181 87/163/55 89/165/57 +f 222/298/190 356/432/397 223/299/191 +f 215/291/183 223/299/191 224/300/192 +f 216/292/184 224/300/192 88/164/56 +f 225/301/193 189/265/157 190/266/158 +f 190/266/158 191/267/159 199/275/167 +f 191/267/159 83/159/51 101/177/69 +f 203/279/171 202/278/170 226/302/194 +f 226/302/194 202/278/170 205/281/173 +f 193/269/161 205/281/173 99/175/67 +f 171/247/139 282/358/253 227/303/195 +f 227/303/195 282/358/253 229/305/197 +f 230/306/198 229/305/197 105/181/73 +f 153/229/121 236/312/204 231/307/199 +f 231/307/199 234/310/202 233/309/201 +f 234/310/202 237/313/205 104/180/72 +f 235/311/203 228/304/196 227/303/195 +f 174/250/142 227/303/195 230/306/198 +f 176/252/144 230/306/198 96/172/64 +f 180/256/148 179/255/147 231/307/199 +f 179/255/147 182/258/150 234/310/202 +f 182/258/150 97/173/65 237/313/205 +f 238/314/206 241/317/209 239/315/207 +f 241/317/209 243/319/211 242/318/210 +f 243/319/211 114/190/82 92/168/60 +f 244/320/212 252/328/220 245/321/213 +f 246/322/214 245/321/213 247/323/215 +f 248/324/216 247/323/215 90/166/58 +f 240/316/208 239/315/207 249/325/217 +f 239/315/207 242/318/210 251/327/219 +f 242/318/210 92/168/60 91/167/59 +f 252/328/220 260/336/228 253/329/221 +f 245/321/213 253/329/221 254/330/222 +f 247/323/215 254/330/222 255/331/223 +f 256/332/224 250/326/218 249/325/217 +f 257/333/225 249/325/217 251/327/219 +f 251/327/219 91/167/59 127/203/95 +f 259/335/227 261/337/229 253/329/221 +f 261/337/229 280/356/251 254/330/222 +f 254/330/222 280/356/251 126/202/94 +f 262/338/230 338/414/309 263/339/231 +f 264/340/233 351/427/329 352/428/330 +f 352/428/330 356/432/397 222/298/190 +f 222/298/190 214/290/182 201/277/169 +f 201/277/169 203/279/171 222/298/190 +f 203/279/171 192/268/160 264/340/233 +f 192/268/160 187/263/155 244/320/212 +f 187/263/155 178/254/146 244/320/212 +f 178/254/146 180/256/148 252/328/220 +f 180/256/148 236/312/204 259/335/227 +f 178/254/146 252/328/220 244/320/212 +f 236/312/204 153/229/121 336/412/307 +f 153/229/121 155/231/123 336/412/307 +f 203/279/171 264/340/233 352/428/330 +f 352/428/330 222/298/190 203/279/171 +f 244/320/212 264/340/233 192/268/160 +f 236/312/204 336/412/307 271/347/242 +f 236/312/204 271/347/242 259/335/227 +f 252/328/220 180/256/148 260/336/228 +f 244/320/212 246/322/214 109/185/232 +f 246/322/214 248/324/216 107/183/234 +f 248/324/216 113/189/81 262/338/235 +f 265/341/236 268/344/239 266/342/237 +f 268/344/239 270/346/241 269/345/240 +f 270/346/241 130/206/98 129/205/97 +f 271/347/242 336/412/307 272/348/243 +f 273/349/244 272/348/243 274/350/245 +f 275/351/246 274/350/245 131/207/99 +f 170/246/138 284/360/286 276/352/247 +f 277/353/248 276/352/247 278/354/249 +f 279/355/250 278/354/249 148/224/116 +f 256/332/224 257/333/225 268/344/239 +f 257/333/225 258/334/226 270/346/241 +f 258/334/226 127/203/95 130/206/98 +f 259/335/227 271/347/242 273/349/244 +f 261/337/229 273/349/244 275/351/246 +f 280/356/251 275/351/246 128/204/96 +f 105/181/73 229/305/197 281/357/252 +f 284/360/5 332/408/5 157/233/125 +f 332/408/5 354/430/338 157/233/125 +f 157/233/125 293/369/262 80/156/5 +f 284/360/5 157/233/125 80/156/5 +f 293/369/262 295/371/264 80/156/5 +f 295/371/264 306/382/275 80/156/5 +f 80/156/5 135/211/5 283/359/5 +f 121/197/89 355/431/339 285/361/254 +f 287/363/256 331/407/302 162/238/130 +f 112/188/80 111/187/79 119/195/87 +f 136/212/104 308/384/277 289/365/258 +f 290/366/259 289/365/258 291/367/260 +f 292/368/261 291/367/260 141/217/109 +f 293/369/262 296/372/265 294/370/263 +f 296/372/265 298/374/267 297/373/266 +f 298/374/267 142/218/110 139/215/106 +f 136/212/104 290/366/259 299/375/268 +f 299/375/268 290/366/259 292/368/261 +f 292/368/261 116/192/84 118/194/86 +f 293/369/262 157/233/125 159/235/127 +f 159/235/127 303/379/272 298/374/267 +f 298/374/267 303/379/272 117/193/85 +f 301/377/270 300/376/269 118/194/86 +f 302/378/271 119/195/87 117/193/85 +f 139/215/106 81/157/108 304/380/273 +f 297/373/266 304/380/273 305/381/274 +f 294/370/263 305/381/274 306/382/275 +f 307/383/276 309/385/278 289/365/258 +f 309/385/278 310/386/279 291/367/260 +f 310/386/279 140/216/107 141/217/109 +f 311/387/280 316/392/287 312/388/281 +f 313/389/282 312/388/281 314/390/283 +f 315/391/284 314/390/283 124/200/92 +f 283/359/285 134/210/102 276/352/247 +f 134/210/102 133/209/101 278/354/249 +f 133/209/101 517/593/91 148/224/116 +f 150/226/118 317/393/288 312/388/281 +f 317/393/288 318/394/289 314/390/283 +f 318/394/289 166/242/134 124/200/92 +f 104/180/72 156/232/124 319/395/290 +f 152/228/120 320/396/291 317/393/288 +f 320/396/291 321/397/292 318/394/289 +f 321/397/292 167/243/135 166/242/134 +f 172/248/140 322/398/293 320/396/291 +f 322/398/293 323/399/294 321/397/292 +f 323/399/294 168/244/136 167/243/135 +f 155/231/123 154/230/122 324/400/295 +f 325/401/296 324/400/295 326/402/297 +f 327/403/298 326/402/297 149/225/117 +f 154/230/122 170/246/138 277/353/248 +f 324/400/295 277/353/248 279/355/250 +f 326/402/297 279/355/250 147/223/115 +f 151/227/119 328/404/299 282/358/253 +f 328/404/299 329/405/300 281/357/252 +f 281/357/252 329/405/300 145/221/113 +f 122/198/90 121/197/89 328/404/299 +f 121/197/89 286/362/255 329/405/300 +f 329/405/300 286/362/255 160/236/128 +f 150/226/118 316/392/287 122/198/90 +f 316/392/287 330/406/301 122/198/90 +f 143/219/111 299/375/268 301/377/270 +f 284/360/286 170/246/138 331/407/302 +f 331/407/302 287/363/256 332/408/303 +f 158/234/126 333/409/304 302/378/271 +f 333/409/304 288/364/257 119/195/87 +f 331/407/302 169/245/137 334/410/305 +f 162/238/130 334/410/305 335/411/306 +f 335/411/306 164/240/132 165/241/133 +f 169/245/137 153/229/121 232/308/200 +f 334/410/305 232/308/200 319/395/290 +f 335/411/306 319/395/290 156/232/124 +f 129/205/97 168/244/136 323/399/294 +f 269/345/240 323/399/294 322/398/293 +f 266/342/237 322/398/293 172/248/140 +f 155/231/123 325/401/296 272/348/243 +f 325/401/296 327/403/298 274/350/245 +f 327/403/298 132/208/100 131/207/99 +f 337/413/308 343/419/333 338/414/309 +f 339/415/310 518/594/311 340/416/311 +f 243/319/211 342/418/314 337/413/313 +f 241/317/209 339/415/315 342/418/314 +f 238/314/206 518/594/398 339/415/315 +f 337/413/313 262/338/235 113/189/81 +f 343/419/316 348/424/324 344/420/317 +f 340/416/319 353/429/399 345/421/320 +f 341/417/321 345/421/320 346/422/322 +f 347/423/323 346/422/322 348/424/324 +f 263/339/325 338/414/318 344/420/317 +f 108/184/327 263/339/325 349/425/326 +f 351/427/329 108/184/327 350/426/328 +f 109/185/77 108/184/76 351/427/331 +f 337/413/308 342/418/337 347/423/332 +f 346/422/335 345/421/400 353/429/336 +f 353/429/336 220/296/401 348/424/334 +f 220/296/401 356/432/402 344/420/403 +f 356/432/402 352/428/404 344/420/403 +f 352/428/404 350/426/335 349/425/335 +f 344/420/403 352/428/404 349/425/335 +f 344/420/403 348/424/334 220/296/401 +f 267/343/238 172/248/140 171/247/139 +f 171/247/139 228/304/196 267/343/238 +f 228/304/196 235/311/203 256/332/224 +f 267/343/238 228/304/196 265/341/236 +f 235/311/203 173/249/141 240/316/208 +f 173/249/141 184/260/152 238/314/206 +f 184/260/152 189/265/157 238/314/206 +f 189/265/157 225/301/193 518/594/398 +f 225/301/193 196/272/164 208/284/176 +f 208/284/176 212/288/180 225/301/193 +f 212/288/180 220/296/188 353/429/399 +f 353/429/399 340/416/319 518/594/398 +f 353/429/399 518/594/398 225/301/193 +f 212/288/180 353/429/399 225/301/193 +f 173/249/141 238/314/206 240/316/208 +f 189/265/157 518/594/398 238/314/206 +f 265/341/236 228/304/196 256/332/224 +f 240/316/208 250/326/218 235/311/203 +f 342/418/337 339/415/310 341/417/312 +f 163/239/131 158/234/126 354/430/338 +f 95/171/63 333/409/304 158/234/126 +f 95/171/63 94/170/62 288/364/257 +f 355/431/339 120/196/88 144/220/112 +f 285/361/254 355/431/339 143/219/111 +f 285/361/254 110/186/78 112/188/80 +f 161/237/129 112/188/80 288/364/257 +f 286/362/255 285/361/254 161/237/129 +f 223/299/341 356/432/340 224/300/341 +f 356/432/340 220/296/340 88/164/340 +f 220/296/340 219/295/341 221/297/341 +f 221/297/341 89/165/405 220/296/340 +f 89/165/405 88/164/340 220/296/340 +f 358/434/5 365/441/5 359/435/5 +f 365/441/5 374/450/406 361/437/5 +f 359/435/5 365/441/5 361/437/5 +f 359/435/5 366/442/5 357/433/5 +f 366/442/5 367/443/5 372/448/5 +f 367/443/5 370/446/407 372/448/5 +f 372/448/5 357/433/5 366/442/5 +f 360/436/342 363/439/343 359/435/343 +f 363/439/6 360/436/6 375/451/6 +f 360/436/6 373/449/6 375/451/6 +f 375/451/6 364/440/6 363/439/6 +f 364/440/6 368/444/6 362/438/6 +f 368/444/6 376/452/6 369/445/6 +f 376/452/6 371/447/6 369/445/6 +f 369/445/6 362/438/6 368/444/6 +f 364/440/344 375/451/345 365/441/345 +f 363/439/343 362/438/347 366/442/347 +f 362/438/347 369/445/348 367/443/348 +f 368/444/349 364/440/344 358/434/346 +f 369/445/348 371/447/351 370/446/351 +f 371/447/352 376/452/356 372/448/353 +f 361/437/342 374/450/354 373/449/354 +f 374/450/355 365/441/345 375/451/345 +f 376/452/356 368/444/349 357/433/350 +f 378/454/5 385/461/5 381/457/5 +f 385/461/5 394/470/5 381/457/5 +f 381/457/5 379/455/5 378/454/5 +f 379/455/5 386/462/5 377/453/5 +f 386/462/5 387/463/5 392/468/5 +f 387/463/5 390/466/5 392/468/5 +f 392/468/5 377/453/5 386/462/5 +f 380/456/357 383/459/358 379/455/358 +f 383/459/6 380/456/6 384/460/6 +f 380/456/6 393/469/6 395/471/6 +f 384/460/6 380/456/6 395/471/6 +f 384/460/6 388/464/6 382/458/6 +f 388/464/6 396/472/6 389/465/6 +f 396/472/6 391/467/6 389/465/6 +f 389/465/6 382/458/6 388/464/6 +f 384/460/359 395/471/360 385/461/360 +f 383/459/358 382/458/361 386/462/361 +f 382/458/361 389/465/362 387/463/362 +f 388/464/363 384/460/359 378/454/359 +f 389/465/362 391/467/365 390/466/365 +f 391/467/366 396/472/367 392/468/367 +f 381/457/357 394/470/368 393/469/368 +f 394/470/369 385/461/360 395/471/360 +f 396/472/367 388/464/363 377/453/364 +f 398/474/5 405/481/406 399/475/5 +f 405/481/406 414/490/406 401/477/5 +f 399/475/5 405/481/406 401/477/5 +f 399/475/5 406/482/5 397/473/5 +f 406/482/5 407/483/5 412/488/5 +f 407/483/5 410/486/5 412/488/5 +f 412/488/5 397/473/5 406/482/5 +f 400/476/371 403/479/376 399/475/372 +f 403/479/6 400/476/6 415/491/6 +f 400/476/6 413/489/6 415/491/6 +f 415/491/6 404/480/6 403/479/6 +f 404/480/6 408/484/6 402/478/6 +f 408/484/6 416/492/6 409/485/6 +f 416/492/6 411/487/6 409/485/6 +f 409/485/6 402/478/6 408/484/6 +f 404/480/373 415/491/385 405/481/374 +f 403/479/376 402/478/377 406/482/377 +f 402/478/377 409/485/378 407/483/378 +f 408/484/379 404/480/373 398/474/375 +f 409/485/378 411/487/380 410/486/380 +f 411/487/381 416/492/386 412/488/382 +f 401/477/371 414/490/408 413/489/383 +f 414/490/384 405/481/374 415/491/385 +f 416/492/386 408/484/379 397/473/379 +f 418/494/5 425/501/5 421/497/5 +f 425/501/5 434/510/5 421/497/5 +f 421/497/5 419/495/5 418/494/5 +f 419/495/5 426/502/5 417/493/5 +f 426/502/5 427/503/5 432/508/5 +f 427/503/5 430/506/407 432/508/5 +f 432/508/5 417/493/5 426/502/5 +f 420/496/371 423/499/372 419/495/372 +f 423/499/6 420/496/6 424/500/6 +f 420/496/6 433/509/6 435/511/6 +f 424/500/6 420/496/6 435/511/6 +f 424/500/6 428/504/6 422/498/6 +f 428/504/6 436/512/6 429/505/6 +f 436/512/6 431/507/409 429/505/6 +f 429/505/6 422/498/6 428/504/6 +f 424/500/373 435/511/385 425/501/385 +f 423/499/372 422/498/377 426/502/377 +f 422/498/377 429/505/378 427/503/378 +f 428/504/388 424/500/373 418/494/373 +f 429/505/378 431/507/380 430/506/380 +f 431/507/389 436/512/390 432/508/386 +f 421/497/387 434/510/383 433/509/383 +f 434/510/384 425/501/385 435/511/385 +f 436/512/390 428/504/388 417/493/379 +f 438/514/5 445/521/407 439/515/5 +f 445/521/407 454/530/5 441/517/406 +f 439/515/5 445/521/407 441/517/406 +f 439/515/5 446/522/5 437/513/5 +f 446/522/5 447/523/5 452/528/5 +f 447/523/5 450/526/5 452/528/5 +f 452/528/5 437/513/5 446/522/5 +f 440/516/391 443/519/343 439/515/343 +f 443/519/6 440/516/6 455/531/6 +f 440/516/6 453/529/6 455/531/6 +f 455/531/6 444/520/6 443/519/6 +f 444/520/6 448/524/6 442/518/6 +f 448/524/6 456/532/6 449/525/6 +f 456/532/6 451/527/6 449/525/6 +f 449/525/6 442/518/6 448/524/6 +f 444/520/346 455/531/345 445/521/345 +f 443/519/343 442/518/347 446/522/347 +f 442/518/347 449/525/348 447/523/348 +f 448/524/349 444/520/346 438/514/346 +f 449/525/348 451/527/351 450/526/351 +f 451/527/352 456/532/356 452/528/353 +f 441/517/391 454/530/354 453/529/354 +f 454/530/355 445/521/345 455/531/345 +f 456/532/356 448/524/349 437/513/350 +f 458/534/5 465/541/5 459/535/5 +f 465/541/5 474/550/5 461/537/5 +f 459/535/5 465/541/5 461/537/5 +f 459/535/5 466/542/5 457/533/5 +f 466/542/5 467/543/5 472/548/407 +f 467/543/5 470/546/5 472/548/407 +f 472/548/407 457/533/5 466/542/5 +f 460/536/392 463/539/358 459/535/358 +f 463/539/6 460/536/6 475/551/6 +f 460/536/6 473/549/409 475/551/6 +f 475/551/6 464/540/6 463/539/6 +f 464/540/6 468/544/6 462/538/6 +f 468/544/6 476/552/6 469/545/6 +f 476/552/6 471/547/410 469/545/6 +f 469/545/6 462/538/6 468/544/6 +f 464/540/393 475/551/360 465/541/394 +f 463/539/358 462/538/361 466/542/361 +f 462/538/361 469/545/362 467/543/362 +f 468/544/363 464/540/393 458/534/393 +f 469/545/362 471/547/365 470/546/365 +f 471/547/366 476/552/396 472/548/367 +f 461/537/357 474/550/368 473/549/368 +f 474/550/370 465/541/394 475/551/360 +f 476/552/396 468/544/363 457/533/395 +f 478/554/5 485/561/5 479/555/5 +f 485/561/5 494/570/5 481/557/5 +f 479/555/5 485/561/5 481/557/5 +f 479/555/5 486/562/5 477/553/5 +f 486/562/5 487/563/5 492/568/5 +f 487/563/5 490/566/5 492/568/5 +f 492/568/5 477/553/5 486/562/5 +f 480/556/371 483/559/376 479/555/372 +f 483/559/6 480/556/6 495/571/6 +f 480/556/6 493/569/6 495/571/6 +f 495/571/6 484/560/6 483/559/6 +f 484/560/6 488/564/6 482/558/6 +f 488/564/6 496/572/409 489/565/6 +f 496/572/409 491/567/6 489/565/6 +f 489/565/6 482/558/6 488/564/6 +f 484/560/375 495/571/385 485/561/385 +f 483/559/376 482/558/377 486/562/377 +f 482/558/377 489/565/378 487/563/378 +f 488/564/379 484/560/375 478/554/375 +f 489/565/378 491/567/380 490/566/380 +f 491/567/381 496/572/386 492/568/382 +f 481/557/371 494/570/408 493/569/383 +f 494/570/384 485/561/385 495/571/385 +f 496/572/386 488/564/379 477/553/379 +f 498/574/5 505/581/5 501/577/5 +f 505/581/5 514/590/5 501/577/5 +f 501/577/5 499/575/5 498/574/5 +f 499/575/5 506/582/5 497/573/5 +f 506/582/5 507/583/5 512/588/407 +f 507/583/5 510/586/5 512/588/407 +f 512/588/407 497/573/5 506/582/5 +f 500/576/371 503/579/372 499/575/372 +f 503/579/6 500/576/6 504/580/6 +f 500/576/6 513/589/6 515/591/6 +f 504/580/6 500/576/6 515/591/6 +f 504/580/6 508/584/6 502/578/6 +f 508/584/6 516/592/409 509/585/6 +f 516/592/409 511/587/6 509/585/6 +f 509/585/6 502/578/6 508/584/6 +f 504/580/373 515/591/385 505/581/385 +f 503/579/372 502/578/377 506/582/377 +f 502/578/377 509/585/378 507/583/378 +f 508/584/379 504/580/373 498/574/373 +f 509/585/378 511/587/380 510/586/380 +f 511/587/389 516/592/386 512/588/386 +f 501/577/387 514/590/383 513/589/383 +f 514/590/384 505/581/385 515/591/385 +f 516/592/386 508/584/379 497/573/379 +f 543/595/6 544/596/411 545/597/6 +f 520/32/6 546/598/6 547/599/6 +f 548/600/412 549/601/413 550/602/414 +f 541/53/5 542/54/5 551/603/415 +f 552/604/5 535/47/5 534/46/5 +f 553/605/1 554/606/416 552/604/1 +f 555/607/417 556/608/418 549/601/413 +f 557/609/419 558/610/419 559/611/420 +f 557/609/419 560/612/416 558/610/419 +f 550/602/414 561/613/421 548/600/412 +f 562/614/422 563/615/423 564/616/424 +f 564/616/424 565/617/425 566/618/426 +f 566/618/426 567/619/427 568/620/428 +f 568/620/428 550/602/414 549/601/413 +f 569/621/429 570/622/430 571/623/431 +f 572/624/432 573/625/433 570/622/430 +f 574/626/434 575/627/435 573/625/433 +f 576/628/436 548/600/412 575/627/435 +f 558/610/437 564/616/424 577/629/438 +f 564/616/424 578/630/439 577/629/438 +f 566/618/426 579/631/440 578/630/439 +f 579/631/440 549/601/413 556/608/418 +f 557/609/441 572/624/432 569/621/429 +f 572/624/432 580/632/442 574/626/434 +f 574/626/434 581/633/443 576/628/436 +f 581/633/443 555/607/417 576/628/436 +f 561/613/421 575/627/435 548/600/412 +f 582/634/444 573/625/433 575/627/435 +f 583/635/445 570/622/430 573/625/433 +f 584/636/446 571/623/431 570/622/430 +f 585/637/447 586/638/448 587/639/449 +f 588/640/450 589/641/451 590/642/449 +f 591/643/452 592/644/453 593/645/454 +f 565/617/425 594/646/455 567/619/427 +f 567/619/427 595/647/456 550/602/414 +f 551/603/457 595/647/3 544/596/457 +f 596/648/458 597/649/459 598/650/459 +f 543/595/460 552/604/460 599/651/460 +f 600/652/461 599/651/461 597/649/461 +f 601/653/462 545/597/463 602/654/464 +f 603/655/465 604/656/466 547/599/467 +f 605/657/468 606/658/469 607/659/470 +f 603/655/465 546/598/471 605/657/468 +f 608/660/472 609/661/473 610/662/474 +f 607/659/470 611/663/475 601/653/462 +f 612/664/476 590/642/477 613/665/478 +f 589/641/3 614/666/479 615/667/479 +f 616/668/480 617/669/481 612/664/476 +f 602/654/464 618/670/482 619/671/483 +f 620/672/484 591/643/485 617/669/481 +f 621/673/486 622/674/487 623/675/488 +f 624/676/489 592/644/490 591/643/485 +f 625/677/491 614/666/479 604/656/466 +f 587/639/492 586/638/493 626/678/494 +f 619/671/483 618/670/482 627/679/1 +f 605/657/468 628/680/495 629/681/496 +f 628/680/495 630/682/497 629/681/496 +f 630/682/497 631/683/498 629/681/496 +f 631/683/498 605/657/468 629/681/496 +f 608/660/472 632/684/499 633/685/500 +f 633/685/500 602/654/464 619/671/501 +f 607/659/470 634/686/502 628/680/495 +f 628/680/495 634/686/502 635/687/503 +f 636/688/504 633/685/500 619/671/501 +f 633/685/500 609/661/473 608/660/472 +f 637/689/505 638/690/506 639/691/507 +f 638/690/506 623/675/488 639/691/507 +f 640/692/508 641/693/509 642/694/510 +f 642/694/510 620/672/484 616/668/480 +f 625/677/491 643/695/511 615/667/512 +f 644/696/513 610/662/474 643/695/511 +f 645/697/514 643/695/511 610/662/474 +f 643/695/511 613/665/515 615/667/512 +f 624/676/489 646/698/516 647/699/517 +f 648/700/518 637/689/505 646/698/516 +f 645/697/514 642/694/510 649/701/519 +f 649/701/519 616/668/480 613/665/515 +f 624/676/489 641/693/509 648/700/518 +f 648/700/518 641/693/509 640/692/508 +f 637/689/505 639/691/507 646/698/516 +f 639/691/507 647/699/517 646/698/516 +f 621/673/486 650/702/520 636/688/504 +f 638/690/506 609/661/473 650/702/520 +f 630/682/497 644/696/513 631/683/498 +f 644/696/513 603/655/465 631/683/498 +f 635/687/503 634/686/502 632/684/499 +f 632/684/499 601/653/462 602/654/464 +f 592/644/490 623/675/488 622/674/487 +f 606/658/6 523/35/6 525/37/6 +f 543/595/6 600/652/6 596/648/6 +f 606/658/6 525/37/6 543/595/6 +f 611/663/6 606/658/6 543/595/6 +f 543/595/6 596/648/6 544/596/411 +f 544/596/411 627/679/451 618/670/6 +f 545/597/6 611/663/6 543/595/6 +f 544/596/411 618/670/6 545/597/6 +f 614/666/6 589/641/451 588/640/450 +f 562/614/422 558/610/437 520/32/6 +f 558/610/437 560/612/6 520/32/6 +f 614/666/6 588/640/450 604/656/6 +f 588/640/450 562/614/422 520/32/6 +f 604/656/6 588/640/450 520/32/6 +f 560/612/6 553/605/6 520/32/6 +f 553/605/6 543/595/6 521/33/6 +f 543/595/6 525/37/6 521/33/6 +f 547/599/6 604/656/6 520/32/6 +f 523/35/6 606/658/6 546/598/6 +f 520/32/6 523/35/6 546/598/6 +f 553/605/6 521/33/6 520/32/6 +f 548/600/412 555/607/417 549/601/413 +f 528/40/5 535/47/5 552/604/5 +f 552/604/5 554/606/5 528/40/5 +f 554/606/5 557/609/441 528/40/5 +f 557/609/441 569/621/429 528/40/5 +f 542/54/5 530/42/5 571/623/431 +f 530/42/5 528/40/5 571/623/431 +f 528/40/5 569/621/429 571/623/431 +f 551/603/415 598/650/5 599/651/5 +f 598/650/5 597/649/5 599/651/5 +f 599/651/5 537/49/5 536/48/5 +f 542/54/5 571/623/431 551/603/415 +f 599/651/5 536/48/5 551/603/415 +f 536/48/5 541/53/5 551/603/415 +f 534/46/5 537/49/5 599/651/5 +f 599/651/5 552/604/5 534/46/5 +f 553/605/1 560/612/416 554/606/416 +f 555/607/417 559/611/420 556/608/418 +f 577/629/521 578/630/439 556/608/418 +f 578/630/439 579/631/440 556/608/418 +f 556/608/418 559/611/420 558/610/419 +f 577/629/521 556/608/418 558/610/419 +f 559/611/420 581/633/443 580/632/442 +f 580/632/442 651/703/521 559/611/420 +f 651/703/521 557/609/419 559/611/420 +f 557/609/419 554/606/416 560/612/416 +f 550/602/414 595/647/456 561/613/421 +f 562/614/422 588/640/450 563/615/423 +f 564/616/424 563/615/423 565/617/425 +f 566/618/426 565/617/425 567/619/427 +f 568/620/428 567/619/427 550/602/414 +f 569/621/429 572/624/432 570/622/430 +f 572/624/432 574/626/434 573/625/433 +f 574/626/434 576/628/436 575/627/435 +f 576/628/436 555/607/417 548/600/412 +f 558/610/437 562/614/422 564/616/424 +f 564/616/424 566/618/426 578/630/439 +f 566/618/426 568/620/428 579/631/440 +f 579/631/440 568/620/428 549/601/413 +f 557/609/441 651/703/522 572/624/432 +f 572/624/432 651/703/522 580/632/442 +f 574/626/434 580/632/442 581/633/443 +f 581/633/443 559/611/420 555/607/417 +f 561/613/421 582/634/444 575/627/435 +f 582/634/444 583/635/445 573/625/433 +f 583/635/445 584/636/446 570/622/430 +f 584/636/446 551/603/415 571/623/431 +f 587/639/449 627/679/451 544/596/411 +f 544/596/411 585/637/447 587/639/449 +f 590/642/449 652/704/448 563/615/423 +f 563/615/423 588/640/450 590/642/449 +f 626/678/523 586/638/448 593/645/454 +f 586/638/448 585/637/447 593/645/454 +f 565/617/425 563/615/423 612/664/523 +f 563/615/423 652/704/448 612/664/523 +f 622/674/523 626/678/523 593/645/454 +f 565/617/425 612/664/523 617/669/523 +f 565/617/425 617/669/523 591/643/452 +f 592/644/453 622/674/523 593/645/454 +f 565/617/425 591/643/452 593/645/454 +f 565/617/425 593/645/454 594/646/455 +f 567/619/427 594/646/455 595/647/456 +f 594/646/3 593/645/11 595/647/3 +f 593/645/11 585/637/11 595/647/3 +f 585/637/11 544/596/457 595/647/3 +f 544/596/457 596/648/524 551/603/457 +f 596/648/524 598/650/524 551/603/457 +f 551/603/457 584/636/3 561/613/3 +f 584/636/3 583/635/11 561/613/3 +f 583/635/11 582/634/3 561/613/3 +f 561/613/3 595/647/3 551/603/457 +f 596/648/458 600/652/458 597/649/459 +f 543/595/460 553/605/460 552/604/460 +f 600/652/461 543/595/461 599/651/461 +f 601/653/462 611/663/475 545/597/463 +f 603/655/465 625/677/491 604/656/466 +f 605/657/468 546/598/471 606/658/469 +f 603/655/465 547/599/467 546/598/471 +f 637/689/505 640/692/508 645/697/514 +f 645/697/514 610/662/474 609/661/473 +f 610/662/474 630/682/497 608/660/472 +f 645/697/514 609/661/473 637/689/505 +f 630/682/497 635/687/503 608/660/472 +f 607/659/470 606/658/469 611/663/475 +f 613/665/478 616/668/480 612/664/476 +f 612/664/476 652/704/525 590/642/477 +f 615/667/479 613/665/478 589/641/3 +f 613/665/478 590/642/477 589/641/3 +f 616/668/480 620/672/484 617/669/481 +f 602/654/464 545/597/463 618/670/482 +f 620/672/484 624/676/489 591/643/485 +f 621/673/486 626/678/494 622/674/487 +f 624/676/489 647/699/517 592/644/490 +f 625/677/491 615/667/479 614/666/479 +f 626/678/494 621/673/486 636/688/526 +f 636/688/526 587/639/492 626/678/494 +f 587/639/492 636/688/526 627/679/1 +f 636/688/526 619/671/483 627/679/1 +f 605/657/468 607/659/470 628/680/495 +f 628/680/495 635/687/503 630/682/497 +f 631/683/498 603/655/465 605/657/468 +f 608/660/472 635/687/503 632/684/499 +f 633/685/500 632/684/499 602/654/464 +f 607/659/470 601/653/462 634/686/502 +f 636/688/504 650/702/520 633/685/500 +f 633/685/500 650/702/520 609/661/473 +f 638/690/506 621/673/486 623/675/488 +f 642/694/510 641/693/509 620/672/484 +f 625/677/491 644/696/513 643/695/511 +f 644/696/513 630/682/497 610/662/474 +f 645/697/514 649/701/519 643/695/511 +f 643/695/511 649/701/519 613/665/515 +f 624/676/489 648/700/518 646/698/516 +f 648/700/518 640/692/508 637/689/505 +f 645/697/514 640/692/508 642/694/510 +f 649/701/519 642/694/510 616/668/480 +f 624/676/489 620/672/484 641/693/509 +f 639/691/507 623/675/488 647/699/517 +f 621/673/486 638/690/506 650/702/520 +f 638/690/506 637/689/505 609/661/473 +f 644/696/513 625/677/491 603/655/465 +f 632/684/499 634/686/502 601/653/462 +f 592/644/490 647/699/517 623/675/488 +f 653/705/7 654/706/16 655/707/7 +f 656/708/16 657/709/5 654/706/16 +f 658/710/5 659/711/24 657/709/5 +f 660/712/24 661/713/4 659/711/24 +f 662/714/4 663/715/25 661/713/4 +f 664/716/25 665/717/6 663/715/25 +f 666/718/3 662/714/3 658/710/3 +f 666/718/6 667/719/17 665/717/6 +f 667/719/17 653/705/7 655/707/7 +f 663/715/1 665/717/1 667/719/1 +f 653/705/7 656/708/16 654/706/16 +f 656/708/16 658/710/5 657/709/5 +f 658/710/5 660/712/24 659/711/24 +f 660/712/24 662/714/4 661/713/4 +f 662/714/4 664/716/25 663/715/25 +f 664/716/25 666/718/6 665/717/6 +f 658/710/3 656/708/3 653/705/3 +f 653/705/3 668/720/3 658/710/3 +f 668/720/3 666/718/3 658/710/3 +f 666/718/3 664/716/3 662/714/3 +f 662/714/3 660/712/3 658/710/3 +f 666/718/6 668/720/17 667/719/17 +f 667/719/17 668/720/17 653/705/7 +f 667/719/1 655/707/1 654/706/1 +f 654/706/1 657/709/1 667/719/1 +f 657/709/1 659/711/1 667/719/1 +f 659/711/1 661/713/1 667/719/1 +f 661/713/1 663/715/1 667/719/1 +f 669/721/7 670/722/16 671/723/7 +f 672/724/16 673/725/5 670/722/16 +f 674/726/5 675/727/24 673/725/5 +f 676/728/24 677/729/4 675/727/24 +f 678/730/4 679/731/25 677/729/4 +f 680/732/25 681/733/6 679/731/25 +f 682/734/3 680/732/3 683/735/3 +f 684/736/3 685/737/11 674/726/11 +f 682/734/6 686/738/17 681/733/6 +f 687/739/17 671/723/7 686/738/17 +f 688/740/1 689/741/1 679/731/1 +f 670/722/12 673/725/1 690/742/12 +f 684/736/25 691/743/4 690/742/25 +f 684/736/25 692/744/6 685/737/6 +f 685/737/6 693/745/17 694/746/17 +f 694/746/17 695/747/7 696/748/7 +f 696/748/7 689/741/16 697/749/16 +f 683/735/5 689/741/16 688/740/5 +f 698/750/24 688/740/5 699/751/24 +f 700/752/4 699/751/24 691/743/4 +f 669/721/7 672/724/16 670/722/16 +f 672/724/16 674/726/5 673/725/5 +f 674/726/5 676/728/24 675/727/24 +f 676/728/24 678/730/4 677/729/4 +f 678/730/4 680/732/25 679/731/25 +f 680/732/25 682/734/6 681/733/6 +f 683/735/3 698/750/3 682/734/3 +f 698/750/3 687/739/3 682/734/3 +f 680/732/3 678/730/3 697/749/3 +f 678/730/3 696/748/3 697/749/3 +f 680/732/3 697/749/3 683/735/3 +f 694/746/3 696/748/3 678/730/3 +f 669/721/11 687/739/3 698/750/3 +f 669/721/11 698/750/3 700/752/11 +f 694/746/3 678/730/3 676/728/3 +f 685/737/11 694/746/3 674/726/11 +f 694/746/3 676/728/3 674/726/11 +f 672/724/3 669/721/11 700/752/11 +f 672/724/3 700/752/11 684/736/3 +f 672/724/3 684/736/3 674/726/11 +f 682/734/6 687/739/17 686/738/17 +f 687/739/17 669/721/7 671/723/7 +f 689/741/1 695/747/12 677/729/12 +f 681/733/1 686/738/12 699/751/12 +f 681/733/1 699/751/12 688/740/1 +f 689/741/1 677/729/12 679/731/1 +f 681/733/1 688/740/1 679/731/1 +f 699/751/12 686/738/12 671/723/1 +f 675/727/1 677/729/12 693/745/1 +f 677/729/12 695/747/12 693/745/1 +f 691/743/1 699/751/12 671/723/1 +f 690/742/12 691/743/1 670/722/12 +f 691/743/1 671/723/1 670/722/12 +f 673/725/1 675/727/1 693/745/1 +f 673/725/1 693/745/1 692/744/1 +f 673/725/1 692/744/1 690/742/12 +f 684/736/25 700/752/4 691/743/4 +f 684/736/25 690/742/25 692/744/6 +f 685/737/6 692/744/6 693/745/17 +f 694/746/17 693/745/17 695/747/7 +f 696/748/7 695/747/7 689/741/16 +f 683/735/5 697/749/16 689/741/16 +f 698/750/24 683/735/5 688/740/5 +f 700/752/4 698/750/24 699/751/24 +f 701/753/7 702/754/16 703/755/7 +f 704/756/16 705/757/5 702/754/16 +f 706/758/5 707/759/24 705/757/5 +f 708/760/24 709/761/4 707/759/24 +f 710/762/4 711/763/25 709/761/4 +f 712/764/25 713/765/6 711/763/25 +f 714/766/3 710/762/3 706/758/3 +f 714/766/6 715/767/17 713/765/6 +f 716/768/17 703/755/7 715/767/17 +f 711/763/1 713/765/1 715/767/1 +f 701/753/7 704/756/16 702/754/16 +f 704/756/16 706/758/5 705/757/5 +f 706/758/5 708/760/24 707/759/24 +f 708/760/24 710/762/4 709/761/4 +f 710/762/4 712/764/25 711/763/25 +f 712/764/25 714/766/6 713/765/6 +f 706/758/3 704/756/3 701/753/3 +f 701/753/3 716/768/3 714/766/3 +f 714/766/3 712/764/3 710/762/3 +f 710/762/3 708/760/3 706/758/3 +f 706/758/3 701/753/3 714/766/3 +f 714/766/6 716/768/17 715/767/17 +f 716/768/17 701/753/7 703/755/7 +f 715/767/1 703/755/12 702/754/1 +f 702/754/1 705/757/1 715/767/1 +f 705/757/1 707/759/1 715/767/1 +f 707/759/1 709/761/1 715/767/1 +f 709/761/1 711/763/1 715/767/1 +f 717/769/527 718/770/528 719/771/529 +f 720/772/530 721/773/531 722/774/532 +f 723/775/533 724/776/534 725/777/535 +f 726/778/536 727/779/537 728/780/538 +f 729/781/6 730/782/6 731/783/6 +f 719/771/6 732/784/539 733/785/6 +f 734/786/6 735/787/6 736/788/6 +f 728/780/538 737/789/540 738/790/541 +f 722/774/7 721/773/7 738/790/7 +f 739/791/542 740/792/543 741/793/544 +f 742/794/5 720/772/530 722/774/532 +f 743/795/6 737/789/540 744/796/545 +f 745/797/546 746/798/547 747/799/548 +f 748/800/536 749/801/549 726/778/536 +f 750/802/541 751/803/550 752/804/551 +f 753/805/552 724/776/534 754/806/553 +f 755/807/554 756/808/555 757/809/556 +f 758/810/557 759/811/542 721/773/531 +f 755/807/554 753/805/552 760/812/558 +f 761/813/559 762/814/532 763/815/531 +f 764/816/560 765/817/561 766/818/562 +f 741/793/544 763/815/531 739/791/542 +f 765/817/561 756/808/555 766/818/562 +f 752/804/551 767/819/563 748/800/536 +f 723/775/3 725/777/11 744/796/3 +f 760/812/558 768/820/564 769/821/565 +f 768/820/564 770/822/566 769/821/565 +f 771/823/567 749/801/549 770/822/566 +f 753/805/552 772/824/568 768/820/564 +f 772/824/568 771/823/567 768/820/564 +f 773/825/569 727/779/537 771/823/567 +f 774/826/570 775/827/571 724/776/534 +f 775/827/571 776/828/572 777/829/573 +f 777/829/573 758/810/557 720/772/530 +f 755/807/554 778/830/574 774/826/570 +f 778/830/574 779/831/575 776/828/572 +f 776/828/572 740/792/543 758/810/557 +f 765/817/561 780/832/576 757/809/556 +f 780/832/576 781/833/577 782/834/578 +f 782/834/578 761/813/559 741/793/544 +f 783/835/579 784/836/580 765/817/561 +f 784/836/580 785/837/581 781/833/577 +f 781/833/577 786/838/582 761/813/559 +f 764/816/560 787/839/583 788/840/584 +f 787/839/583 789/841/585 788/840/584 +f 790/842/586 791/843/587 789/841/585 +f 766/818/562 792/844/588 787/839/583 +f 792/844/588 790/842/586 787/839/583 +f 793/845/589 751/803/550 790/842/586 +f 725/777/535 775/827/571 794/846/590 +f 775/827/571 795/847/591 794/846/590 +f 777/829/573 796/848/592 795/847/591 +f 757/809/556 797/849/593 755/807/554 +f 797/849/593 782/834/578 779/831/575 +f 779/831/575 741/793/544 740/792/543 +f 723/775/533 772/824/568 754/806/553 +f 772/824/568 798/850/594 773/825/569 +f 773/825/569 744/796/545 737/789/540 +f 756/808/555 769/821/565 792/844/588 +f 769/821/565 793/845/589 792/844/588 +f 770/822/566 767/819/563 793/845/589 +f 799/851/595 800/852/596 801/853/597 +f 802/854/598 803/855/599 804/856/600 +f 805/857/601 806/858/602 807/859/603 +f 808/860/604 788/840/584 809/861/605 +f 788/840/584 802/854/606 809/861/605 +f 789/841/585 810/862/607 802/854/606 +f 811/863/5 812/864/5 813/865/5 +f 814/866/3 815/867/608 816/868/3 +f 817/869/609 818/870/3 819/871/609 +f 820/872/7 821/873/7 822/874/7 +f 823/875/7 824/876/7 825/877/7 +f 826/878/406 827/879/5 828/880/5 +f 829/881/610 822/874/1 830/882/610 +f 831/883/611 828/880/1 823/875/1 +f 832/884/3 833/885/608 834/886/3 +f 835/887/609 836/888/3 837/889/609 +f 838/890/7 816/868/7 839/891/7 +f 840/892/7 841/893/7 842/894/7 +f 843/895/3 729/781/608 821/873/3 +f 844/896/609 824/876/3 845/897/609 +f 838/890/12 839/891/12 731/783/12 +f 846/898/612 847/899/1 840/892/1 +f 848/900/613 849/901/614 813/865/613 +f 850/902/6 851/903/6 852/904/6 +f 853/905/5 854/906/5 817/869/5 +f 855/907/7 856/908/7 857/909/7 +f 858/910/7 818/870/7 859/911/7 +f 860/912/6 861/913/6 829/881/6 +f 862/914/3 842/894/3 841/893/3 +f 855/907/1 863/915/610 864/916/610 +f 854/906/611 865/917/1 858/910/1 +f 866/918/609 867/919/3 868/920/609 +f 869/921/3 870/922/608 871/923/3 +f 872/924/609 873/925/3 874/926/609 +f 875/927/7 834/886/7 876/928/7 +f 877/929/7 836/888/7 878/930/7 +f 879/931/3 880/932/608 856/908/3 +f 881/933/5 831/883/5 844/896/5 +f 875/927/1 882/934/610 883/935/610 +f 884/936/611 885/937/1 877/929/1 +f 886/938/3 887/939/608 888/940/3 +f 889/941/609 890/942/3 891/943/609 +f 892/944/7 871/923/7 893/945/7 +f 894/946/7 867/919/7 895/947/7 +f 896/948/6 897/949/6 864/916/6 +f 892/944/1 898/950/610 899/951/610 +f 900/952/615 901/953/1 894/946/1 +f 902/954/3 903/955/608 904/956/3 +f 905/957/3 906/958/3 907/959/609 +f 908/960/7 888/940/2 909/961/7 +f 910/962/7 873/925/2 911/963/2 +f 912/964/6 913/965/6 883/935/6 +f 908/960/1 914/966/610 915/967/610 +f 916/968/611 917/969/1 910/962/1 +f 918/970/608 735/787/608 919/971/3 +f 920/972/5 921/973/5 907/959/5 +f 922/974/7 904/956/7 923/975/7 +f 924/976/7 890/942/7 925/977/7 +f 926/978/6 927/979/6 899/951/6 +f 928/980/5 884/936/5 835/887/5 +f 922/974/1 929/981/610 930/982/610 +f 931/983/615 932/984/1 924/976/1 +f 933/985/6 934/986/6 930/982/6 +f 935/987/7 732/784/7 936/988/7 +f 937/989/7 938/990/7 905/957/7 +f 939/991/6 940/992/6 915/967/6 +f 941/993/5 900/952/5 866/918/5 +f 935/987/1 942/994/1 943/995/610 +f 944/996/3 945/997/3 946/998/3 +f 921/973/615 947/999/615 948/1000/1 +f 949/1001/6 950/1002/6 943/995/6 +f 951/1003/5 931/983/5 889/941/5 +f 952/1004/7 953/1005/7 733/785/7 +f 954/1006/7 945/997/7 944/996/7 +f 950/1002/608 955/1007/3 956/1008/3 +f 957/1009/5 916/968/5 872/924/5 +f 952/1004/1 733/785/1 958/1010/1 +f 959/1011/615 960/1012/611 961/1013/1 +f 962/1014/6 963/1015/6 919/971/6 +f 963/1015/6 830/882/6 919/971/6 +f 729/781/6 964/1016/6 730/782/6 +f 964/1016/6 962/1014/6 730/782/6 +f 815/867/6 965/1017/6 863/915/6 +f 880/932/6 966/1018/6 882/934/6 +f 833/885/6 898/950/6 893/945/6 +f 870/922/6 967/1019/6 914/966/6 +f 887/939/6 968/1020/6 929/981/6 +f 969/1021/610 970/1022/616 943/995/610 +f 971/1023/616 972/1024/617 970/1022/616 +f 929/981/610 973/1025/616 930/982/610 +f 968/1020/616 974/1026/618 973/1025/616 +f 975/1027/610 976/1028/616 852/904/610 +f 977/1029/616 978/1030/617 976/1028/616 +f 863/915/610 979/1031/616 864/916/610 +f 965/1017/616 980/1032/618 979/1031/616 +f 882/934/610 981/1033/616 883/935/610 +f 966/1018/616 982/1034/618 981/1033/616 +f 898/950/610 983/1035/616 899/951/610 +f 984/1036/616 985/1037/618 983/1035/616 +f 914/966/610 986/1038/616 915/967/610 +f 967/1019/616 987/1039/618 986/1038/616 +f 988/1040/619 989/1041/620 990/1042/621 +f 736/788/622 918/970/608 989/1041/620 +f 830/882/610 991/1043/616 829/881/610 +f 963/1015/623 992/1044/618 991/1043/616 +f 734/786/619 850/902/622 978/1030/619 +f 993/1045/622 851/903/608 850/902/622 +f 994/1046/619 896/948/620 980/1032/619 +f 995/1047/622 897/949/608 896/948/620 +f 996/1048/619 926/978/622 985/1037/619 +f 997/1049/622 927/979/608 926/978/622 +f 998/1050/619 939/991/622 987/1039/619 +f 999/1051/622 940/992/608 939/991/622 +f 1000/1052/619 933/985/620 974/1026/621 +f 1001/1053/622 934/986/608 933/985/620 +f 1002/1054/610 1003/1055/616 1004/1056/610 +f 1005/1057/616 990/1042/618 1003/1055/616 +f 962/1014/619 860/912/622 992/1044/619 +f 964/1016/622 861/913/608 860/912/622 +f 1006/1058/619 912/964/622 982/1034/619 +f 1007/1059/622 913/965/608 912/964/622 +f 1008/1060/619 949/1001/620 972/1024/621 +f 1009/1061/622 950/1002/608 949/1001/620 +f 989/1041/6 918/970/6 1004/1056/6 +f 1010/1062/5 1011/1063/5 946/998/5 +f 1011/1063/5 1012/1064/5 946/998/5 +f 824/876/5 1013/1065/5 847/899/5 +f 819/871/5 1014/1066/5 1015/1067/5 +f 837/889/5 1016/1068/5 1017/1069/5 +f 890/942/5 932/984/5 762/814/532 +f 868/920/5 1018/1070/5 1019/1071/5 +f 1020/1072/5 1021/1073/5 1022/1074/5 +f 1023/1075/624 853/905/625 1024/1076/624 +f 812/864/625 854/906/611 853/905/625 +f 845/897/609 1025/1077/626 844/896/609 +f 1026/1078/626 1027/1079/627 1025/1077/626 +f 819/871/609 1028/1080/626 817/869/609 +f 1029/1081/626 1024/1076/627 1028/1080/626 +f 837/889/609 1030/1082/628 835/887/609 +f 1031/1083/626 1032/1084/627 1030/1082/628 +f 874/926/609 1033/1085/626 872/924/609 +f 1020/1072/626 1034/1086/627 1033/1085/626 +f 1035/1087/609 1036/1088/626 907/959/609 +f 1037/1089/626 1038/1090/627 1036/1088/626 +f 1039/1091/624 1040/1092/625 1041/1093/624 +f 1042/1094/625 959/1011/615 1040/1092/625 +f 1043/1095/629 941/993/625 1044/1096/629 +f 1017/1069/625 900/952/615 941/993/625 +f 868/920/609 1045/1097/626 866/918/609 +f 1046/1098/626 1044/1096/627 1045/1097/626 +f 1047/1099/624 957/1009/625 1034/1086/624 +f 1019/1071/625 916/968/611 957/1009/625 +f 1048/1100/624 951/1003/625 1049/1101/624 +f 1022/1074/625 931/983/615 951/1003/625 +f 891/943/609 1050/1102/626 889/941/609 +f 1051/1103/626 1049/1101/627 1050/1102/626 +f 1052/1104/609 1053/1105/626 1054/1106/609 +f 1055/1107/626 1041/1093/627 1053/1105/626 +f 842/894/5 862/914/630 846/898/631 +f 1056/1108/624 928/980/632 1032/1084/624 +f 1015/1067/625 884/936/611 928/980/632 +f 1012/1064/629 881/933/632 1027/1079/624 +f 1011/1063/625 831/883/611 881/933/632 +f 848/900/633 1057/1109/634 1058/1110/635 +f 1057/1109/634 846/898/612 1058/1110/635 +f 1059/1111/624 920/972/625 1038/1090/624 +f 1060/1112/625 921/973/615 920/972/625 +f 1040/1092/5 959/1011/5 1054/1106/5 +f 862/914/636 849/901/614 1061/1113/637 +f 862/914/636 841/893/638 1062/1114/639 +f 808/860/640 1063/1115/641 1064/1116/642 +f 1065/1117/643 1066/1118/644 717/769/645 +f 1067/1119/646 1063/1115/641 1068/1120/647 +f 785/837/581 1069/1121/648 786/838/582 +f 1070/1122/649 1071/1123/650 785/837/581 +f 1064/1116/651 1070/1122/649 783/835/579 +f 764/816/560 1064/1116/651 783/835/579 +f 1063/1115/652 1072/1124/533 1073/1125/651 +f 1074/1126/653 718/770/654 1075/1127/655 +f 747/799/548 801/853/656 1076/1128/657 +f 1071/1123/658 1068/1120/647 1077/1129/659 +f 1078/1130/660 1079/1131/661 1065/1117/643 +f 1073/1125/651 1068/1120/662 1063/1115/652 +f 1068/1120/662 1080/1132/650 1077/1129/650 +f 1077/1129/650 1076/1128/648 1081/1133/663 +f 804/856/606 1079/1131/664 1082/1134/606 +f 1083/1135/665 1082/1134/606 1084/1136/605 +f 1072/1124/533 1083/1135/665 1084/1136/605 +f 803/855/664 1075/1127/6 1079/1131/664 +f 1075/1127/6 1066/1118/6 1079/1131/664 +f 1085/1137/5 1081/1133/663 1076/1128/648 +f 1085/1137/5 801/853/5 800/852/5 +f 802/854/598 1083/1135/666 809/861/667 +f 1069/1121/668 1085/1137/669 1086/1138/669 +f 1078/1130/660 1084/1136/670 1082/1134/671 +f 805/857/601 1076/1128/657 1080/1132/672 +f 807/859/603 1073/1125/673 745/797/546 +f 809/861/667 1087/1139/674 808/860/640 +f 810/862/675 1075/1127/655 803/855/599 +f 745/797/546 1072/1124/676 746/798/547 +f 1088/1140/677 1072/1124/676 1084/1136/670 +f 1071/1123/658 1081/1133/678 1069/1121/668 +f 1086/1138/669 800/852/679 827/879/679 +f 717/769/527 1066/1118/680 718/770/528 +f 720/772/530 758/810/557 721/773/531 +f 723/775/533 754/806/553 724/776/534 +f 726/778/536 749/801/549 727/779/537 +f 839/891/681 821/873/682 731/783/6 +f 821/873/682 729/781/6 731/783/6 +f 953/1005/682 919/971/6 830/882/6 +f 719/771/6 1074/1126/6 942/994/6 +f 719/771/6 942/994/6 936/988/6 +f 953/1005/682 830/882/6 822/874/681 +f 955/1007/6 958/1010/6 732/784/539 +f 958/1010/6 733/785/6 732/784/539 +f 733/785/6 953/1005/682 822/874/681 +f 822/874/681 719/771/6 733/785/6 +f 719/771/6 936/988/6 732/784/539 +f 996/1048/6 1007/1059/6 1006/1058/6 +f 1006/1058/6 994/1046/6 988/1040/6 +f 994/1046/6 734/786/6 736/788/6 +f 1006/1058/6 988/1040/6 791/843/587 +f 1000/1052/6 998/1050/6 791/843/587 +f 998/1050/6 996/1048/6 791/843/587 +f 996/1048/6 1006/1058/6 791/843/587 +f 888/940/681 923/975/683 750/802/541 +f 923/975/683 904/956/6 750/802/541 +f 893/945/6 871/923/6 750/802/541 +f 871/923/6 909/961/6 750/802/541 +f 909/961/6 888/940/681 750/802/541 +f 876/928/410 834/886/6 750/802/541 +f 834/886/6 893/945/6 750/802/541 +f 857/909/684 856/908/6 719/771/6 +f 856/908/6 876/928/410 719/771/6 +f 719/771/6 876/928/410 750/802/541 +f 839/891/681 816/868/6 719/771/6 +f 816/868/6 857/909/684 719/771/6 +f 822/874/681 821/873/682 719/771/6 +f 821/873/682 839/891/681 719/771/6 +f 942/994/6 1074/1126/6 969/1021/6 +f 1074/1126/6 810/862/607 969/1021/6 +f 971/1023/6 969/1021/6 810/862/607 +f 1008/1060/6 971/1023/6 810/862/607 +f 791/843/587 750/802/541 903/955/6 +f 750/802/541 904/956/6 903/955/6 +f 1008/1060/6 810/862/607 988/1040/6 +f 810/862/607 791/843/587 988/1040/6 +f 791/843/587 903/955/6 1001/1053/6 +f 791/843/587 1001/1053/6 1000/1052/6 +f 958/1010/6 955/1007/6 1002/1054/6 +f 955/1007/6 1089/1141/6 1002/1054/6 +f 1002/1054/6 1089/1141/6 1005/1057/6 +f 1089/1141/6 1009/1061/6 1005/1057/6 +f 988/1040/6 994/1046/6 736/788/6 +f 1005/1057/6 1009/1061/6 1008/1060/6 +f 988/1040/6 1005/1057/6 1008/1060/6 +f 975/1027/6 731/783/6 730/782/6 +f 962/1014/6 919/971/6 735/787/6 +f 975/1027/6 730/782/6 977/1029/6 +f 730/782/6 962/1014/6 735/787/6 +f 977/1029/6 730/782/6 734/786/6 +f 730/782/6 735/787/6 734/786/6 +f 728/780/538 727/779/537 737/789/540 +f 750/802/7 752/804/7 762/814/7 +f 752/804/7 748/800/7 763/815/7 +f 762/814/7 752/804/7 763/815/7 +f 748/800/7 726/778/7 739/791/7 +f 799/851/595 717/769/527 719/771/529 +f 719/771/529 750/802/7 762/814/7 +f 726/778/7 728/780/7 759/811/7 +f 827/879/685 799/851/595 719/771/529 +f 762/814/7 827/879/685 719/771/529 +f 748/800/7 739/791/7 763/815/7 +f 759/811/7 739/791/7 726/778/7 +f 738/790/7 743/795/7 742/794/7 +f 728/780/7 738/790/7 721/773/7 +f 721/773/7 759/811/7 728/780/7 +f 738/790/7 742/794/7 722/774/7 +f 739/791/542 759/811/542 740/792/543 +f 742/794/5 796/848/592 720/772/530 +f 743/795/6 738/790/541 737/789/540 +f 746/798/547 1088/1140/677 1078/1130/660 +f 1078/1130/660 1065/1117/643 746/798/547 +f 1065/1117/643 717/769/645 747/799/548 +f 746/798/547 1065/1117/643 747/799/548 +f 717/769/645 799/851/686 747/799/548 +f 747/799/548 805/857/601 745/797/546 +f 805/857/601 807/859/603 745/797/546 +f 748/800/536 767/819/563 749/801/549 +f 750/802/541 791/843/587 751/803/550 +f 753/805/552 774/826/570 724/776/534 +f 755/807/554 760/812/558 756/808/555 +f 758/810/557 740/792/543 759/811/542 +f 755/807/554 774/826/570 753/805/552 +f 761/813/559 786/838/582 762/814/532 +f 764/816/560 783/835/579 765/817/561 +f 741/793/544 761/813/559 763/815/531 +f 765/817/561 757/809/556 756/808/555 +f 752/804/551 751/803/550 767/819/563 +f 725/777/11 794/846/687 795/847/11 +f 795/847/11 796/848/3 725/777/11 +f 796/848/3 742/794/3 744/796/3 +f 725/777/11 796/848/3 744/796/3 +f 742/794/3 743/795/3 744/796/3 +f 744/796/3 798/850/3 723/775/3 +f 798/850/3 1090/1142/688 723/775/3 +f 760/812/558 753/805/552 768/820/564 +f 768/820/564 771/823/567 770/822/566 +f 771/823/567 727/779/537 749/801/549 +f 753/805/552 754/806/553 772/824/568 +f 772/824/568 773/825/569 771/823/567 +f 773/825/569 737/789/540 727/779/537 +f 774/826/570 778/830/574 775/827/571 +f 775/827/571 778/830/574 776/828/572 +f 777/829/573 776/828/572 758/810/557 +f 755/807/554 797/849/593 778/830/574 +f 778/830/574 797/849/593 779/831/575 +f 776/828/572 779/831/575 740/792/543 +f 765/817/561 784/836/580 780/832/576 +f 780/832/576 784/836/580 781/833/577 +f 782/834/578 781/833/577 761/813/559 +f 783/835/579 1070/1122/649 784/836/580 +f 784/836/580 1070/1122/649 785/837/581 +f 781/833/577 785/837/581 786/838/582 +f 764/816/560 766/818/562 787/839/583 +f 787/839/583 790/842/586 789/841/585 +f 790/842/586 751/803/550 791/843/587 +f 766/818/562 756/808/555 792/844/588 +f 792/844/588 793/845/589 790/842/586 +f 793/845/589 767/819/563 751/803/550 +f 725/777/535 724/776/534 775/827/571 +f 775/827/571 777/829/573 795/847/591 +f 777/829/573 720/772/530 796/848/592 +f 757/809/556 780/832/576 797/849/593 +f 797/849/593 780/832/576 782/834/578 +f 779/831/575 782/834/578 741/793/544 +f 723/775/533 1090/1142/689 772/824/568 +f 772/824/568 1090/1142/689 798/850/594 +f 773/825/569 798/850/594 744/796/545 +f 756/808/555 760/812/558 769/821/565 +f 769/821/565 770/822/566 793/845/589 +f 770/822/566 749/801/549 767/819/563 +f 799/851/595 827/879/685 800/852/596 +f 802/854/598 810/862/675 803/855/599 +f 805/857/601 1080/1132/672 806/858/602 +f 808/860/604 764/816/560 788/840/584 +f 788/840/584 789/841/585 802/854/606 +f 789/841/585 791/843/587 810/862/607 +f 812/864/5 1023/1075/5 813/865/5 +f 813/865/5 841/893/5 811/863/5 +f 841/893/5 865/917/5 811/863/5 +f 814/866/3 851/903/608 815/867/608 +f 817/869/609 859/911/3 818/870/3 +f 820/872/7 843/895/7 821/873/7 +f 823/875/7 828/880/7 824/876/7 +f 961/1013/5 906/958/5 938/990/5 +f 1091/1143/690 948/1000/5 827/879/5 +f 948/1000/5 1086/1138/5 827/879/5 +f 826/878/406 961/1013/5 938/990/5 +f 945/997/5 826/878/406 828/880/5 +f 826/878/406 938/990/5 827/879/5 +f 938/990/5 1091/1143/690 827/879/5 +f 828/880/5 1010/1062/5 945/997/5 +f 1010/1062/5 946/998/5 945/997/5 +f 829/881/610 820/872/1 822/874/1 +f 831/883/611 1010/1062/615 828/880/1 +f 832/884/3 913/965/608 833/885/608 +f 835/887/609 878/930/3 836/888/3 +f 838/890/7 814/866/7 816/868/7 +f 840/892/7 1013/1065/2 841/893/7 +f 843/895/3 861/913/608 729/781/608 +f 844/896/609 825/877/3 824/876/3 +f 731/783/12 975/1027/610 852/904/610 +f 852/904/610 838/890/12 731/783/12 +f 1092/1144/611 847/899/1 846/898/612 +f 847/899/1 1013/1065/1 840/892/1 +f 848/900/613 1061/1113/637 849/901/614 +f 851/903/6 814/866/6 838/890/6 +f 838/890/6 852/904/6 851/903/6 +f 852/904/6 976/1028/6 850/902/6 +f 976/1028/6 978/1030/6 850/902/6 +f 854/906/5 858/910/5 859/911/5 +f 859/911/5 817/869/5 854/906/5 +f 817/869/5 1028/1080/5 853/905/5 +f 1028/1080/5 1024/1076/5 853/905/5 +f 855/907/7 879/931/7 856/908/7 +f 858/910/7 865/917/7 818/870/7 +f 861/913/6 843/895/6 820/872/6 +f 820/872/6 829/881/6 861/913/6 +f 829/881/6 991/1043/6 860/912/6 +f 991/1043/6 992/1044/6 860/912/6 +f 841/893/691 813/865/692 862/914/693 +f 813/865/692 848/900/694 1061/1113/695 +f 862/914/693 813/865/692 1061/1113/695 +f 855/907/1 857/909/1 863/915/610 +f 854/906/611 811/863/611 865/917/1 +f 866/918/609 895/947/3 867/919/3 +f 869/921/3 927/979/608 870/922/608 +f 872/924/609 911/963/3 873/925/3 +f 875/927/7 832/884/7 834/886/7 +f 877/929/7 885/937/7 836/888/7 +f 879/931/3 897/949/608 880/932/608 +f 831/883/5 823/875/5 825/877/5 +f 825/877/5 844/896/5 831/883/5 +f 844/896/5 1025/1077/5 881/933/5 +f 1025/1077/5 1027/1079/5 881/933/5 +f 875/927/1 876/928/1 882/934/610 +f 884/936/611 1014/1066/611 885/937/1 +f 886/938/3 940/992/608 887/939/608 +f 889/941/609 925/977/3 890/942/3 +f 892/944/7 869/921/7 871/923/7 +f 894/946/7 901/953/7 867/919/7 +f 897/949/6 879/931/6 855/907/6 +f 855/907/6 864/916/6 897/949/6 +f 864/916/6 979/1031/6 896/948/6 +f 979/1031/6 980/1032/6 896/948/6 +f 892/944/1 893/945/1 898/950/610 +f 900/952/615 1016/1068/615 901/953/1 +f 902/954/3 934/986/608 903/955/608 +f 938/990/3 906/958/3 905/957/3 +f 906/958/3 1035/1087/609 907/959/609 +f 908/960/7 886/938/2 888/940/2 +f 910/962/7 917/969/7 873/925/2 +f 913/965/6 832/884/6 875/927/6 +f 875/927/6 883/935/6 913/965/6 +f 883/935/6 981/1033/6 912/964/6 +f 981/1033/6 982/1034/6 912/964/6 +f 908/960/1 909/961/1 914/966/610 +f 916/968/611 1018/1070/611 917/969/1 +f 919/971/3 953/1005/3 1093/1145/3 +f 1093/1145/3 918/970/608 919/971/3 +f 921/973/5 937/989/5 905/957/5 +f 905/957/5 907/959/5 921/973/5 +f 907/959/5 1036/1088/5 920/972/5 +f 1036/1088/5 1038/1090/5 920/972/5 +f 922/974/7 902/954/7 904/956/7 +f 924/976/7 932/984/7 890/942/7 +f 927/979/6 869/921/6 892/944/6 +f 892/944/6 899/951/6 927/979/6 +f 899/951/6 983/1035/6 926/978/6 +f 983/1035/6 985/1037/6 926/978/6 +f 884/936/5 877/929/5 878/930/5 +f 878/930/5 835/887/5 884/936/5 +f 835/887/5 1030/1082/5 928/980/5 +f 1030/1082/5 1032/1084/5 928/980/5 +f 922/974/1 923/975/1 929/981/610 +f 931/983/615 1021/1073/611 932/984/1 +f 934/986/6 902/954/6 922/974/6 +f 922/974/6 930/982/6 934/986/6 +f 930/982/6 973/1025/6 933/985/6 +f 973/1025/6 974/1026/6 933/985/6 +f 935/987/7 956/1008/7 732/784/7 +f 937/989/7 1091/1143/2 938/990/7 +f 940/992/6 886/938/6 908/960/6 +f 908/960/6 915/967/6 940/992/6 +f 915/967/6 986/1038/6 939/991/6 +f 986/1038/6 987/1039/6 939/991/6 +f 900/952/5 894/946/5 895/947/5 +f 895/947/5 866/918/5 900/952/5 +f 866/918/5 1045/1097/5 941/993/5 +f 1045/1097/5 1044/1096/407 941/993/5 +f 936/988/1 942/994/1 935/987/1 +f 942/994/1 969/1021/610 943/995/610 +f 946/998/3 1052/1104/609 1054/1106/609 +f 1054/1106/609 944/996/3 946/998/3 +f 948/1000/1 1091/1143/1 937/989/1 +f 937/989/1 921/973/615 948/1000/1 +f 950/1002/6 956/1008/6 935/987/6 +f 935/987/6 943/995/6 950/1002/6 +f 943/995/6 970/1022/6 949/1001/6 +f 970/1022/6 972/1024/6 949/1001/6 +f 931/983/5 924/976/5 925/977/5 +f 925/977/5 889/941/5 931/983/5 +f 889/941/5 1050/1102/5 951/1003/5 +f 1050/1102/5 1049/1101/5 951/1003/5 +f 952/1004/7 1093/1145/7 953/1005/7 +f 954/1006/7 826/878/7 945/997/7 +f 1089/1141/608 955/1007/3 950/1002/608 +f 955/1007/3 732/784/3 956/1008/3 +f 916/968/5 910/962/5 911/963/5 +f 911/963/5 872/924/5 916/968/5 +f 872/924/5 1033/1085/5 957/1009/5 +f 1033/1085/5 1034/1086/5 957/1009/5 +f 1002/1054/610 1004/1056/610 958/1010/1 +f 1004/1056/610 952/1004/1 958/1010/1 +f 961/1013/1 826/878/1 954/1006/1 +f 954/1006/1 959/1011/615 961/1013/1 +f 993/1045/6 734/786/6 994/1046/6 +f 993/1045/6 994/1046/6 965/1017/6 +f 857/909/684 816/868/6 815/867/6 +f 815/867/6 993/1045/6 965/1017/6 +f 863/915/6 857/909/684 815/867/6 +f 995/1047/6 994/1046/6 1006/1058/6 +f 995/1047/6 1006/1058/6 966/1018/6 +f 876/928/410 856/908/6 880/932/6 +f 880/932/6 995/1047/6 966/1018/6 +f 882/934/6 876/928/410 880/932/6 +f 833/885/6 1007/1059/6 984/1036/6 +f 1007/1059/6 996/1048/6 984/1036/6 +f 893/945/6 834/886/6 833/885/6 +f 833/885/6 984/1036/6 898/950/6 +f 997/1049/6 996/1048/6 998/1050/6 +f 997/1049/6 998/1050/6 967/1019/6 +f 909/961/6 871/923/6 870/922/6 +f 870/922/6 997/1049/6 967/1019/6 +f 914/966/6 909/961/6 870/922/6 +f 999/1051/6 998/1050/6 1000/1052/6 +f 999/1051/6 1000/1052/6 968/1020/6 +f 923/975/683 888/940/681 887/939/6 +f 887/939/6 999/1051/6 968/1020/6 +f 929/981/6 923/975/683 887/939/6 +f 969/1021/610 971/1023/616 970/1022/616 +f 971/1023/616 1008/1060/618 972/1024/617 +f 929/981/610 968/1020/616 973/1025/616 +f 968/1020/616 1000/1052/618 974/1026/618 +f 975/1027/610 977/1029/616 976/1028/616 +f 977/1029/616 734/786/618 978/1030/617 +f 863/915/610 965/1017/616 979/1031/616 +f 965/1017/616 994/1046/618 980/1032/618 +f 882/934/610 966/1018/616 981/1033/616 +f 966/1018/616 1006/1058/618 982/1034/618 +f 898/950/610 984/1036/616 983/1035/616 +f 984/1036/616 996/1048/696 985/1037/618 +f 914/966/610 967/1019/616 986/1038/616 +f 967/1019/616 998/1050/618 987/1039/618 +f 988/1040/619 736/788/622 989/1041/620 +f 736/788/622 735/787/608 918/970/608 +f 830/882/610 963/1015/623 991/1043/616 +f 963/1015/623 962/1014/618 992/1044/618 +f 734/786/619 993/1045/622 850/902/622 +f 993/1045/622 815/867/608 851/903/608 +f 994/1046/619 995/1047/622 896/948/620 +f 995/1047/622 880/932/608 897/949/608 +f 996/1048/619 997/1049/622 926/978/622 +f 997/1049/622 870/922/608 927/979/608 +f 998/1050/619 999/1051/622 939/991/622 +f 999/1051/622 887/939/608 940/992/608 +f 1000/1052/619 1001/1053/622 933/985/620 +f 1001/1053/622 903/955/608 934/986/608 +f 1002/1054/610 1005/1057/616 1003/1055/616 +f 1005/1057/616 988/1040/618 990/1042/618 +f 962/1014/619 964/1016/622 860/912/622 +f 964/1016/622 729/781/608 861/913/608 +f 1006/1058/619 1007/1059/622 912/964/622 +f 1007/1059/622 833/885/608 913/965/608 +f 1008/1060/619 1009/1061/622 949/1001/620 +f 1009/1061/622 1089/1141/608 950/1002/608 +f 918/970/6 1093/1145/6 952/1004/6 +f 952/1004/6 1004/1056/6 918/970/6 +f 1004/1056/6 1003/1055/6 989/1041/6 +f 1003/1055/6 990/1042/6 989/1041/6 +f 847/899/5 1026/1078/5 845/897/5 +f 845/897/5 824/876/5 847/899/5 +f 1056/1108/5 1029/1081/5 1015/1067/5 +f 1029/1081/5 819/871/5 1015/1067/5 +f 819/871/5 818/870/697 885/937/407 +f 819/871/5 885/937/407 1014/1066/5 +f 1043/1095/5 1031/1083/5 1017/1069/5 +f 1031/1083/5 837/889/5 1017/1069/5 +f 837/889/5 836/888/5 901/953/5 +f 837/889/5 901/953/5 1016/1068/5 +f 1012/1064/5 1026/1078/5 813/865/5 +f 1026/1078/5 847/899/5 1092/1144/5 +f 1026/1078/5 1092/1144/5 1057/1109/5 +f 1052/1104/5 946/998/5 1012/1064/5 +f 1052/1104/5 1012/1064/5 813/865/5 +f 1026/1078/5 1057/1109/5 813/865/5 +f 1055/1107/5 1052/1104/5 813/865/5 +f 1039/1091/5 1055/1107/5 1023/1075/5 +f 1055/1107/5 813/865/5 1023/1075/5 +f 1023/1075/5 1029/1081/5 1056/1108/5 +f 1039/1091/5 1023/1075/5 1056/1108/5 +f 1056/1108/5 1031/1083/5 1043/1095/5 +f 1043/1095/5 1046/1098/5 1047/1099/5 +f 1043/1095/5 1047/1099/5 786/838/582 +f 1047/1099/5 1048/1100/5 786/838/582 +f 1043/1095/5 786/838/582 1056/1108/5 +f 1039/1091/5 1056/1108/5 786/838/582 +f 906/958/5 961/1013/5 960/1012/5 +f 1035/1087/5 906/958/5 960/1012/5 +f 1035/1087/5 960/1012/5 1042/1094/5 +f 1037/1089/5 1035/1087/5 1042/1094/5 +f 1037/1089/5 1042/1094/5 1039/1091/5 +f 1059/1111/407 1037/1089/5 1039/1091/5 +f 1086/1138/5 948/1000/5 947/999/5 +f 828/880/5 827/879/5 824/876/5 +f 827/879/5 762/814/532 885/937/407 +f 824/876/5 827/879/5 1013/1065/5 +f 841/893/5 1013/1065/5 827/879/5 +f 841/893/5 827/879/5 865/917/5 +f 1069/1121/648 1086/1138/5 947/999/5 +f 1069/1121/648 947/999/5 1060/1112/5 +f 865/917/5 827/879/5 818/870/697 +f 885/937/407 818/870/697 827/879/5 +f 1069/1121/648 1060/1112/5 1059/1111/407 +f 1069/1121/648 1059/1111/407 1039/1091/5 +f 867/919/5 901/953/5 762/814/532 +f 901/953/5 836/888/5 762/814/532 +f 836/888/5 885/937/407 762/814/532 +f 786/838/582 1069/1121/648 1039/1091/5 +f 932/984/5 873/925/5 762/814/532 +f 873/925/5 917/969/5 762/814/532 +f 917/969/5 867/919/5 762/814/532 +f 786/838/582 1048/1100/5 1051/1103/5 +f 786/838/582 1051/1103/5 891/943/5 +f 786/838/582 891/943/5 762/814/532 +f 891/943/5 890/942/5 762/814/532 +f 1047/1099/5 1046/1098/5 1019/1071/5 +f 1046/1098/5 868/920/5 1019/1071/5 +f 868/920/5 867/919/5 917/969/5 +f 868/920/5 917/969/5 1018/1070/5 +f 874/926/5 873/925/5 932/984/5 +f 874/926/5 932/984/5 1021/1073/5 +f 1048/1100/5 1047/1099/5 1020/1072/5 +f 1020/1072/5 874/926/5 1021/1073/5 +f 1022/1074/5 1048/1100/5 1020/1072/5 +f 1023/1075/624 812/864/625 853/905/625 +f 812/864/625 811/863/611 854/906/611 +f 845/897/609 1026/1078/626 1025/1077/626 +f 1026/1078/626 1012/1064/627 1027/1079/627 +f 819/871/609 1029/1081/626 1028/1080/626 +f 1029/1081/626 1023/1075/627 1024/1076/627 +f 837/889/609 1031/1083/626 1030/1082/628 +f 1031/1083/626 1056/1108/627 1032/1084/627 +f 874/926/609 1020/1072/626 1033/1085/626 +f 1020/1072/626 1047/1099/627 1034/1086/627 +f 1035/1087/609 1037/1089/626 1036/1088/626 +f 1037/1089/626 1059/1111/627 1038/1090/627 +f 1039/1091/624 1042/1094/625 1040/1092/625 +f 1042/1094/625 960/1012/611 959/1011/615 +f 1043/1095/629 1017/1069/625 941/993/625 +f 1017/1069/625 1016/1068/615 900/952/615 +f 868/920/609 1046/1098/626 1045/1097/626 +f 1046/1098/626 1043/1095/627 1044/1096/627 +f 1047/1099/624 1019/1071/625 957/1009/625 +f 1019/1071/625 1018/1070/611 916/968/611 +f 1048/1100/624 1022/1074/625 951/1003/625 +f 1022/1074/625 1021/1073/611 931/983/615 +f 891/943/609 1051/1103/626 1050/1102/626 +f 1051/1103/626 1048/1100/627 1049/1101/627 +f 1052/1104/609 1055/1107/626 1053/1105/626 +f 1055/1107/626 1039/1091/698 1041/1093/627 +f 862/914/630 1061/1113/699 1058/1110/700 +f 1061/1113/699 848/900/701 1058/1110/700 +f 1058/1110/700 846/898/631 862/914/630 +f 846/898/631 840/892/5 842/894/5 +f 1056/1108/624 1015/1067/625 928/980/632 +f 1015/1067/625 1014/1066/611 884/936/611 +f 1012/1064/629 1011/1063/625 881/933/632 +f 1011/1063/625 1010/1062/615 831/883/611 +f 848/900/633 813/865/702 1057/1109/634 +f 1057/1109/634 1092/1144/611 846/898/612 +f 1059/1111/624 1060/1112/625 920/972/625 +f 1060/1112/625 947/999/615 921/973/615 +f 959/1011/5 954/1006/5 944/996/5 +f 944/996/5 1054/1106/5 959/1011/5 +f 1054/1106/5 1053/1105/5 1040/1092/5 +f 1053/1105/5 1041/1093/5 1040/1092/5 +f 862/914/636 1062/1114/639 849/901/614 +f 808/860/640 1087/1139/674 1063/1115/641 +f 1065/1117/643 1079/1131/661 1066/1118/644 +f 1067/1119/646 1064/1116/642 1063/1115/641 +f 785/837/581 1071/1123/650 1069/1121/648 +f 1070/1122/649 1067/1119/662 1071/1123/650 +f 1064/1116/651 1067/1119/662 1070/1122/649 +f 764/816/560 808/860/604 1064/1116/651 +f 1063/1115/652 1087/1139/703 1072/1124/533 +f 1074/1126/653 719/771/654 718/770/654 +f 747/799/548 799/851/686 801/853/656 +f 1071/1123/658 1067/1119/646 1068/1120/647 +f 1078/1130/660 1082/1134/671 1079/1131/661 +f 1073/1125/651 806/858/662 1068/1120/662 +f 1068/1120/662 806/858/662 1080/1132/650 +f 1077/1129/650 1080/1132/650 1076/1128/648 +f 804/856/606 803/855/664 1079/1131/664 +f 1083/1135/665 804/856/606 1082/1134/606 +f 1072/1124/533 1087/1139/703 1083/1135/665 +f 1075/1127/6 718/770/6 1066/1118/6 +f 1085/1137/5 1076/1128/648 801/853/5 +f 802/854/598 804/856/600 1083/1135/666 +f 1069/1121/668 1081/1133/678 1085/1137/669 +f 1078/1130/660 1088/1140/677 1084/1136/670 +f 805/857/601 747/799/548 1076/1128/657 +f 807/859/603 806/858/602 1073/1125/673 +f 809/861/667 1083/1135/666 1087/1139/674 +f 810/862/675 1074/1126/653 1075/1127/655 +f 745/797/546 1073/1125/673 1072/1124/676 +f 1088/1140/677 746/798/547 1072/1124/676 +f 1071/1123/658 1077/1129/659 1081/1133/678 +f 1086/1138/669 1085/1137/669 800/852/679 +f 1094/1146/7 1095/1147/7 1096/1148/7 +f 1097/1149/704 1096/1148/1 1098/1150/704 +f 1099/1151/705 1100/1152/706 1101/1153/705 +f 1102/1154/707 1103/1155/708 1104/1156/707 +f 1105/1157/708 1106/1158/709 1103/1155/708 +f 1107/1159/709 1098/1150/704 1106/1158/709 +f 1108/1160/3 1109/1161/3 1095/1147/3 +f 1110/1162/710 1104/1156/707 1111/1163/710 +f 1112/1164/706 1113/1165/711 1100/1152/706 +f 1114/1166/711 1115/1167/712 1113/1165/711 +f 1116/1168/712 1117/1169/713 1115/1167/712 +f 1118/1170/5 1119/1171/5 1120/1172/5 +f 1121/1173/5 1122/1174/5 1106/1158/5 +f 1123/1175/5 1124/1176/5 1125/1177/5 +f 1126/1178/714 1127/1179/715 1128/1180/714 +f 1129/1181/715 1101/1153/705 1127/1179/715 +f 1111/1163/710 1130/1182/716 1110/1162/710 +f 1131/1183/716 1132/1184/717 1130/1182/716 +f 1132/1184/717 1126/1178/714 1128/1180/714 +f 1133/1185/6 1134/1186/6 1132/1184/6 +f 1135/1187/6 1100/1152/6 1136/1188/6 +f 1137/1189/6 1138/1190/6 1094/1146/6 +f 1139/1191/718 1135/1187/719 1120/1172/719 +f 1140/1192/720 1141/1193/721 1142/1194/720 +f 1125/1177/722 1143/1195/723 1144/1196/723 +f 1145/1197/724 1137/1189/725 1146/1198/724 +f 1124/1176/726 1133/1185/722 1125/1177/722 +f 1124/1176/726 1147/1199/727 1134/1186/726 +f 1148/1200/728 1149/1201/729 1147/1199/727 +f 1150/1202/729 1142/1194/720 1149/1201/729 +f 1121/1173/730 1146/1198/724 1151/1203/730 +f 1122/1174/731 1151/1203/730 1152/1204/731 +f 1153/1205/732 1152/1204/731 1154/1206/733 +f 1154/1206/733 1155/1207/734 1153/1205/732 +f 1120/1172/719 1156/1208/735 1157/1209/735 +f 1157/1209/735 1158/1210/736 1159/1211/736 +f 1159/1211/736 1160/1212/737 1161/1213/738 +f 1162/1214/725 1160/1212/737 1137/1189/725 +f 1144/1196/723 1163/1215/739 1164/1216/739 +f 1164/1216/739 1165/1217/740 1166/1218/740 +f 1166/1218/740 1167/1219/741 1168/1220/741 +f 1168/1220/741 1169/1221/718 1139/1191/718 +f 1170/1222/742 1138/1190/4 1171/1223/4 +f 1172/1224/1 1173/1225/743 1170/1222/742 +f 1174/1226/46 1175/1227/12 1172/1224/1 +f 1176/1228/744 1136/1188/7 1177/1229/744 +f 1119/1171/7 1178/1230/745 1136/1188/7 +f 1179/1231/746 1180/1232/11 1181/1233/747 +f 1182/1234/43 1183/1235/3 1184/1236/43 +f 1184/1236/43 1138/1190/4 1182/1234/43 +f 1094/1146/7 1108/1160/7 1095/1147/7 +f 1097/1149/704 1094/1146/12 1096/1148/1 +f 1099/1151/705 1112/1164/706 1100/1152/706 +f 1102/1154/707 1105/1157/708 1103/1155/708 +f 1105/1157/708 1107/1159/709 1106/1158/709 +f 1107/1159/709 1097/1149/704 1098/1150/704 +f 1108/1160/3 1117/1169/3 1109/1161/3 +f 1110/1162/710 1102/1154/707 1104/1156/707 +f 1112/1164/706 1114/1166/711 1113/1165/711 +f 1114/1166/711 1116/1168/712 1115/1167/712 +f 1116/1168/712 1109/1161/713 1117/1169/713 +f 1119/1171/5 1176/1228/5 1114/1166/5 +f 1114/1166/5 1112/1164/5 1119/1171/5 +f 1112/1164/5 1139/1191/5 1120/1172/5 +f 1119/1171/5 1112/1164/5 1120/1172/5 +f 1120/1172/5 1157/1209/5 1118/1170/5 +f 1157/1209/5 1179/1231/5 1118/1170/5 +f 1183/1235/5 1179/1231/5 1157/1209/5 +f 1183/1235/5 1157/1209/5 1159/1211/5 +f 1184/1236/5 1183/1235/5 1159/1211/5 +f 1184/1236/5 1159/1211/5 1161/1213/5 +f 1171/1223/5 1184/1236/5 1161/1213/5 +f 1171/1223/5 1161/1213/5 1162/1214/5 +f 1171/1223/5 1162/1214/5 1096/1148/5 +f 1162/1214/5 1145/1197/5 1096/1148/5 +f 1114/1166/5 1176/1228/5 1174/1226/5 +f 1095/1147/5 1109/1161/5 1116/1168/5 +f 1116/1168/5 1114/1166/5 1172/1224/5 +f 1114/1166/5 1174/1226/5 1172/1224/5 +f 1098/1150/5 1096/1148/5 1106/1158/5 +f 1096/1148/5 1095/1147/5 1171/1223/5 +f 1096/1148/5 1145/1197/5 1121/1173/5 +f 1106/1158/5 1096/1148/5 1121/1173/5 +f 1095/1147/5 1116/1168/5 1171/1223/5 +f 1116/1168/5 1172/1224/5 1170/1222/5 +f 1116/1168/5 1170/1222/5 1171/1223/5 +f 1140/1192/5 1104/1156/5 1155/1207/5 +f 1104/1156/5 1103/1155/5 1155/1207/5 +f 1155/1207/5 1103/1155/5 1153/1205/5 +f 1103/1155/5 1106/1158/5 1153/1205/5 +f 1122/1174/5 1153/1205/5 1106/1158/5 +f 1168/1220/5 1139/1191/5 1112/1164/5 +f 1112/1164/5 1099/1151/5 1168/1220/5 +f 1099/1151/5 1129/1181/5 1166/1218/5 +f 1168/1220/5 1099/1151/5 1166/1218/5 +f 1129/1181/5 1126/1178/5 1164/1216/5 +f 1126/1178/5 1123/1175/5 1125/1177/5 +f 1123/1175/5 1131/1183/5 1148/1200/5 +f 1131/1183/5 1111/1163/5 1150/1202/5 +f 1148/1200/5 1131/1183/5 1150/1202/5 +f 1111/1163/5 1104/1156/5 1140/1192/5 +f 1111/1163/5 1140/1192/5 1150/1202/5 +f 1164/1216/5 1166/1218/5 1129/1181/5 +f 1144/1196/5 1164/1216/5 1126/1178/5 +f 1123/1175/5 1148/1200/5 1124/1176/5 +f 1125/1177/5 1144/1196/5 1126/1178/5 +f 1126/1178/714 1129/1181/715 1127/1179/715 +f 1129/1181/715 1099/1151/705 1101/1153/705 +f 1111/1163/710 1131/1183/716 1130/1182/716 +f 1131/1183/716 1123/1175/717 1132/1184/717 +f 1132/1184/717 1123/1175/717 1126/1178/714 +f 1149/1201/6 1142/1194/6 1110/1162/6 +f 1142/1194/6 1102/1154/6 1110/1162/6 +f 1110/1162/6 1130/1182/6 1149/1201/6 +f 1132/1184/6 1128/1180/6 1133/1185/6 +f 1128/1180/6 1127/1179/6 1163/1215/6 +f 1133/1185/6 1128/1180/6 1143/1195/6 +f 1127/1179/6 1101/1153/6 1165/1217/6 +f 1101/1153/6 1100/1152/6 1167/1219/6 +f 1100/1152/6 1169/1221/6 1167/1219/6 +f 1101/1153/6 1167/1219/6 1165/1217/6 +f 1147/1199/6 1149/1201/6 1130/1182/6 +f 1127/1179/6 1165/1217/6 1163/1215/6 +f 1147/1199/6 1130/1182/6 1132/1184/6 +f 1134/1186/6 1147/1199/6 1132/1184/6 +f 1163/1215/6 1143/1195/6 1128/1180/6 +f 1178/1230/6 1181/1233/6 1156/1208/6 +f 1135/1187/6 1169/1221/6 1100/1152/6 +f 1178/1230/6 1156/1208/6 1135/1187/6 +f 1113/1165/6 1177/1229/6 1136/1188/6 +f 1136/1188/6 1178/1230/6 1135/1187/6 +f 1100/1152/6 1113/1165/6 1136/1188/6 +f 1185/1237/6 1177/1229/6 1113/1165/6 +f 1115/1167/6 1117/1169/6 1108/1160/6 +f 1185/1237/6 1113/1165/6 1175/1227/6 +f 1113/1165/6 1115/1167/6 1175/1227/6 +f 1108/1160/6 1094/1146/6 1138/1190/6 +f 1094/1146/6 1097/1149/6 1107/1159/6 +f 1146/1198/6 1094/1146/6 1151/1203/6 +f 1094/1146/6 1146/1198/6 1137/1189/6 +f 1094/1146/6 1107/1159/6 1151/1203/6 +f 1175/1227/6 1115/1167/6 1173/1225/6 +f 1115/1167/6 1108/1160/6 1138/1190/6 +f 1173/1225/6 1115/1167/6 1138/1190/6 +f 1105/1157/6 1102/1154/6 1141/1193/6 +f 1102/1154/6 1142/1194/6 1141/1193/6 +f 1107/1159/6 1105/1157/6 1154/1206/6 +f 1105/1157/6 1141/1193/6 1154/1206/6 +f 1156/1208/6 1181/1233/6 1180/1232/6 +f 1158/1210/6 1156/1208/6 1180/1232/6 +f 1158/1210/6 1180/1232/6 1182/1234/6 +f 1160/1212/6 1158/1210/6 1182/1234/6 +f 1160/1212/6 1182/1234/6 1138/1190/6 +f 1137/1189/6 1160/1212/6 1138/1190/6 +f 1107/1159/6 1154/1206/6 1152/1204/6 +f 1107/1159/6 1152/1204/6 1151/1203/6 +f 1139/1191/718 1169/1221/718 1135/1187/719 +f 1140/1192/720 1155/1207/734 1141/1193/721 +f 1125/1177/722 1133/1185/722 1143/1195/723 +f 1145/1197/724 1162/1214/725 1137/1189/725 +f 1124/1176/726 1134/1186/726 1133/1185/722 +f 1124/1176/726 1148/1200/728 1147/1199/727 +f 1148/1200/728 1150/1202/729 1149/1201/729 +f 1150/1202/729 1140/1192/720 1142/1194/720 +f 1121/1173/730 1145/1197/724 1146/1198/724 +f 1122/1174/731 1121/1173/730 1151/1203/730 +f 1153/1205/732 1122/1174/731 1152/1204/731 +f 1154/1206/733 1141/1193/721 1155/1207/734 +f 1120/1172/719 1135/1187/719 1156/1208/735 +f 1157/1209/735 1156/1208/735 1158/1210/736 +f 1159/1211/736 1158/1210/736 1160/1212/737 +f 1162/1214/725 1161/1213/738 1160/1212/737 +f 1144/1196/723 1143/1195/723 1163/1215/739 +f 1164/1216/739 1163/1215/739 1165/1217/740 +f 1166/1218/740 1165/1217/740 1167/1219/741 +f 1168/1220/741 1167/1219/741 1169/1221/718 +f 1170/1222/742 1173/1225/743 1138/1190/4 +f 1172/1224/1 1175/1227/12 1173/1225/743 +f 1174/1226/46 1185/1237/748 1175/1227/12 +f 1185/1237/748 1174/1226/46 1176/1228/744 +f 1176/1228/744 1119/1171/7 1136/1188/7 +f 1177/1229/744 1185/1237/748 1176/1228/744 +f 1119/1171/7 1118/1170/745 1178/1230/745 +f 1181/1233/747 1178/1230/745 1118/1170/745 +f 1179/1231/746 1183/1235/3 1180/1232/11 +f 1181/1233/747 1118/1170/745 1179/1231/746 +f 1182/1234/43 1180/1232/11 1183/1235/3 +f 1184/1236/43 1171/1223/4 1138/1190/4 +f 1186/1238/1 1187/1239/1 1188/1240/1 +f 1189/1241/749 1188/1240/4 1190/1242/749 +f 1191/1243/750 1192/1244/751 1193/1245/752 +f 1194/1246/753 1195/1247/754 1196/1248/755 +f 1197/1249/756 1198/1250/757 1199/1251/756 +f 1200/1252/758 1199/1251/756 1201/1253/758 +f 1202/1254/7 1201/1253/758 1187/1239/7 +f 1193/1245/759 1203/1255/760 1204/1256/760 +f 1205/1257/761 1206/1258/762 1207/1259/763 +f 1200/1252/6 1208/1260/764 1209/1261/765 +f 1210/1262/766 1211/1263/767 1206/1258/762 +f 1212/1264/768 1213/1265/769 1214/1266/768 +f 1190/1242/749 1212/1264/768 1214/1266/768 +f 1207/1259/763 1196/1248/755 1205/1257/761 +f 1215/1267/770 1216/1268/771 1217/1269/772 +f 1218/1270/773 1206/1258/762 1216/1268/771 +f 1219/1271/774 1220/1272/775 1221/1273/776 +f 1221/1273/776 1210/1262/766 1205/1257/761 +f 1217/1269/772 1222/1274/777 1223/1275/778 +f 1216/1268/771 1211/1263/767 1222/1274/777 +f 1224/1276/779 1225/1277/780 1220/1272/775 +f 1220/1272/775 1192/1244/751 1210/1262/766 +f 1207/1259/763 1226/1278/781 1194/1246/753 +f 1218/1270/773 1209/1261/765 1226/1278/781 +f 1211/1263/767 1227/1279/782 1222/1274/777 +f 1222/1274/777 1228/1280/783 1223/1275/778 +f 1204/1256/784 1225/1277/780 1229/1281/785 +f 1203/1255/786 1192/1244/751 1225/1277/780 +f 1230/1282/787 1221/1273/776 1231/1283/788 +f 1231/1283/788 1205/1257/761 1196/1248/755 +f 1208/1260/764 1232/1284/789 1233/1285/790 +f 1232/1284/789 1213/1265/769 1233/1285/790 +f 1234/1286/791 1235/1287/792 1236/1288/793 +f 1234/1286/791 1195/1247/754 1212/1264/768 +f 1235/1287/792 1231/1283/788 1236/1288/793 +f 1236/1288/793 1196/1248/755 1195/1247/754 +f 1208/1260/764 1226/1278/781 1209/1261/765 +f 1233/1285/790 1194/1246/753 1226/1278/781 +f 1201/1253/5 1230/1282/787 1235/1287/792 +f 1186/1238/1 1202/1254/12 1187/1239/1 +f 1189/1241/749 1186/1238/4 1188/1240/4 +f 1191/1243/750 1211/1263/767 1192/1244/751 +f 1194/1246/753 1213/1265/769 1195/1247/754 +f 1197/1249/756 1237/1289/757 1198/1250/757 +f 1200/1252/758 1197/1249/756 1199/1251/756 +f 1202/1254/7 1200/1252/758 1201/1253/758 +f 1204/1256/760 1198/1250/757 1193/1245/759 +f 1198/1250/757 1237/1289/757 1193/1245/759 +f 1237/1289/757 1228/1280/759 1191/1243/759 +f 1228/1280/759 1227/1279/794 1191/1243/759 +f 1191/1243/759 1193/1245/759 1237/1289/757 +f 1205/1257/761 1210/1262/766 1206/1258/762 +f 1228/1280/783 1237/1289/6 1223/1275/778 +f 1237/1289/6 1197/1249/6 1215/1267/770 +f 1223/1275/778 1237/1289/6 1217/1269/772 +f 1197/1249/6 1200/1252/6 1209/1261/765 +f 1200/1252/6 1202/1254/6 1189/1241/6 +f 1208/1260/764 1200/1252/6 1232/1284/789 +f 1202/1254/6 1186/1238/6 1189/1241/6 +f 1189/1241/6 1232/1284/789 1200/1252/6 +f 1209/1261/765 1215/1267/770 1197/1249/6 +f 1215/1267/770 1217/1269/772 1237/1289/6 +f 1210/1262/766 1192/1244/751 1211/1263/767 +f 1212/1264/768 1195/1247/754 1213/1265/769 +f 1232/1284/789 1189/1241/749 1214/1266/768 +f 1189/1241/749 1190/1242/749 1214/1266/768 +f 1190/1242/749 1234/1286/791 1212/1264/768 +f 1207/1259/763 1194/1246/753 1196/1248/755 +f 1215/1267/770 1218/1270/773 1216/1268/771 +f 1218/1270/773 1207/1259/763 1206/1258/762 +f 1219/1271/774 1224/1276/779 1220/1272/775 +f 1221/1273/776 1220/1272/775 1210/1262/766 +f 1217/1269/772 1216/1268/771 1222/1274/777 +f 1216/1268/771 1206/1258/762 1211/1263/767 +f 1224/1276/779 1229/1281/785 1225/1277/780 +f 1220/1272/775 1225/1277/780 1192/1244/751 +f 1207/1259/763 1218/1270/773 1226/1278/781 +f 1218/1270/773 1215/1267/770 1209/1261/765 +f 1211/1263/767 1191/1243/750 1227/1279/782 +f 1222/1274/777 1227/1279/782 1228/1280/783 +f 1204/1256/784 1203/1255/786 1225/1277/780 +f 1203/1255/786 1193/1245/752 1192/1244/751 +f 1230/1282/787 1219/1271/774 1221/1273/776 +f 1231/1283/788 1221/1273/776 1205/1257/761 +f 1232/1284/789 1214/1266/768 1213/1265/769 +f 1234/1286/791 1236/1288/793 1195/1247/754 +f 1235/1287/792 1230/1282/787 1231/1283/788 +f 1236/1288/793 1231/1283/788 1196/1248/755 +f 1208/1260/764 1233/1285/790 1226/1278/781 +f 1233/1285/790 1213/1265/769 1194/1246/753 +f 1188/1240/5 1187/1239/5 1190/1242/5 +f 1187/1239/5 1201/1253/5 1190/1242/5 +f 1201/1253/5 1199/1251/5 1230/1282/787 +f 1199/1251/5 1198/1250/5 1219/1271/774 +f 1219/1271/774 1198/1250/5 1224/1276/779 +f 1198/1250/5 1204/1256/784 1229/1281/785 +f 1229/1281/785 1224/1276/779 1198/1250/5 +f 1219/1271/774 1230/1282/787 1199/1251/5 +f 1235/1287/792 1234/1286/791 1201/1253/5 +f 1234/1286/791 1190/1242/5 1201/1253/5 +f 1238/1290/795 1239/1291/796 1240/1292/795 +f 1241/1293/797 1242/1294/798 1243/1295/6 +f 1244/1296/799 1245/1297/800 1246/1298/801 +f 1247/1299/802 1248/1300/803 1244/1296/799 +f 1249/1301/804 1250/1302/805 1247/1299/802 +f 1251/1303/806 1252/1304/807 1249/1301/804 +f 1253/1305/808 1254/1306/809 1255/1307/810 +f 1256/1308/5 1257/1309/5 1258/1310/811 +f 1259/1311/812 1253/1305/808 1260/1312/813 +f 1243/1295/814 1256/1308/812 1259/1311/812 +f 1261/1313/815 1257/1309/814 1243/1295/814 +f 1262/1314/796 1263/1315/815 1261/1313/815 +f 1246/1298/801 1264/1316/816 1265/1317/817 +f 1240/1292/818 1266/1318/819 1267/1319/820 +f 1267/1319/820 1265/1317/817 1268/1320/821 +f 1269/1321/822 1270/1322/823 1266/1318/819 +f 1266/1318/819 1246/1298/801 1265/1317/817 +f 1242/1294/798 1271/1323/824 1270/1322/823 +f 1270/1322/823 1244/1296/799 1246/1298/801 +f 1241/1293/797 1272/1324/825 1271/1323/824 +f 1271/1323/824 1247/1299/802 1244/1296/799 +f 1273/1325/826 1274/1326/827 1272/1324/825 +f 1274/1326/827 1247/1299/802 1272/1324/825 +f 1275/1327/828 1276/1328/829 1274/1326/827 +f 1276/1328/829 1249/1301/804 1274/1326/827 +f 1264/1316/816 1277/1329/830 1278/1330/831 +f 1279/1331/832 1238/1290/833 1277/1329/830 +f 1245/1297/800 1279/1331/832 1264/1316/816 +f 1280/1332/834 1281/1333/835 1279/1331/832 +f 1248/1300/803 1280/1332/834 1245/1297/800 +f 1282/1334/836 1283/1335/837 1280/1332/834 +f 1250/1302/805 1282/1334/836 1248/1300/803 +f 1284/1336/838 1258/1310/811 1282/1334/836 +f 1250/1302/805 1285/1337/839 1284/1336/838 +f 1285/1337/839 1286/1338/840 1284/1336/838 +f 1252/1304/807 1287/1339/841 1285/1337/839 +f 1285/1337/839 1287/1339/841 1254/1306/842 +f 1265/1317/817 1278/1330/831 1268/1320/821 +f 1239/1291/796 1262/1314/796 1240/1292/795 +f 1240/1292/795 1267/1319/795 1277/1329/795 +f 1267/1319/795 1268/1320/795 1277/1329/795 +f 1268/1320/795 1278/1330/795 1277/1329/795 +f 1277/1329/795 1238/1290/795 1240/1292/795 +f 1259/1311/6 1260/1312/843 1275/1327/828 +f 1259/1311/6 1275/1327/828 1273/1325/826 +f 1262/1314/6 1261/1313/6 1242/1294/798 +f 1261/1313/6 1243/1295/6 1242/1294/798 +f 1269/1321/822 1240/1292/818 1262/1314/6 +f 1242/1294/798 1269/1321/822 1262/1314/6 +f 1243/1295/6 1259/1311/6 1241/1293/797 +f 1259/1311/6 1273/1325/826 1241/1293/797 +f 1244/1296/799 1248/1300/803 1245/1297/800 +f 1247/1299/802 1250/1302/805 1248/1300/803 +f 1249/1301/804 1252/1304/807 1250/1302/805 +f 1251/1303/806 1255/1307/844 1252/1304/807 +f 1255/1307/810 1251/1303/845 1276/1328/845 +f 1275/1327/846 1260/1312/813 1253/1305/808 +f 1255/1307/810 1276/1328/845 1253/1305/808 +f 1276/1328/845 1275/1327/846 1253/1305/808 +f 1254/1306/809 1287/1339/847 1255/1307/810 +f 1257/1309/5 1263/1315/5 1283/1335/837 +f 1263/1315/5 1239/1291/5 1283/1335/837 +f 1239/1291/5 1238/1290/833 1281/1333/835 +f 1239/1291/5 1281/1333/835 1283/1335/837 +f 1254/1306/842 1253/1305/843 1256/1308/5 +f 1286/1338/840 1254/1306/842 1256/1308/5 +f 1258/1310/811 1286/1338/840 1256/1308/5 +f 1257/1309/5 1283/1335/837 1258/1310/811 +f 1259/1311/812 1256/1308/812 1253/1305/808 +f 1243/1295/814 1257/1309/814 1256/1308/812 +f 1261/1313/815 1263/1315/815 1257/1309/814 +f 1262/1314/796 1239/1291/796 1263/1315/815 +f 1246/1298/801 1245/1297/800 1264/1316/816 +f 1240/1292/818 1269/1321/822 1266/1318/819 +f 1267/1319/820 1266/1318/819 1265/1317/817 +f 1269/1321/822 1242/1294/798 1270/1322/823 +f 1266/1318/819 1270/1322/823 1246/1298/801 +f 1242/1294/798 1241/1293/797 1271/1323/824 +f 1270/1322/823 1271/1323/824 1244/1296/799 +f 1241/1293/797 1273/1325/826 1272/1324/825 +f 1271/1323/824 1272/1324/825 1247/1299/802 +f 1273/1325/826 1275/1327/828 1274/1326/827 +f 1274/1326/827 1249/1301/804 1247/1299/802 +f 1276/1328/829 1251/1303/806 1249/1301/804 +f 1264/1316/816 1279/1331/832 1277/1329/830 +f 1279/1331/832 1281/1333/835 1238/1290/833 +f 1245/1297/800 1280/1332/834 1279/1331/832 +f 1280/1332/834 1283/1335/837 1281/1333/835 +f 1248/1300/803 1282/1334/836 1280/1332/834 +f 1282/1334/836 1258/1310/811 1283/1335/837 +f 1250/1302/805 1284/1336/838 1282/1334/836 +f 1284/1336/838 1286/1338/840 1258/1310/811 +f 1250/1302/805 1252/1304/807 1285/1337/839 +f 1285/1337/839 1254/1306/842 1286/1338/840 +f 1252/1304/807 1255/1307/844 1287/1339/841 +f 1265/1317/817 1264/1316/816 1278/1330/831 +f 1288/1340/7 1289/1341/16 1290/1342/7 +f 1291/1343/16 1292/1344/5 1289/1341/16 +f 1293/1345/5 1294/1346/24 1292/1344/5 +f 1295/1347/24 1296/1348/4 1294/1346/24 +f 1296/1348/4 1297/1349/25 1298/1350/25 +f 1297/1349/25 1299/1351/6 1298/1350/25 +f 1300/1352/3 1301/1353/3 1293/1345/3 +f 1300/1352/6 1302/1354/17 1299/1351/6 +f 1303/1355/17 1290/1342/7 1302/1354/17 +f 1298/1350/1 1299/1351/1 1302/1354/1 +f 1288/1340/7 1291/1343/16 1289/1341/16 +f 1291/1343/16 1293/1345/5 1292/1344/5 +f 1293/1345/5 1295/1347/24 1294/1346/24 +f 1295/1347/24 1301/1353/4 1296/1348/4 +f 1296/1348/4 1301/1353/4 1297/1349/25 +f 1297/1349/25 1300/1352/6 1299/1351/6 +f 1293/1345/3 1291/1343/3 1288/1340/3 +f 1288/1340/3 1303/1355/3 1300/1352/3 +f 1300/1352/3 1297/1349/3 1301/1353/3 +f 1301/1353/3 1295/1347/3 1293/1345/3 +f 1293/1345/3 1288/1340/3 1300/1352/3 +f 1300/1352/6 1303/1355/17 1302/1354/17 +f 1303/1355/17 1288/1340/7 1290/1342/7 +f 1302/1354/1 1290/1342/1 1289/1341/1 +f 1289/1341/1 1292/1344/1 1302/1354/1 +f 1292/1344/1 1294/1346/1 1302/1354/1 +f 1294/1346/1 1296/1348/1 1302/1354/1 +f 1296/1348/1 1298/1350/1 1302/1354/1 +f 1356/1356/848 1357/1357/849 1358/1358/850 +f 1358/1358/850 1359/1359/851 1356/1356/848 +f 1360/1360/852 1361/1361/853 1359/1359/851 +f 1362/1362/6 1363/1363/854 1364/1364/6 +f 1365/1365/855 1366/1366/856 1367/1367/857 +f 1368/1368/858 1367/1367/857 1366/1366/856 +f 1369/1369/859 1350/101/859 1349/100/860 +f 1370/1370/5 1353/104/5 1352/103/5 +f 1364/1364/4 1371/1371/4 1362/1362/4 +f 1372/1372/861 1365/1365/862 1357/1357/863 +f 1356/1356/864 1368/1368/865 1366/1366/864 +f 1358/1358/866 1373/1373/867 1360/1360/868 +f 1359/1359/865 1369/1369/869 1368/1368/865 +f 1346/97/870 1355/106/871 1363/1363/872 +f 1363/1363/872 1355/106/871 1354/105/873 +f 1362/1362/3 1369/1369/869 1361/1361/869 +f 1357/1357/863 1367/1367/874 1358/1358/866 +f 1372/1372/875 1366/1366/864 1374/1374/875 +f 1356/1356/848 1372/1372/849 1357/1357/849 +f 1358/1358/850 1360/1360/852 1359/1359/851 +f 1360/1360/852 1363/1363/854 1361/1361/853 +f 1362/1362/6 1361/1361/853 1363/1363/854 +f 1365/1365/855 1374/1374/855 1366/1366/856 +f 1368/1368/858 1373/1373/876 1367/1367/857 +f 1349/100/860 1347/98/877 1373/1373/876 +f 1373/1373/876 1368/1368/858 1349/100/860 +f 1368/1368/858 1369/1369/859 1349/100/860 +f 1350/101/859 1369/1369/859 1352/103/5 +f 1369/1369/859 1371/1371/5 1352/103/5 +f 1371/1371/5 1370/1370/5 1352/103/5 +f 1364/1364/4 1370/1370/4 1371/1371/4 +f 1372/1372/861 1374/1374/861 1365/1365/862 +f 1356/1356/864 1359/1359/865 1368/1368/865 +f 1358/1358/866 1367/1367/874 1373/1373/867 +f 1359/1359/865 1361/1361/869 1369/1369/869 +f 1363/1363/872 1360/1360/868 1346/97/870 +f 1360/1360/868 1373/1373/867 1346/97/870 +f 1373/1373/867 1347/98/878 1346/97/870 +f 1353/104/879 1370/1370/1 1354/105/873 +f 1370/1370/1 1364/1364/1 1354/105/873 +f 1364/1364/1 1363/1363/872 1354/105/873 +f 1362/1362/3 1371/1371/3 1369/1369/869 +f 1357/1357/863 1365/1365/862 1367/1367/874 +f 1372/1372/875 1356/1356/864 1366/1366/864 o Lamp2 v 0.406250 1.020000 -0.418749 v 0.353217 1.020000 -0.396782 @@ -89,44 +6376,44 @@ vn 0.7071 0.0000 0.7071 vn 0.0000 0.0000 -1.0000 vn 0.7071 0.0000 -0.7071 s 1 -f 17/1/1 16/2/2 15/3/3 -f 20/4/4 13/5/5 19/6/6 -f 21/7/7 12/8/8 11/9/9 -f 23/10/10 10/11/11 9/12/12 -f 18/13/13 9/12/12 16/2/2 -f 17/1/1 14/14/14 20/4/4 -f 22/15/15 13/5/5 12/8/8 -f 21/7/7 10/11/11 24/16/16 -f 16/2/2 9/12/12 13/5/5 -f 3/17/17 24/18/16 2/19/18 -f 5/20/19 22/21/15 4/22/20 -f 7/23/21 20/24/4 6/25/22 -f 1/26/23 18/27/13 8/28/24 -f 2/29/18 23/30/10 1/26/23 -f 4/31/20 21/32/7 3/17/17 -f 6/33/22 19/34/6 5/20/19 -f 8/35/24 17/36/1 7/23/21 -f 17/1/1 18/13/13 16/2/2 -f 20/4/4 14/14/14 13/5/5 -f 21/7/7 22/15/15 12/8/8 -f 23/10/10 24/16/16 10/11/11 -f 18/13/13 23/10/10 9/12/12 -f 17/1/1 15/3/3 14/14/14 -f 22/15/15 19/6/6 13/5/5 -f 21/7/7 11/9/9 10/11/11 -f 9/12/12 10/11/11 11/9/9 -f 11/9/9 12/8/8 9/12/12 -f 12/8/8 13/5/5 9/12/12 -f 13/5/5 14/14/14 15/3/3 -f 15/3/3 16/2/2 13/5/5 -f 3/17/17 21/32/7 24/18/16 -f 5/20/19 19/34/6 22/21/15 -f 7/23/21 17/36/1 20/24/4 -f 1/26/23 23/30/10 18/27/13 -f 2/29/18 24/37/16 23/30/10 -f 4/31/20 22/38/15 21/32/7 -f 6/33/22 20/39/4 19/34/6 -f 8/35/24 18/27/13 17/36/1 +f 1391/1375/880 1390/1376/881 1389/1377/882 +f 1394/1378/883 1387/1379/884 1393/1380/885 +f 1395/1381/886 1386/1382/887 1385/1383/888 +f 1397/1384/889 1384/1385/890 1383/1386/891 +f 1392/1387/892 1383/1386/891 1390/1376/881 +f 1391/1375/880 1388/1388/893 1394/1378/883 +f 1396/1389/894 1387/1379/884 1386/1382/887 +f 1395/1381/886 1384/1385/890 1398/1390/895 +f 1390/1376/881 1383/1386/891 1387/1379/884 +f 1377/1391/896 1398/1392/895 1376/1393/897 +f 1379/1394/898 1396/1395/894 1378/1396/899 +f 1381/1397/900 1394/1398/883 1380/1399/901 +f 1375/1400/902 1392/1401/892 1382/1402/903 +f 1376/1403/897 1397/1404/889 1375/1400/902 +f 1378/1405/899 1395/1406/886 1377/1391/896 +f 1380/1407/901 1393/1408/885 1379/1394/898 +f 1382/1409/903 1391/1410/880 1381/1397/900 +f 1391/1375/880 1392/1387/892 1390/1376/881 +f 1394/1378/883 1388/1388/893 1387/1379/884 +f 1395/1381/886 1396/1389/894 1386/1382/887 +f 1397/1384/889 1398/1390/895 1384/1385/890 +f 1392/1387/892 1397/1384/889 1383/1386/891 +f 1391/1375/880 1389/1377/882 1388/1388/893 +f 1396/1389/894 1393/1380/885 1387/1379/884 +f 1395/1381/886 1385/1383/888 1384/1385/890 +f 1383/1386/891 1384/1385/890 1385/1383/888 +f 1385/1383/888 1386/1382/887 1383/1386/891 +f 1386/1382/887 1387/1379/884 1383/1386/891 +f 1387/1379/884 1388/1388/893 1389/1377/882 +f 1389/1377/882 1390/1376/881 1387/1379/884 +f 1377/1391/896 1395/1406/886 1398/1392/895 +f 1379/1394/898 1393/1408/885 1396/1395/894 +f 1381/1397/900 1391/1410/880 1394/1398/883 +f 1375/1400/902 1397/1404/889 1392/1401/892 +f 1376/1403/897 1398/1411/895 1397/1404/889 +f 1378/1405/899 1396/1412/894 1395/1406/886 +f 1380/1407/901 1394/1413/883 1393/1408/885 +f 1382/1409/903 1392/1401/892 1391/1410/880 o Lamp1 v 0.406250 1.020000 -0.168749 v 0.353217 1.020000 -0.146782 @@ -216,44 +6503,44 @@ vn 0.7071 0.0000 0.7071 vn 0.0000 0.0000 -1.0000 vn 0.7071 0.0000 -0.7071 s 1 -f 41/40/25 40/41/26 39/42/27 -f 44/43/28 37/44/29 43/45/30 -f 45/46/31 36/47/32 35/48/33 -f 48/49/34 33/50/35 47/51/36 -f 42/52/37 33/50/35 40/41/26 -f 41/40/25 38/53/38 44/43/28 -f 46/54/39 37/44/29 36/47/32 -f 45/46/31 34/55/40 48/49/34 -f 40/41/26 33/50/35 37/44/29 -f 27/56/41 48/57/34 26/58/42 -f 29/59/43 46/60/39 28/61/44 -f 31/62/45 44/63/28 30/64/46 -f 25/65/47 42/66/37 32/67/48 -f 26/68/42 47/69/36 25/65/47 -f 28/70/44 45/71/31 27/56/41 -f 30/72/46 43/73/30 29/59/43 -f 32/74/48 41/75/25 31/62/45 -f 41/40/25 42/52/37 40/41/26 -f 44/43/28 38/53/38 37/44/29 -f 45/46/31 46/54/39 36/47/32 -f 48/49/34 34/55/40 33/50/35 -f 42/52/37 47/51/36 33/50/35 -f 41/40/25 39/42/27 38/53/38 -f 46/54/39 43/45/30 37/44/29 -f 45/46/31 35/48/33 34/55/40 -f 33/50/35 34/55/40 35/48/33 -f 35/48/33 36/47/32 33/50/35 -f 36/47/32 37/44/29 33/50/35 -f 37/44/29 38/53/38 39/42/27 -f 39/42/27 40/41/26 37/44/29 -f 27/56/41 45/71/31 48/57/34 -f 29/59/43 43/73/30 46/60/39 -f 31/62/45 41/75/25 44/63/28 -f 25/65/47 47/69/36 42/66/37 -f 26/68/42 48/57/34 47/69/36 -f 28/70/44 46/76/39 45/71/31 -f 30/72/46 44/77/28 43/73/30 -f 32/74/48 42/78/37 41/75/25 +f 1415/1414/904 1414/1415/905 1413/1416/906 +f 1418/1417/907 1411/1418/908 1417/1419/909 +f 1419/1420/910 1410/1421/911 1409/1422/912 +f 1422/1423/913 1407/1424/914 1421/1425/915 +f 1416/1426/916 1407/1424/914 1414/1415/905 +f 1415/1414/904 1412/1427/917 1418/1417/907 +f 1420/1428/918 1411/1418/908 1410/1421/911 +f 1419/1420/910 1408/1429/919 1422/1423/913 +f 1414/1415/905 1407/1424/914 1411/1418/908 +f 1401/1430/920 1422/1431/913 1400/1432/921 +f 1403/1433/922 1420/1434/918 1402/1435/923 +f 1405/1436/924 1418/1437/907 1404/1438/925 +f 1399/1439/926 1416/1440/916 1406/1441/927 +f 1400/1442/921 1421/1443/915 1399/1439/926 +f 1402/1444/923 1419/1445/910 1401/1430/920 +f 1404/1446/925 1417/1447/909 1403/1433/922 +f 1406/1448/927 1415/1449/904 1405/1436/924 +f 1415/1414/904 1416/1426/916 1414/1415/905 +f 1418/1417/907 1412/1427/917 1411/1418/908 +f 1419/1420/910 1420/1428/918 1410/1421/911 +f 1422/1423/913 1408/1429/919 1407/1424/914 +f 1416/1426/916 1421/1425/915 1407/1424/914 +f 1415/1414/904 1413/1416/906 1412/1427/917 +f 1420/1428/918 1417/1419/909 1411/1418/908 +f 1419/1420/910 1409/1422/912 1408/1429/919 +f 1407/1424/914 1408/1429/919 1409/1422/912 +f 1409/1422/912 1410/1421/911 1407/1424/914 +f 1410/1421/911 1411/1418/908 1407/1424/914 +f 1411/1418/908 1412/1427/917 1413/1416/906 +f 1413/1416/906 1414/1415/905 1411/1418/908 +f 1401/1430/920 1419/1445/910 1422/1431/913 +f 1403/1433/922 1417/1447/909 1420/1434/918 +f 1405/1436/924 1415/1449/904 1418/1437/907 +f 1399/1439/926 1421/1443/915 1416/1440/916 +f 1400/1442/921 1422/1431/913 1421/1443/915 +f 1402/1444/923 1420/1450/918 1419/1445/910 +f 1404/1446/925 1418/1451/907 1417/1447/909 +f 1406/1448/927 1416/1452/916 1415/1449/904 o Meter2 v 0.000000 1.250000 0.218750 v 0.000000 1.272097 0.227903 @@ -317,31 +6604,31 @@ vn 0.0000 0.3827 0.9239 vn 0.0000 0.3827 -0.9239 vn 0.0000 -0.3827 -0.9239 s off -f 60/79/49 62/80/49 61/81/49 -f 60/79/49 59/82/49 58/83/49 -f 66/84/49 63/85/49 64/86/49 -f 65/87/49 66/84/49 64/86/49 -f 54/88/50 63/89/50 53/90/50 -f 52/91/51 61/92/51 57/93/51 -f 57/94/52 62/95/52 51/96/52 -f 55/97/53 64/98/53 54/88/53 -f 51/99/54 58/100/54 50/101/54 -f 56/102/55 65/103/55 55/104/55 -f 53/90/56 60/105/56 52/91/56 -f 50/101/57 59/106/57 49/107/57 -f 49/107/58 66/108/58 56/102/58 -f 60/79/49 58/83/49 62/80/49 -f 60/79/49 63/85/49 59/82/49 -f 66/84/49 59/82/49 63/85/49 -f 54/88/50 64/98/50 63/89/50 -f 52/91/51 60/105/51 61/92/51 -f 57/94/52 61/109/52 62/95/52 -f 55/97/53 65/110/53 64/98/53 -f 51/99/54 62/111/54 58/100/54 -f 56/102/55 66/108/55 65/103/55 -f 53/90/56 63/89/56 60/105/56 -f 50/101/57 58/100/57 59/106/57 -f 49/107/58 59/106/58 66/108/58 +f 1434/1453/928 1436/1454/928 1435/1455/928 +f 1434/1453/928 1433/1456/928 1432/1457/928 +f 1440/1458/928 1437/1459/928 1438/1460/928 +f 1439/1461/928 1440/1458/928 1438/1460/928 +f 1428/1462/929 1437/1463/929 1427/1464/929 +f 1426/1465/930 1435/1466/930 1431/1467/930 +f 1431/1468/931 1436/1469/931 1425/1470/931 +f 1429/1471/932 1438/1472/932 1428/1462/932 +f 1425/1473/933 1432/1474/933 1424/1475/933 +f 1430/1476/934 1439/1477/934 1429/1478/934 +f 1427/1464/935 1434/1479/935 1426/1465/935 +f 1424/1475/936 1433/1480/936 1423/1481/936 +f 1423/1481/937 1440/1482/937 1430/1476/937 +f 1434/1453/928 1432/1457/928 1436/1454/928 +f 1434/1453/928 1437/1459/928 1433/1456/928 +f 1440/1458/928 1433/1456/928 1437/1459/928 +f 1428/1462/929 1438/1472/929 1437/1463/929 +f 1426/1465/930 1434/1479/930 1435/1466/930 +f 1431/1468/931 1435/1483/931 1436/1469/931 +f 1429/1471/932 1439/1484/932 1438/1472/932 +f 1425/1473/933 1436/1485/933 1432/1474/933 +f 1430/1476/934 1440/1482/934 1439/1477/934 +f 1427/1464/935 1437/1463/935 1434/1479/935 +f 1424/1475/936 1432/1474/936 1433/1480/936 +f 1423/1481/937 1433/1480/937 1440/1482/937 o Joystick v 0.750000 1.042097 -0.022096 v 0.750000 1.020000 -0.031249 @@ -567,115 +6854,115 @@ vn 0.0000 -0.6302 0.7764 vn -0.5532 0.8330 0.0000 vn 0.0000 0.8330 0.5532 s 1 -f 68/112/59 72/113/60 69/114/61 -f 67/115/62 83/116/63 70/117/64 -f 79/118/65 69/114/61 72/113/60 -f 67/115/62 71/119/66 68/112/59 -f 72/113/60 74/120/67 75/121/68 -f 70/117/64 83/122/63 73/123/69 -f 79/124/65 72/113/60 75/121/68 -f 71/119/66 73/123/69 74/120/67 -f 75/121/68 77/125/70 78/126/71 -f 73/123/69 83/127/63 76/128/72 -f 79/129/65 75/121/68 78/126/71 -f 73/123/69 77/125/70 74/120/67 -f 77/125/70 82/130/73 78/126/71 -f 76/128/72 83/131/63 80/132/74 -f 79/133/65 78/126/71 82/130/73 -f 77/125/70 80/132/74 81/134/75 -f 81/134/75 86/135/76 82/130/73 -f 80/132/74 83/136/63 84/137/77 -f 79/138/65 82/130/73 86/135/76 -f 81/134/75 84/137/77 85/139/78 -f 86/135/76 88/140/79 89/141/80 -f 84/137/77 83/142/63 87/143/81 -f 79/144/65 86/135/76 89/141/80 -f 84/137/77 88/140/79 85/139/78 -f 87/145/81 91/146/82 88/147/79 -f 89/148/80 91/146/82 92/149/83 -f 87/145/81 83/150/63 90/151/84 -f 79/152/65 89/148/80 92/149/83 -f 79/153/65 92/149/83 69/114/61 -f 90/151/84 68/112/59 91/146/82 -f 91/146/82 69/114/61 92/149/83 -f 90/151/84 83/154/63 67/115/62 -f 123/155/85 125/156/86 127/157/87 -f 119/158/88 116/159/89 115/160/90 -f 96/161/59 97/162/66 95/163/59 -f 122/164/91 127/165/87 128/166/92 -f 124/167/93 111/168/94 93/169/95 -f 98/170/66 99/171/67 97/162/66 -f 121/172/96 130/173/97 120/174/98 -f 120/174/98 115/175/90 114/176/99 -f 100/177/67 101/178/70 99/171/67 -f 117/179/100 125/180/86 124/167/93 -f 118/181/101 94/182/102 116/159/89 -f 102/183/70 103/184/75 101/178/70 -f 117/179/100 132/185/103 126/186/104 -f 123/155/85 112/187/105 111/168/94 -f 104/188/75 105/189/78 103/184/75 -f 127/190/87 125/191/86 130/192/97 -f 122/164/91 113/193/106 112/187/105 -f 106/194/78 107/195/79 105/189/78 -f 112/196/105 114/197/99 116/159/89 -f 117/179/100 93/169/95 94/182/102 -f 108/198/79 109/199/82 107/200/79 -f 120/174/98 131/201/107 119/202/88 -f 121/172/96 114/176/99 113/193/106 -f 110/203/82 95/163/59 109/199/82 -f 121/172/96 128/204/92 129/205/108 -f 119/158/88 132/206/103 118/181/101 -f 68/112/59 71/119/66 72/113/60 -f 67/115/62 70/117/64 71/119/66 -f 72/113/60 71/119/66 74/120/67 -f 71/119/66 70/117/64 73/123/69 -f 75/121/68 74/120/67 77/125/70 -f 73/123/69 76/128/72 77/125/70 -f 77/125/70 81/134/75 82/130/73 -f 77/125/70 76/128/72 80/132/74 -f 81/134/75 85/139/78 86/135/76 -f 81/134/75 80/132/74 84/137/77 -f 86/135/76 85/139/78 88/140/79 -f 84/137/77 87/143/81 88/140/79 -f 87/145/81 90/151/84 91/146/82 -f 89/148/80 88/147/79 91/146/82 -f 90/151/84 67/115/62 68/112/59 -f 91/146/82 68/112/59 69/114/61 -f 123/155/85 124/167/93 125/156/86 -f 119/158/88 118/181/101 116/159/89 -f 96/161/59 98/170/66 97/162/66 -f 122/164/91 123/155/85 127/165/87 -f 124/167/93 123/155/85 111/168/94 -f 98/170/66 100/177/67 99/171/67 -f 121/172/96 129/207/108 130/173/97 -f 120/174/98 119/202/88 115/175/90 -f 100/177/67 102/183/70 101/178/70 -f 117/179/100 126/208/104 125/180/86 -f 118/181/101 117/179/100 94/182/102 -f 102/183/70 104/188/75 103/184/75 -f 117/179/100 118/181/101 132/185/103 -f 123/155/85 122/164/91 112/187/105 -f 104/188/75 106/194/78 105/189/78 -f 125/191/86 126/209/104 130/192/97 -f 126/209/104 132/210/103 130/192/97 -f 132/210/103 131/201/107 130/192/97 -f 130/192/97 129/211/108 128/212/92 -f 128/212/92 127/190/87 130/192/97 -f 122/164/91 121/172/96 113/193/106 -f 106/194/78 108/213/79 107/195/79 -f 116/159/89 94/214/102 93/215/95 -f 93/215/95 111/216/94 116/159/89 -f 111/216/94 112/196/105 116/159/89 -f 112/196/105 113/217/106 114/197/99 -f 114/197/99 115/160/90 116/159/89 -f 117/179/100 124/167/93 93/169/95 -f 108/198/79 110/203/82 109/199/82 -f 120/174/98 130/192/97 131/201/107 -f 121/172/96 120/174/98 114/176/99 -f 110/203/82 96/161/59 95/163/59 -f 121/172/96 122/164/91 128/204/92 -f 119/158/88 131/218/107 132/206/103 -o Shotgun +f 1442/1486/938 1446/1487/939 1443/1488/940 +f 1441/1489/941 1457/1490/942 1444/1491/943 +f 1453/1492/944 1443/1488/940 1446/1487/939 +f 1441/1489/941 1445/1493/945 1442/1486/938 +f 1446/1487/939 1448/1494/946 1449/1495/947 +f 1444/1491/943 1457/1496/942 1447/1497/948 +f 1453/1498/944 1446/1487/939 1449/1495/947 +f 1445/1493/945 1447/1497/948 1448/1494/946 +f 1449/1495/947 1451/1499/949 1452/1500/950 +f 1447/1497/948 1457/1501/942 1450/1502/951 +f 1453/1503/944 1449/1495/947 1452/1500/950 +f 1447/1497/948 1451/1499/949 1448/1494/946 +f 1451/1499/949 1456/1504/952 1452/1500/950 +f 1450/1502/951 1457/1505/942 1454/1506/953 +f 1453/1507/944 1452/1500/950 1456/1504/952 +f 1451/1499/949 1454/1506/953 1455/1508/954 +f 1455/1508/954 1460/1509/955 1456/1504/952 +f 1454/1506/953 1457/1510/942 1458/1511/956 +f 1453/1512/944 1456/1504/952 1460/1509/955 +f 1455/1508/954 1458/1511/956 1459/1513/957 +f 1460/1509/955 1462/1514/958 1463/1515/959 +f 1458/1511/956 1457/1516/942 1461/1517/960 +f 1453/1518/944 1460/1509/955 1463/1515/959 +f 1458/1511/956 1462/1514/958 1459/1513/957 +f 1461/1519/960 1465/1520/961 1462/1521/958 +f 1463/1522/959 1465/1520/961 1466/1523/962 +f 1461/1519/960 1457/1524/942 1464/1525/963 +f 1453/1526/944 1463/1522/959 1466/1523/962 +f 1453/1527/944 1466/1523/962 1443/1488/940 +f 1464/1525/963 1442/1486/938 1465/1520/961 +f 1465/1520/961 1443/1488/940 1466/1523/962 +f 1464/1525/963 1457/1528/942 1441/1489/941 +f 1497/1529/964 1499/1530/965 1501/1531/966 +f 1493/1532/967 1490/1533/968 1489/1534/969 +f 1470/1535/938 1471/1536/945 1469/1537/938 +f 1496/1538/970 1501/1539/966 1502/1540/971 +f 1498/1541/972 1485/1542/973 1467/1543/974 +f 1472/1544/945 1473/1545/946 1471/1536/945 +f 1495/1546/975 1504/1547/976 1494/1548/977 +f 1494/1548/977 1489/1549/969 1488/1550/978 +f 1474/1551/946 1475/1552/949 1473/1545/946 +f 1491/1553/979 1499/1554/965 1498/1541/972 +f 1492/1555/980 1468/1556/981 1490/1533/968 +f 1476/1557/949 1477/1558/954 1475/1552/949 +f 1491/1553/979 1506/1559/982 1500/1560/983 +f 1497/1529/964 1486/1561/984 1485/1542/973 +f 1478/1562/954 1479/1563/957 1477/1558/954 +f 1501/1564/966 1499/1565/965 1504/1566/976 +f 1496/1538/970 1487/1567/985 1486/1561/984 +f 1480/1568/957 1481/1569/958 1479/1563/957 +f 1486/1570/984 1488/1571/978 1490/1533/968 +f 1491/1553/979 1467/1543/974 1468/1556/981 +f 1482/1572/958 1483/1573/961 1481/1574/958 +f 1494/1548/977 1505/1575/986 1493/1576/967 +f 1495/1546/975 1488/1550/978 1487/1567/985 +f 1484/1577/961 1469/1537/938 1483/1573/961 +f 1495/1546/975 1502/1578/971 1503/1579/987 +f 1493/1532/967 1506/1580/982 1492/1555/980 +f 1442/1486/938 1445/1493/945 1446/1487/939 +f 1441/1489/941 1444/1491/943 1445/1493/945 +f 1446/1487/939 1445/1493/945 1448/1494/946 +f 1445/1493/945 1444/1491/943 1447/1497/948 +f 1449/1495/947 1448/1494/946 1451/1499/949 +f 1447/1497/948 1450/1502/951 1451/1499/949 +f 1451/1499/949 1455/1508/954 1456/1504/952 +f 1451/1499/949 1450/1502/951 1454/1506/953 +f 1455/1508/954 1459/1513/957 1460/1509/955 +f 1455/1508/954 1454/1506/953 1458/1511/956 +f 1460/1509/955 1459/1513/957 1462/1514/958 +f 1458/1511/956 1461/1517/960 1462/1514/958 +f 1461/1519/960 1464/1525/963 1465/1520/961 +f 1463/1522/959 1462/1521/958 1465/1520/961 +f 1464/1525/963 1441/1489/941 1442/1486/938 +f 1465/1520/961 1442/1486/938 1443/1488/940 +f 1497/1529/964 1498/1541/972 1499/1530/965 +f 1493/1532/967 1492/1555/980 1490/1533/968 +f 1470/1535/938 1472/1544/945 1471/1536/945 +f 1496/1538/970 1497/1529/964 1501/1539/966 +f 1498/1541/972 1497/1529/964 1485/1542/973 +f 1472/1544/945 1474/1551/946 1473/1545/946 +f 1495/1546/975 1503/1581/987 1504/1547/976 +f 1494/1548/977 1493/1576/967 1489/1549/969 +f 1474/1551/946 1476/1557/949 1475/1552/949 +f 1491/1553/979 1500/1582/983 1499/1554/965 +f 1492/1555/980 1491/1553/979 1468/1556/981 +f 1476/1557/949 1478/1562/954 1477/1558/954 +f 1491/1553/979 1492/1555/980 1506/1559/982 +f 1497/1529/964 1496/1538/970 1486/1561/984 +f 1478/1562/954 1480/1568/957 1479/1563/957 +f 1499/1565/965 1500/1583/983 1504/1566/976 +f 1500/1583/983 1506/1584/982 1504/1566/976 +f 1506/1584/982 1505/1575/986 1504/1566/976 +f 1504/1566/976 1503/1585/987 1502/1586/971 +f 1502/1586/971 1501/1564/966 1504/1566/976 +f 1496/1538/970 1495/1546/975 1487/1567/985 +f 1480/1568/957 1482/1587/958 1481/1569/958 +f 1490/1533/968 1468/1588/981 1467/1589/974 +f 1467/1589/974 1485/1590/973 1490/1533/968 +f 1485/1590/973 1486/1570/984 1490/1533/968 +f 1486/1570/984 1487/1591/985 1488/1571/978 +f 1488/1571/978 1489/1534/969 1490/1533/968 +f 1491/1553/979 1498/1541/972 1467/1543/974 +f 1482/1572/958 1484/1577/961 1483/1573/961 +f 1494/1548/977 1504/1566/976 1505/1575/986 +f 1495/1546/975 1494/1548/977 1488/1550/978 +f 1484/1577/961 1470/1535/938 1469/1537/938 +f 1495/1546/975 1496/1538/970 1502/1578/971 +f 1493/1532/967 1505/1592/986 1506/1580/982 +o Shotgun1 v 0.583272 1.027674 -1.302697 v 0.578802 1.019935 -1.299444 v 0.583413 1.018165 -1.302630 @@ -1261,279 +7548,279 @@ vn -0.7199 -0.6428 0.2620 vn 0.3127 0.9430 -0.1138 vn 0.4257 0.0000 0.9049 s off -f 133/219/109 134/220/109 135/221/109 -f 135/221/109 136/222/109 133/219/109 -f 133/219/110 137/223/110 134/220/110 -f 193/224/111 194/225/111 195/226/111 -f 196/227/112 197/228/112 198/229/112 -f 199/230/111 200/231/111 201/232/111 -f 202/233/112 203/234/112 204/235/112 -f 205/236/113 206/237/113 204/238/113 -f 207/239/111 208/240/111 209/241/111 -f 210/242/111 211/243/111 212/244/111 -f 213/245/111 214/246/111 215/247/111 -f 216/248/112 217/249/112 218/250/112 -f 219/251/111 220/252/111 221/253/111 -f 222/254/111 223/255/111 220/252/111 -f 221/253/111 193/224/111 195/226/111 -f 194/225/111 224/256/111 195/226/111 -f 195/226/111 219/251/111 221/253/111 -f 223/255/111 221/253/111 220/252/111 -f 225/257/112 226/258/112 227/259/112 -f 227/259/112 228/260/112 198/229/112 -f 196/227/112 229/261/112 230/262/112 -f 230/262/112 197/228/112 196/227/112 -f 198/229/112 225/257/112 227/259/112 -f 228/260/112 196/227/112 198/229/112 -f 231/263/111 206/264/111 201/232/111 -f 205/265/111 232/266/111 199/230/111 -f 233/267/111 199/230/111 232/266/111 -f 200/231/111 234/268/111 201/232/111 -f 201/232/111 206/264/111 205/265/111 -f 205/265/111 199/230/111 201/232/111 -f 235/269/112 204/235/112 203/234/112 -f 236/270/112 237/271/112 202/233/112 -f 202/233/112 238/272/112 239/273/112 -f 239/273/112 203/234/112 202/233/112 -f 240/274/112 235/269/112 203/234/112 -f 236/270/112 202/233/112 204/235/112 -f 240/275/114 233/276/114 235/277/114 -f 232/278/115 205/236/115 204/238/115 -f 206/237/116 231/279/116 237/280/116 -f 237/280/117 236/281/117 206/237/117 -f 235/277/118 233/276/118 232/278/118 -f 206/237/119 236/281/119 204/238/119 -f 204/238/120 235/277/120 232/278/120 -f 241/282/111 242/283/111 209/241/111 -f 243/284/111 244/285/111 242/283/111 -f 245/286/111 207/239/111 244/285/111 -f 208/240/111 246/287/111 209/241/111 -f 209/241/111 242/283/111 244/285/111 -f 244/285/111 207/239/111 209/241/111 -f 247/288/111 248/289/111 212/244/111 -f 210/242/111 249/290/111 250/291/111 -f 250/291/111 251/292/111 210/242/111 -f 252/293/111 211/243/111 210/242/111 -f 212/244/111 248/289/111 210/242/111 -f 210/242/111 251/292/111 252/293/111 -f 253/294/111 254/295/111 255/296/111 -f 256/297/111 257/298/111 254/295/111 -f 255/296/111 213/245/111 215/247/111 -f 214/246/111 258/299/111 215/247/111 -f 215/247/111 253/294/111 255/296/111 -f 257/298/111 255/296/111 254/295/111 -f 259/300/112 260/301/112 261/302/112 -f 261/302/112 262/303/112 218/250/112 -f 216/248/112 263/304/112 264/305/112 -f 264/305/112 217/249/112 216/248/112 -f 218/250/112 259/300/112 261/302/112 -f 262/303/112 216/248/112 218/250/112 +f 1507/1593/988 1508/1594/988 1509/1595/988 +f 1509/1595/988 1510/1596/988 1507/1593/988 +f 1507/1593/989 1511/1597/989 1508/1594/989 +f 1567/1598/990 1568/1599/990 1569/1600/990 +f 1570/1601/991 1571/1602/991 1572/1603/991 +f 1573/1604/990 1574/1605/990 1575/1606/990 +f 1576/1607/991 1577/1608/991 1578/1609/991 +f 1579/1610/992 1580/1611/992 1578/1612/992 +f 1581/1613/990 1582/1614/990 1583/1615/990 +f 1584/1616/990 1585/1617/990 1586/1618/990 +f 1587/1619/990 1588/1620/990 1589/1621/990 +f 1590/1622/991 1591/1623/991 1592/1624/991 +f 1593/1625/990 1594/1626/990 1595/1627/990 +f 1596/1628/990 1597/1629/990 1594/1626/990 +f 1595/1627/990 1567/1598/990 1569/1600/990 +f 1568/1599/990 1598/1630/990 1569/1600/990 +f 1569/1600/990 1593/1625/990 1595/1627/990 +f 1597/1629/990 1595/1627/990 1594/1626/990 +f 1599/1631/991 1600/1632/991 1601/1633/991 +f 1601/1633/991 1602/1634/991 1572/1603/991 +f 1570/1601/991 1603/1635/991 1604/1636/991 +f 1604/1636/991 1571/1602/991 1570/1601/991 +f 1572/1603/991 1599/1631/991 1601/1633/991 +f 1602/1634/991 1570/1601/991 1572/1603/991 +f 1605/1637/990 1580/1638/990 1575/1606/990 +f 1579/1639/990 1606/1640/990 1573/1604/990 +f 1607/1641/990 1573/1604/990 1606/1640/990 +f 1574/1605/990 1608/1642/990 1575/1606/990 +f 1575/1606/990 1580/1638/990 1579/1639/990 +f 1579/1639/990 1573/1604/990 1575/1606/990 +f 1609/1643/991 1578/1609/991 1577/1608/991 +f 1610/1644/991 1611/1645/991 1576/1607/991 +f 1576/1607/991 1612/1646/991 1613/1647/991 +f 1613/1647/991 1577/1608/991 1576/1607/991 +f 1614/1648/991 1609/1643/991 1577/1608/991 +f 1610/1644/991 1576/1607/991 1578/1609/991 +f 1614/1649/993 1607/1650/993 1609/1651/993 +f 1606/1652/994 1579/1610/994 1578/1612/994 +f 1580/1611/995 1605/1653/995 1611/1654/995 +f 1611/1654/996 1610/1655/996 1580/1611/996 +f 1609/1651/997 1607/1650/997 1606/1652/997 +f 1580/1611/998 1610/1655/998 1578/1612/998 +f 1578/1612/999 1609/1651/999 1606/1652/999 +f 1615/1656/990 1616/1657/990 1583/1615/990 +f 1617/1658/990 1618/1659/990 1616/1657/990 +f 1619/1660/990 1581/1613/990 1618/1659/990 +f 1582/1614/990 1620/1661/990 1583/1615/990 +f 1583/1615/990 1616/1657/990 1618/1659/990 +f 1618/1659/990 1581/1613/990 1583/1615/990 +f 1621/1662/990 1622/1663/990 1586/1618/990 +f 1584/1616/990 1623/1664/990 1624/1665/990 +f 1624/1665/990 1625/1666/990 1584/1616/990 +f 1626/1667/990 1585/1617/990 1584/1616/990 +f 1586/1618/990 1622/1663/990 1584/1616/990 +f 1584/1616/990 1625/1666/990 1626/1667/990 +f 1627/1668/990 1628/1669/990 1629/1670/990 +f 1630/1671/990 1631/1672/990 1628/1669/990 +f 1629/1670/990 1587/1619/990 1589/1621/990 +f 1588/1620/990 1632/1673/990 1589/1621/990 +f 1589/1621/990 1627/1668/990 1629/1670/990 +f 1631/1672/990 1629/1670/990 1628/1669/990 +f 1633/1674/991 1634/1675/991 1635/1676/991 +f 1635/1676/991 1636/1677/991 1592/1624/991 +f 1590/1622/991 1637/1678/991 1638/1679/991 +f 1638/1679/991 1591/1623/991 1590/1622/991 +f 1592/1624/991 1633/1674/991 1635/1676/991 +f 1636/1677/991 1590/1622/991 1592/1624/991 s 1 -f 138/306/121 139/307/122 140/308/123 -f 141/309/124 138/306/121 142/310/125 -f 143/311/126 142/310/125 144/312/127 -f 145/313/128 146/314/128 147/315/129 -f 148/316/130 149/317/131 150/318/132 -f 151/319/133 152/320/134 153/321/135 -f 154/322/136 140/308/123 139/307/122 -f 153/323/135 152/324/134 155/325/137 -f 149/317/131 148/316/130 156/326/138 -f 157/327/139 155/328/137 158/329/140 -f 159/330/141 160/331/142 133/332/142 -f 133/332/142 160/331/142 161/333/143 -f 137/334/144 161/333/143 162/335/145 -f 162/335/145 163/336/146 135/337/146 -f 135/337/146 163/336/146 159/338/141 -f 164/339/147 165/340/148 166/341/149 -f 165/340/148 167/342/150 168/343/151 -f 167/342/150 169/344/152 170/345/153 -f 170/345/153 169/344/152 171/346/154 -f 172/347/155 171/346/154 164/348/147 -f 173/349/156 174/350/157 165/351/148 -f 174/350/157 175/352/158 167/342/150 -f 175/352/158 176/353/159 169/344/152 -f 169/344/152 176/353/159 177/354/160 -f 171/355/154 177/354/160 173/356/156 -f 178/357/161 179/358/162 180/359/163 -f 181/360/164 180/359/163 182/361/165 -f 182/361/165 183/362/166 184/363/167 -f 183/362/166 185/364/168 186/365/169 -f 185/364/168 179/366/162 178/367/161 -f 179/368/162 187/369/170 166/370/149 -f 180/371/163 166/370/149 168/343/151 -f 168/343/151 170/345/153 183/362/166 -f 170/345/153 172/372/155 185/373/168 -f 172/372/155 187/374/170 179/375/162 -f 140/308/123 154/322/136 188/376/171 -f 138/306/121 140/308/123 142/310/125 -f 189/377/172 142/378/173 140/379/173 -f 188/380/173 151/319/133 140/379/173 -f 151/319/133 189/377/172 140/379/173 -f 150/318/132 146/314/128 145/313/128 -f 189/381/174 153/382/175 148/383/176 -f 190/384/177 191/385/178 188/376/171 -f 150/386/179 188/376/171 191/385/178 -f 150/386/179 149/387/180 151/388/181 -f 143/311/126 141/309/124 142/310/125 -f 145/389/182 143/311/126 144/312/127 -f 144/390/183 148/316/130 150/318/132 -f 189/377/172 151/319/133 153/321/135 -f 157/391/139 153/323/135 155/325/137 -f 158/329/140 149/317/131 156/326/138 -f 156/326/138 157/327/139 158/329/140 -f 136/392/184 159/330/141 133/332/142 -f 137/334/144 133/332/142 161/333/143 -f 134/393/145 137/334/144 162/335/145 -f 134/393/145 162/335/145 135/337/146 -f 136/394/184 135/337/146 159/338/141 -f 187/395/170 164/339/147 166/341/149 -f 166/341/149 165/340/148 168/343/151 -f 168/343/151 167/342/150 170/345/153 -f 172/347/155 170/345/153 171/346/154 -f 187/396/170 172/347/155 164/348/147 -f 164/397/147 173/349/156 165/351/148 -f 165/351/148 174/350/157 167/342/150 -f 167/342/150 175/352/158 169/344/152 -f 171/355/154 169/344/152 177/354/160 -f 164/398/147 171/355/154 173/356/156 -f 181/360/164 178/357/161 180/359/163 -f 192/399/185 181/360/164 182/361/165 -f 192/399/185 182/361/165 184/363/167 -f 184/363/167 183/362/166 186/365/169 -f 186/365/169 185/364/168 178/367/161 -f 180/371/163 179/368/162 166/370/149 -f 182/361/165 180/371/163 168/343/151 -f 182/361/165 168/343/151 183/362/166 -f 183/362/166 170/345/153 185/373/168 -f 185/373/168 172/372/155 179/375/162 -f 144/390/183 150/318/132 145/313/128 -f 148/383/176 144/312/127 189/381/174 -f 142/310/125 189/381/174 144/312/127 -f 153/382/175 157/400/186 148/383/176 -f 156/401/186 148/383/176 157/400/186 -f 154/322/136 190/384/177 188/376/171 -f 146/402/187 150/386/179 191/385/178 -f 152/403/188 151/388/181 149/387/180 -f 188/376/171 150/386/179 151/388/181 -f 149/387/180 158/404/189 155/405/189 -f 155/405/189 152/403/188 149/387/180 -f 222/406/173 220/407/190 227/408/190 -f 220/407/190 219/409/191 228/410/191 -f 219/409/191 195/411/192 196/412/192 -f 195/411/192 224/413/193 229/414/193 -f 224/413/193 194/415/194 230/416/194 -f 194/415/194 193/417/195 197/418/195 -f 193/417/195 221/419/196 198/420/196 -f 221/419/196 223/421/197 225/422/197 -f 223/421/197 222/423/173 226/424/173 -f 231/425/198 201/426/199 202/427/199 -f 201/426/199 234/428/200 238/429/200 -f 234/428/200 200/430/201 239/431/201 -f 200/430/201 199/432/202 203/433/202 -f 199/432/202 233/434/203 240/435/203 -f 265/436/173 243/437/173 242/438/204 -f 242/438/204 241/439/205 266/440/205 -f 241/439/205 209/441/206 267/442/206 -f 209/441/206 246/443/207 268/444/207 -f 246/443/207 208/445/208 269/446/208 -f 269/446/208 208/445/208 207/447/209 -f 270/448/209 207/447/209 245/449/210 -f 271/450/210 245/449/210 244/451/211 -f 244/451/211 243/452/173 265/453/173 -f 146/402/187 191/385/178 272/454/212 -f 272/454/212 143/311/126 145/389/182 -f 190/384/177 273/455/213 272/454/212 -f 272/454/212 273/455/213 141/309/124 -f 274/456/214 275/457/215 154/322/136 -f 275/457/215 276/458/216 190/384/177 -f 276/458/216 277/459/217 273/455/213 -f 273/455/213 277/459/217 278/460/218 -f 141/309/124 278/460/218 279/461/219 -f 138/306/121 279/461/219 274/456/214 -f 280/462/173 281/463/220 275/457/215 -f 281/463/220 282/464/221 276/458/216 -f 282/464/221 283/465/170 277/459/217 -f 277/459/217 283/465/170 284/466/222 -f 278/460/218 284/466/222 285/467/223 -f 279/461/219 285/467/223 280/462/173 -f 210/468/173 248/469/204 286/470/224 -f 248/469/204 247/471/205 287/472/205 -f 247/471/205 212/473/225 288/474/225 -f 212/473/225 211/475/207 289/476/207 -f 211/475/207 252/477/208 290/478/208 -f 252/477/208 251/479/226 291/480/226 -f 251/479/226 250/481/210 292/482/210 -f 250/481/210 249/483/227 293/484/211 -f 249/483/227 210/485/173 294/486/173 -f 256/487/173 254/488/190 261/489/190 -f 254/488/190 253/490/191 262/491/191 -f 253/490/191 215/492/228 216/493/228 -f 215/492/228 258/494/193 263/495/193 -f 258/494/193 214/496/194 264/497/194 -f 214/496/194 213/498/195 217/499/195 -f 213/498/195 255/500/196 218/501/196 -f 218/501/196 255/500/196 257/502/197 -f 259/503/197 257/502/197 256/504/173 -f 226/505/173 222/406/173 227/408/190 -f 227/408/190 220/407/190 228/410/191 -f 228/410/191 219/409/191 196/412/192 -f 196/412/192 195/411/192 229/414/193 -f 229/414/193 224/413/193 230/416/194 -f 230/416/194 194/415/194 197/418/195 -f 197/418/195 193/417/195 198/420/196 -f 198/420/196 221/419/196 225/422/197 -f 225/422/197 223/421/197 226/424/173 -f 237/506/198 231/425/198 202/427/199 -f 202/427/199 201/426/199 238/429/200 -f 238/429/200 234/428/200 239/431/201 -f 239/431/201 200/430/201 203/433/202 -f 203/433/202 199/432/202 240/435/203 -f 295/507/204 265/436/173 242/438/204 -f 295/507/204 242/438/204 266/440/205 -f 266/440/205 241/439/205 267/442/206 -f 267/442/206 209/441/206 268/444/207 -f 268/444/207 246/443/207 269/446/208 -f 270/448/209 269/446/208 207/447/209 -f 271/450/210 270/448/209 245/449/210 -f 296/508/211 271/450/210 244/451/211 -f 296/508/211 244/451/211 265/453/173 -f 147/509/229 146/402/187 272/454/212 -f 147/509/229 272/454/212 145/389/182 -f 191/385/178 190/384/177 272/454/212 -f 143/311/126 272/454/212 141/309/124 -f 139/307/122 274/456/214 154/322/136 -f 154/322/136 275/457/215 190/384/177 -f 190/384/177 276/458/216 273/455/213 -f 141/309/124 273/455/213 278/460/218 -f 138/306/121 141/309/124 279/461/219 -f 139/307/122 138/306/121 274/456/214 -f 274/456/214 280/462/173 275/457/215 -f 275/457/215 281/463/220 276/458/216 -f 276/458/216 282/464/221 277/459/217 -f 278/460/218 277/459/217 284/466/222 -f 279/461/219 278/460/218 285/467/223 -f 274/456/214 279/461/219 280/462/173 -f 294/510/173 210/468/173 286/470/224 -f 286/470/224 248/469/204 287/472/205 -f 287/472/205 247/471/205 288/474/225 -f 288/474/225 212/473/225 289/476/207 -f 289/476/207 211/475/207 290/478/208 -f 290/478/208 252/477/208 291/480/226 -f 291/480/226 251/479/226 292/482/210 -f 292/482/210 250/481/210 293/484/211 -f 293/484/211 249/483/227 294/486/173 -f 260/511/173 256/487/173 261/489/190 -f 261/489/190 254/488/190 262/491/191 -f 262/491/191 253/490/191 216/493/228 -f 216/493/228 215/492/228 263/495/193 -f 263/495/193 258/494/193 264/497/194 -f 264/497/194 214/496/194 217/499/195 -f 217/499/195 213/498/195 218/501/196 -f 259/503/197 218/501/196 257/502/197 -f 260/512/173 259/503/197 256/504/173 -l 300 301 -l 297 298 -l 297 299 +f 1512/1680/1000 1513/1681/1001 1514/1682/1002 +f 1515/1683/1003 1512/1680/1000 1516/1684/1004 +f 1517/1685/1005 1516/1684/1004 1518/1686/1006 +f 1519/1687/1007 1520/1688/1007 1521/1689/1008 +f 1522/1690/1009 1523/1691/1010 1524/1692/1011 +f 1525/1693/1012 1526/1694/1013 1527/1695/1014 +f 1528/1696/1015 1514/1682/1002 1513/1681/1001 +f 1527/1697/1014 1526/1698/1013 1529/1699/1016 +f 1523/1691/1010 1522/1690/1009 1530/1700/1017 +f 1531/1701/1018 1529/1702/1016 1532/1703/1019 +f 1533/1704/1020 1534/1705/1021 1507/1706/1021 +f 1507/1706/1021 1534/1705/1021 1535/1707/1022 +f 1511/1708/1023 1535/1707/1022 1536/1709/1024 +f 1536/1709/1024 1537/1710/1025 1509/1711/1025 +f 1509/1711/1025 1537/1710/1025 1533/1712/1020 +f 1538/1713/1026 1539/1714/1027 1540/1715/1028 +f 1539/1714/1027 1541/1716/1029 1542/1717/1030 +f 1541/1716/1029 1543/1718/1031 1544/1719/1032 +f 1544/1719/1032 1543/1718/1031 1545/1720/1033 +f 1546/1721/1034 1545/1720/1033 1538/1722/1026 +f 1547/1723/1035 1548/1724/1036 1539/1725/1027 +f 1548/1724/1036 1549/1726/1037 1541/1716/1029 +f 1549/1726/1037 1550/1727/1038 1543/1718/1031 +f 1543/1718/1031 1550/1727/1038 1551/1728/1039 +f 1545/1729/1033 1551/1728/1039 1547/1730/1035 +f 1552/1731/1040 1553/1732/1041 1554/1733/1042 +f 1555/1734/1043 1554/1733/1042 1556/1735/1044 +f 1556/1735/1044 1557/1736/1045 1558/1737/1046 +f 1557/1736/1045 1559/1738/1047 1560/1739/1048 +f 1559/1738/1047 1553/1740/1041 1552/1741/1040 +f 1553/1742/1041 1561/1743/1049 1540/1744/1028 +f 1554/1745/1042 1540/1744/1028 1542/1717/1030 +f 1542/1717/1030 1544/1719/1032 1557/1736/1045 +f 1544/1719/1032 1546/1746/1034 1559/1747/1047 +f 1546/1746/1034 1561/1748/1049 1553/1749/1041 +f 1514/1682/1002 1528/1696/1015 1562/1750/1050 +f 1512/1680/1000 1514/1682/1002 1516/1684/1004 +f 1563/1751/1051 1516/1752/1052 1514/1753/1052 +f 1562/1754/1052 1525/1693/1012 1514/1753/1052 +f 1525/1693/1012 1563/1751/1051 1514/1753/1052 +f 1524/1692/1011 1520/1688/1007 1519/1687/1007 +f 1563/1755/1053 1527/1756/1054 1522/1757/1055 +f 1564/1758/1056 1565/1759/1057 1562/1750/1050 +f 1524/1760/1058 1562/1750/1050 1565/1759/1057 +f 1524/1760/1058 1523/1761/1059 1525/1762/1060 +f 1517/1685/1005 1515/1683/1003 1516/1684/1004 +f 1519/1763/1061 1517/1685/1005 1518/1686/1006 +f 1518/1764/1062 1522/1690/1009 1524/1692/1011 +f 1563/1751/1051 1525/1693/1012 1527/1695/1014 +f 1531/1765/1018 1527/1697/1014 1529/1699/1016 +f 1532/1703/1019 1523/1691/1010 1530/1700/1017 +f 1530/1700/1017 1531/1701/1018 1532/1703/1019 +f 1510/1766/1063 1533/1704/1020 1507/1706/1021 +f 1511/1708/1023 1507/1706/1021 1535/1707/1022 +f 1508/1767/1024 1511/1708/1023 1536/1709/1024 +f 1508/1767/1024 1536/1709/1024 1509/1711/1025 +f 1510/1768/1063 1509/1711/1025 1533/1712/1020 +f 1561/1769/1049 1538/1713/1026 1540/1715/1028 +f 1540/1715/1028 1539/1714/1027 1542/1717/1030 +f 1542/1717/1030 1541/1716/1029 1544/1719/1032 +f 1546/1721/1034 1544/1719/1032 1545/1720/1033 +f 1561/1770/1049 1546/1721/1034 1538/1722/1026 +f 1538/1771/1026 1547/1723/1035 1539/1725/1027 +f 1539/1725/1027 1548/1724/1036 1541/1716/1029 +f 1541/1716/1029 1549/1726/1037 1543/1718/1031 +f 1545/1729/1033 1543/1718/1031 1551/1728/1039 +f 1538/1772/1026 1545/1729/1033 1547/1730/1035 +f 1555/1734/1043 1552/1731/1040 1554/1733/1042 +f 1566/1773/1064 1555/1734/1043 1556/1735/1044 +f 1566/1773/1064 1556/1735/1044 1558/1737/1046 +f 1558/1737/1046 1557/1736/1045 1560/1739/1048 +f 1560/1739/1048 1559/1738/1047 1552/1741/1040 +f 1554/1745/1042 1553/1742/1041 1540/1744/1028 +f 1556/1735/1044 1554/1745/1042 1542/1717/1030 +f 1556/1735/1044 1542/1717/1030 1557/1736/1045 +f 1557/1736/1045 1544/1719/1032 1559/1747/1047 +f 1559/1747/1047 1546/1746/1034 1553/1749/1041 +f 1518/1764/1062 1524/1692/1011 1519/1687/1007 +f 1522/1757/1055 1518/1686/1006 1563/1755/1053 +f 1516/1684/1004 1563/1755/1053 1518/1686/1006 +f 1527/1756/1054 1531/1774/1065 1522/1757/1055 +f 1530/1775/1065 1522/1757/1055 1531/1774/1065 +f 1528/1696/1015 1564/1758/1056 1562/1750/1050 +f 1520/1776/1066 1524/1760/1058 1565/1759/1057 +f 1526/1777/1067 1525/1762/1060 1523/1761/1059 +f 1562/1750/1050 1524/1760/1058 1525/1762/1060 +f 1523/1761/1059 1532/1778/1068 1529/1779/1068 +f 1529/1779/1068 1526/1777/1067 1523/1761/1059 +f 1596/1780/1052 1594/1781/1069 1601/1782/1069 +f 1594/1781/1069 1593/1783/1070 1602/1784/1070 +f 1593/1783/1070 1569/1785/1071 1570/1786/1071 +f 1569/1785/1071 1598/1787/1072 1603/1788/1072 +f 1598/1787/1072 1568/1789/1073 1604/1790/1073 +f 1568/1789/1073 1567/1791/1074 1571/1792/1074 +f 1567/1791/1074 1595/1793/1075 1572/1794/1075 +f 1595/1793/1075 1597/1795/1076 1599/1796/1076 +f 1597/1795/1076 1596/1797/1052 1600/1798/1052 +f 1605/1799/1077 1575/1800/1078 1576/1801/1078 +f 1575/1800/1078 1608/1802/1079 1612/1803/1079 +f 1608/1802/1079 1574/1804/1080 1613/1805/1080 +f 1574/1804/1080 1573/1806/1081 1577/1807/1081 +f 1573/1806/1081 1607/1808/1082 1614/1809/1082 +f 1639/1810/1052 1617/1811/1052 1616/1812/1083 +f 1616/1812/1083 1615/1813/1084 1640/1814/1084 +f 1615/1813/1084 1583/1815/1085 1641/1816/1085 +f 1583/1815/1085 1620/1817/1086 1642/1818/1086 +f 1620/1817/1086 1582/1819/1087 1643/1820/1087 +f 1643/1820/1087 1582/1819/1087 1581/1821/1088 +f 1644/1822/1088 1581/1821/1088 1619/1823/1089 +f 1645/1824/1089 1619/1823/1089 1618/1825/1090 +f 1618/1825/1090 1617/1826/1052 1639/1827/1052 +f 1520/1776/1066 1565/1759/1057 1646/1828/1091 +f 1646/1828/1091 1517/1685/1005 1519/1763/1061 +f 1564/1758/1056 1647/1829/1092 1646/1828/1091 +f 1646/1828/1091 1647/1829/1092 1515/1683/1003 +f 1648/1830/1093 1649/1831/1094 1528/1696/1015 +f 1649/1831/1094 1650/1832/1095 1564/1758/1056 +f 1650/1832/1095 1651/1833/1096 1647/1829/1092 +f 1647/1829/1092 1651/1833/1096 1652/1834/1097 +f 1515/1683/1003 1652/1834/1097 1653/1835/1098 +f 1512/1680/1000 1653/1835/1098 1648/1830/1093 +f 1654/1836/1052 1655/1837/1099 1649/1831/1094 +f 1655/1837/1099 1656/1838/1100 1650/1832/1095 +f 1656/1838/1100 1657/1839/1049 1651/1833/1096 +f 1651/1833/1096 1657/1839/1049 1658/1840/1101 +f 1652/1834/1097 1658/1840/1101 1659/1841/1102 +f 1653/1835/1098 1659/1841/1102 1654/1836/1052 +f 1584/1842/1052 1622/1843/1083 1660/1844/1103 +f 1622/1843/1083 1621/1845/1084 1661/1846/1084 +f 1621/1845/1084 1586/1847/1104 1662/1848/1104 +f 1586/1847/1104 1585/1849/1086 1663/1850/1086 +f 1585/1849/1086 1626/1851/1087 1664/1852/1087 +f 1626/1851/1087 1625/1853/1105 1665/1854/1105 +f 1625/1853/1105 1624/1855/1089 1666/1856/1089 +f 1624/1855/1089 1623/1857/1106 1667/1858/1090 +f 1623/1857/1106 1584/1859/1052 1668/1860/1052 +f 1630/1861/1052 1628/1862/1069 1635/1863/1069 +f 1628/1862/1069 1627/1864/1070 1636/1865/1070 +f 1627/1864/1070 1589/1866/1107 1590/1867/1107 +f 1589/1866/1107 1632/1868/1072 1637/1869/1072 +f 1632/1868/1072 1588/1870/1073 1638/1871/1073 +f 1588/1870/1073 1587/1872/1074 1591/1873/1074 +f 1587/1872/1074 1629/1874/1075 1592/1875/1075 +f 1592/1875/1075 1629/1874/1075 1631/1876/1076 +f 1633/1877/1076 1631/1876/1076 1630/1878/1052 +f 1600/1879/1052 1596/1780/1052 1601/1782/1069 +f 1601/1782/1069 1594/1781/1069 1602/1784/1070 +f 1602/1784/1070 1593/1783/1070 1570/1786/1071 +f 1570/1786/1071 1569/1785/1071 1603/1788/1072 +f 1603/1788/1072 1598/1787/1072 1604/1790/1073 +f 1604/1790/1073 1568/1789/1073 1571/1792/1074 +f 1571/1792/1074 1567/1791/1074 1572/1794/1075 +f 1572/1794/1075 1595/1793/1075 1599/1796/1076 +f 1599/1796/1076 1597/1795/1076 1600/1798/1052 +f 1611/1880/1077 1605/1799/1077 1576/1801/1078 +f 1576/1801/1078 1575/1800/1078 1612/1803/1079 +f 1612/1803/1079 1608/1802/1079 1613/1805/1080 +f 1613/1805/1080 1574/1804/1080 1577/1807/1081 +f 1577/1807/1081 1573/1806/1081 1614/1809/1082 +f 1669/1881/1083 1639/1810/1052 1616/1812/1083 +f 1669/1881/1083 1616/1812/1083 1640/1814/1084 +f 1640/1814/1084 1615/1813/1084 1641/1816/1085 +f 1641/1816/1085 1583/1815/1085 1642/1818/1086 +f 1642/1818/1086 1620/1817/1086 1643/1820/1087 +f 1644/1822/1088 1643/1820/1087 1581/1821/1088 +f 1645/1824/1089 1644/1822/1088 1619/1823/1089 +f 1670/1882/1090 1645/1824/1089 1618/1825/1090 +f 1670/1882/1090 1618/1825/1090 1639/1827/1052 +f 1521/1883/1108 1520/1776/1066 1646/1828/1091 +f 1521/1883/1108 1646/1828/1091 1519/1763/1061 +f 1565/1759/1057 1564/1758/1056 1646/1828/1091 +f 1517/1685/1005 1646/1828/1091 1515/1683/1003 +f 1513/1681/1001 1648/1830/1093 1528/1696/1015 +f 1528/1696/1015 1649/1831/1094 1564/1758/1056 +f 1564/1758/1056 1650/1832/1095 1647/1829/1092 +f 1515/1683/1003 1647/1829/1092 1652/1834/1097 +f 1512/1680/1000 1515/1683/1003 1653/1835/1098 +f 1513/1681/1001 1512/1680/1000 1648/1830/1093 +f 1648/1830/1093 1654/1836/1052 1649/1831/1094 +f 1649/1831/1094 1655/1837/1099 1650/1832/1095 +f 1650/1832/1095 1656/1838/1100 1651/1833/1096 +f 1652/1834/1097 1651/1833/1096 1658/1840/1101 +f 1653/1835/1098 1652/1834/1097 1659/1841/1102 +f 1648/1830/1093 1653/1835/1098 1654/1836/1052 +f 1668/1884/1052 1584/1842/1052 1660/1844/1103 +f 1660/1844/1103 1622/1843/1083 1661/1846/1084 +f 1661/1846/1084 1621/1845/1084 1662/1848/1104 +f 1662/1848/1104 1586/1847/1104 1663/1850/1086 +f 1663/1850/1086 1585/1849/1086 1664/1852/1087 +f 1664/1852/1087 1626/1851/1087 1665/1854/1105 +f 1665/1854/1105 1625/1853/1105 1666/1856/1089 +f 1666/1856/1089 1624/1855/1089 1667/1858/1090 +f 1667/1858/1090 1623/1857/1106 1668/1860/1052 +f 1634/1885/1052 1630/1861/1052 1635/1863/1069 +f 1635/1863/1069 1628/1862/1069 1636/1865/1070 +f 1636/1865/1070 1627/1864/1070 1590/1867/1107 +f 1590/1867/1107 1589/1866/1107 1637/1869/1072 +f 1637/1869/1072 1632/1868/1072 1638/1871/1073 +f 1638/1871/1073 1588/1870/1073 1591/1873/1074 +f 1591/1873/1074 1587/1872/1074 1592/1875/1075 +f 1633/1877/1076 1592/1875/1075 1631/1876/1076 +f 1634/1886/1052 1633/1877/1076 1630/1878/1052 +l 1674 1675 +l 1671 1672 +l 1671 1673 o MiniNuke v 0.500000 0.992052 -1.000000 v 0.425000 0.992052 -1.000000 @@ -1979,207 +8266,207 @@ vn -0.9239 -0.0000 0.3827 vn -0.9239 -0.0000 -0.3827 vn -0.3827 -0.0000 -0.9239 s off -f 302/513/230 303/514/230 304/515/230 -f 305/516/230 306/517/230 307/518/230 -f 308/519/231 309/520/231 310/521/231 -f 311/522/231 312/523/231 313/524/231 -f 314/525/232 315/526/232 316/527/232 -f 317/528/232 318/529/232 319/530/232 -f 320/531/233 321/532/233 322/533/233 -f 323/534/233 324/535/233 325/536/233 -f 326/537/230 327/538/230 304/515/230 -f 327/538/230 302/513/230 304/515/230 -f 307/518/230 328/539/230 305/516/230 -f 328/539/230 329/540/230 305/516/230 -f 310/521/231 330/541/231 308/519/231 -f 330/541/231 331/542/231 308/519/231 -f 332/543/231 333/544/231 313/524/231 -f 333/544/231 311/522/231 313/524/231 -f 316/527/232 334/545/232 314/525/232 -f 334/545/232 335/546/232 314/525/232 -f 336/547/232 337/548/232 319/530/232 -f 337/548/232 317/528/232 319/530/232 -f 338/549/233 339/550/233 322/533/233 -f 339/550/233 320/531/233 322/533/233 -f 325/536/233 340/551/233 323/534/233 -f 340/551/233 341/552/233 323/534/233 +f 1676/1887/1109 1677/1888/1109 1678/1889/1109 +f 1679/1890/1109 1680/1891/1109 1681/1892/1109 +f 1682/1893/1110 1683/1894/1110 1684/1895/1110 +f 1685/1896/1110 1686/1897/1110 1687/1898/1110 +f 1688/1899/1111 1689/1900/1111 1690/1901/1111 +f 1691/1902/1111 1692/1903/1111 1693/1904/1111 +f 1694/1905/1112 1695/1906/1112 1696/1907/1112 +f 1697/1908/1112 1698/1909/1112 1699/1910/1112 +f 1700/1911/1109 1701/1912/1109 1678/1889/1109 +f 1701/1912/1109 1676/1887/1109 1678/1889/1109 +f 1681/1892/1109 1702/1913/1109 1679/1890/1109 +f 1702/1913/1109 1703/1914/1109 1679/1890/1109 +f 1684/1895/1110 1704/1915/1110 1682/1893/1110 +f 1704/1915/1110 1705/1916/1110 1682/1893/1110 +f 1706/1917/1110 1707/1918/1110 1687/1898/1110 +f 1707/1918/1110 1685/1896/1110 1687/1898/1110 +f 1690/1901/1111 1708/1919/1111 1688/1899/1111 +f 1708/1919/1111 1709/1920/1111 1688/1899/1111 +f 1710/1921/1111 1711/1922/1111 1693/1904/1111 +f 1711/1922/1111 1691/1902/1111 1693/1904/1111 +f 1712/1923/1112 1713/1924/1112 1696/1907/1112 +f 1713/1924/1112 1694/1905/1112 1696/1907/1112 +f 1699/1910/1112 1714/1925/1112 1697/1908/1112 +f 1714/1925/1112 1715/1926/1112 1697/1908/1112 s 1 -f 342/553/234 343/554/235 344/555/236 -f 345/556/233 346/557/237 347/558/238 -f 348/559/239 349/560/240 350/561/241 -f 342/553/234 346/557/237 351/562/242 -f 350/561/241 352/563/243 345/556/233 -f 348/559/239 353/564/244 354/565/245 -f 354/566/245 355/567/246 349/560/240 -f 346/557/237 356/568/247 351/569/242 -f 352/563/243 355/567/246 357/570/230 -f 353/571/244 358/572/248 354/566/245 -f 343/573/235 356/568/247 359/574/249 -f 352/563/243 360/575/250 346/557/237 -f 356/576/247 361/577/251 362/578/252 -f 355/579/246 363/580/253 357/581/230 -f 364/582/254 365/583/255 358/584/248 -f 356/576/247 366/585/256 359/586/249 -f 357/581/230 361/577/251 360/587/250 -f 358/584/248 367/588/257 355/579/246 -f 365/589/255 368/590/258 369/591/259 -f 362/592/252 370/593/260 366/594/256 -f 363/580/253 371/595/261 361/577/251 -f 365/589/255 372/596/262 367/588/257 -f 361/577/251 373/597/263 362/592/252 -f 363/580/253 372/596/262 374/598/231 -f 370/599/260 375/600/264 376/601/265 -f 374/598/231 377/602/266 371/595/261 -f 369/603/259 378/604/267 372/596/262 -f 373/605/263 377/602/266 375/600/264 -f 372/596/262 379/606/268 374/598/231 -f 369/603/259 380/607/269 381/608/270 -f 377/602/266 382/609/271 375/610/264 -f 378/604/267 383/611/232 379/606/268 -f 380/612/269 384/613/272 381/614/270 -f 375/610/264 385/615/273 376/616/265 -f 379/606/268 386/617/274 377/602/266 -f 378/604/267 384/613/272 387/618/275 -f 382/619/271 388/620/276 389/621/277 -f 383/611/232 390/622/278 391/623/279 -f 384/624/272 392/625/280 393/626/281 -f 385/627/273 389/621/277 394/628/282 -f 383/611/232 388/620/276 386/617/274 -f 384/624/272 390/622/278 387/618/275 -f 395/629/283 396/630/284 353/564/244 -f 397/631/285 344/555/236 343/554/235 -f 353/571/244 396/632/284 364/633/254 -f 397/634/285 343/573/235 359/574/249 -f 397/635/285 359/586/249 366/585/256 -f 364/582/254 396/636/284 398/637/286 -f 398/638/286 396/639/284 368/590/258 -f 397/640/285 366/594/256 370/593/260 -f 368/641/258 396/642/284 380/607/269 -f 397/643/285 370/599/260 376/601/265 -f 380/612/269 396/644/284 399/645/287 -f 397/646/285 376/616/265 385/615/273 -f 399/647/287 396/648/284 392/625/280 -f 397/649/285 385/627/273 394/628/282 -f 389/650/277 344/651/236 394/652/282 -f 391/623/279 347/558/238 388/620/276 -f 393/653/281 350/561/241 390/622/278 -f 392/654/280 396/655/284 395/656/283 -f 397/657/285 394/652/282 344/651/236 -f 388/620/276 342/658/234 389/650/277 -f 390/622/278 345/556/233 391/623/279 -f 393/653/281 395/656/283 348/659/239 -f 400/660/230 401/661/288 402/662/288 -f 403/663/253 401/661/288 404/664/230 -f 405/665/289 406/666/231 407/667/289 -f 403/663/253 405/665/289 408/668/253 -f 406/666/231 409/669/290 410/670/290 -f 411/671/268 409/669/290 412/672/231 -f 411/671/268 413/673/291 414/674/268 -f 413/673/291 415/675/232 416/676/291 -f 415/675/232 417/677/292 418/678/292 -f 419/679/279 417/677/292 420/680/232 -f 419/679/279 421/681/293 422/682/279 -f 421/681/293 423/683/233 424/684/293 -f 423/683/233 425/685/294 426/686/294 -f 427/687/243 425/685/294 428/688/233 -f 427/687/243 429/689/295 430/690/243 -f 429/689/295 400/691/230 431/692/295 -f 432/693/292 433/694/232 434/695/292 -f 435/696/279 432/693/292 436/697/279 -f 437/698/233 438/699/293 439/700/293 -f 435/696/279 438/699/293 440/701/233 -f 441/702/294 437/698/233 442/703/294 -f 443/704/243 441/702/294 444/705/243 -f 443/704/243 445/706/295 446/707/230 -f 447/708/230 445/706/295 448/709/295 -f 449/710/288 447/708/230 450/711/288 -f 451/712/253 449/710/288 452/713/253 -f 451/712/253 453/714/289 454/715/231 -f 455/716/231 453/714/289 456/717/289 -f 457/718/290 455/716/231 458/719/290 -f 459/720/268 457/718/290 460/721/268 -f 459/720/268 461/722/291 462/723/232 -f 433/724/232 461/722/291 463/725/291 -f 342/553/234 351/562/242 343/554/235 -f 345/556/233 352/563/243 346/557/237 -f 348/559/239 354/565/245 349/560/240 -f 342/553/234 347/558/238 346/557/237 -f 350/561/241 349/560/240 352/563/243 -f 348/559/239 395/629/283 353/564/244 -f 354/566/245 358/572/248 355/567/246 -f 346/557/237 360/575/250 356/568/247 -f 352/563/243 349/560/240 355/567/246 -f 353/571/244 364/633/254 358/572/248 -f 343/573/235 351/569/242 356/568/247 -f 352/563/243 357/570/230 360/575/250 -f 356/576/247 360/587/250 361/577/251 -f 355/579/246 367/588/257 363/580/253 -f 364/582/254 398/637/286 365/583/255 -f 356/576/247 362/578/252 366/585/256 -f 357/581/230 363/580/253 361/577/251 -f 358/584/248 365/583/255 367/588/257 -f 365/589/255 398/638/286 368/590/258 -f 362/592/252 373/597/263 370/593/260 -f 363/580/253 374/598/231 371/595/261 -f 365/589/255 369/591/259 372/596/262 -f 361/577/251 371/595/261 373/597/263 -f 363/580/253 367/588/257 372/596/262 -f 370/599/260 373/605/263 375/600/264 -f 374/598/231 379/606/268 377/602/266 -f 369/603/259 381/608/270 378/604/267 -f 373/605/263 371/595/261 377/602/266 -f 372/596/262 378/604/267 379/606/268 -f 369/603/259 368/641/258 380/607/269 -f 377/602/266 386/617/274 382/609/271 -f 378/604/267 387/618/275 383/611/232 -f 380/612/269 399/645/287 384/613/272 -f 375/610/264 382/609/271 385/615/273 -f 379/606/268 383/611/232 386/617/274 -f 378/604/267 381/614/270 384/613/272 -f 382/619/271 386/617/274 388/620/276 -f 383/611/232 387/618/275 390/622/278 -f 384/624/272 399/647/287 392/625/280 -f 385/627/273 382/619/271 389/621/277 -f 383/611/232 391/623/279 388/620/276 -f 384/624/272 393/626/281 390/622/278 -f 389/650/277 342/658/234 344/651/236 -f 391/623/279 345/556/233 347/558/238 -f 393/653/281 348/659/239 350/561/241 -f 388/620/276 347/558/238 342/658/234 -f 390/622/278 350/561/241 345/556/233 -f 393/653/281 392/654/280 395/656/283 -f 400/660/230 404/664/230 401/661/288 -f 403/663/253 408/668/253 401/661/288 -f 405/665/289 412/672/231 406/666/231 -f 403/663/253 412/672/231 405/665/289 -f 406/666/231 412/672/231 409/669/290 -f 411/671/268 414/674/268 409/669/290 -f 411/671/268 420/680/232 413/673/291 -f 413/673/291 420/680/232 415/675/232 -f 415/675/232 420/680/232 417/677/292 -f 419/679/279 422/682/279 417/677/292 -f 419/679/279 428/688/233 421/681/293 -f 421/681/293 428/688/233 423/683/233 -f 423/683/233 428/688/233 425/685/294 -f 427/687/243 430/690/243 425/685/294 -f 427/687/243 404/726/230 429/689/295 -f 429/689/295 404/726/230 400/691/230 -f 432/693/292 462/727/232 433/694/232 -f 435/696/279 462/727/232 432/693/292 -f 437/698/233 440/701/233 438/699/293 -f 435/696/279 436/697/279 438/699/293 -f 441/702/294 440/701/233 437/698/233 -f 443/704/243 440/701/233 441/702/294 -f 443/704/243 444/705/243 445/706/295 -f 447/708/230 446/707/230 445/706/295 -f 449/710/288 446/707/230 447/708/230 -f 451/712/253 446/707/230 449/710/288 -f 451/712/253 452/713/253 453/714/289 -f 455/716/231 454/715/231 453/714/289 -f 457/718/290 454/715/231 455/716/231 -f 459/720/268 454/715/231 457/718/290 -f 459/720/268 460/721/268 461/722/291 -f 433/724/232 462/723/232 461/722/291 +f 1716/1927/1113 1717/1928/1114 1718/1929/1115 +f 1719/1930/1112 1720/1931/1116 1721/1932/1117 +f 1722/1933/1118 1723/1934/1119 1724/1935/1120 +f 1716/1927/1113 1720/1931/1116 1725/1936/1121 +f 1724/1935/1120 1726/1937/1122 1719/1930/1112 +f 1722/1933/1118 1727/1938/1123 1728/1939/1124 +f 1728/1940/1124 1729/1941/1125 1723/1934/1119 +f 1720/1931/1116 1730/1942/1126 1725/1943/1121 +f 1726/1937/1122 1729/1941/1125 1731/1944/1109 +f 1727/1945/1123 1732/1946/1127 1728/1940/1124 +f 1717/1947/1114 1730/1942/1126 1733/1948/1128 +f 1726/1937/1122 1734/1949/1129 1720/1931/1116 +f 1730/1950/1126 1735/1951/1130 1736/1952/1131 +f 1729/1953/1125 1737/1954/1132 1731/1955/1109 +f 1738/1956/1133 1739/1957/1134 1732/1958/1127 +f 1730/1950/1126 1740/1959/1135 1733/1960/1128 +f 1731/1955/1109 1735/1951/1130 1734/1961/1129 +f 1732/1958/1127 1741/1962/1136 1729/1953/1125 +f 1739/1963/1134 1742/1964/1137 1743/1965/1138 +f 1736/1966/1131 1744/1967/1139 1740/1968/1135 +f 1737/1954/1132 1745/1969/1140 1735/1951/1130 +f 1739/1963/1134 1746/1970/1141 1741/1962/1136 +f 1735/1951/1130 1747/1971/1142 1736/1966/1131 +f 1737/1954/1132 1746/1970/1141 1748/1972/1110 +f 1744/1973/1139 1749/1974/1143 1750/1975/1144 +f 1748/1972/1110 1751/1976/1145 1745/1969/1140 +f 1743/1977/1138 1752/1978/1146 1746/1970/1141 +f 1747/1979/1142 1751/1976/1145 1749/1974/1143 +f 1746/1970/1141 1753/1980/1147 1748/1972/1110 +f 1743/1977/1138 1754/1981/1148 1755/1982/1149 +f 1751/1976/1145 1756/1983/1150 1749/1984/1143 +f 1752/1978/1146 1757/1985/1111 1753/1980/1147 +f 1754/1986/1148 1758/1987/1151 1755/1988/1149 +f 1749/1984/1143 1759/1989/1152 1750/1990/1144 +f 1753/1980/1147 1760/1991/1153 1751/1976/1145 +f 1752/1978/1146 1758/1987/1151 1761/1992/1154 +f 1756/1993/1150 1762/1994/1155 1763/1995/1156 +f 1757/1985/1111 1764/1996/1157 1765/1997/1158 +f 1758/1998/1151 1766/1999/1159 1767/2000/1160 +f 1759/2001/1152 1763/1995/1156 1768/2002/1161 +f 1757/1985/1111 1762/1994/1155 1760/1991/1153 +f 1758/1998/1151 1764/1996/1157 1761/1992/1154 +f 1769/2003/1162 1770/2004/1163 1727/1938/1123 +f 1771/2005/1164 1718/1929/1115 1717/1928/1114 +f 1727/1945/1123 1770/2006/1163 1738/2007/1133 +f 1771/2008/1164 1717/1947/1114 1733/1948/1128 +f 1771/2009/1164 1733/1960/1128 1740/1959/1135 +f 1738/1956/1133 1770/2010/1163 1772/2011/1165 +f 1772/2012/1165 1770/2013/1163 1742/1964/1137 +f 1771/2014/1164 1740/1968/1135 1744/1967/1139 +f 1742/2015/1137 1770/2016/1163 1754/1981/1148 +f 1771/2017/1164 1744/1973/1139 1750/1975/1144 +f 1754/1986/1148 1770/2018/1163 1773/2019/1166 +f 1771/2020/1164 1750/1990/1144 1759/1989/1152 +f 1773/2021/1166 1770/2022/1163 1766/1999/1159 +f 1771/2023/1164 1759/2001/1152 1768/2002/1161 +f 1763/2024/1156 1718/2025/1115 1768/2026/1161 +f 1765/1997/1158 1721/1932/1117 1762/1994/1155 +f 1767/2027/1160 1724/1935/1120 1764/1996/1157 +f 1766/2028/1159 1770/2029/1163 1769/2030/1162 +f 1771/2031/1164 1768/2026/1161 1718/2025/1115 +f 1762/1994/1155 1716/2032/1113 1763/2024/1156 +f 1764/1996/1157 1719/1930/1112 1765/1997/1158 +f 1767/2027/1160 1769/2030/1162 1722/2033/1118 +f 1774/2034/1109 1775/2035/1167 1776/2036/1167 +f 1777/2037/1132 1775/2035/1167 1778/2038/1109 +f 1779/2039/1168 1780/2040/1110 1781/2041/1168 +f 1777/2037/1132 1779/2039/1168 1782/2042/1132 +f 1780/2040/1110 1783/2043/1169 1784/2044/1169 +f 1785/2045/1147 1783/2043/1169 1786/2046/1110 +f 1785/2045/1147 1787/2047/1170 1788/2048/1147 +f 1787/2047/1170 1789/2049/1111 1790/2050/1170 +f 1789/2049/1111 1791/2051/1171 1792/2052/1171 +f 1793/2053/1158 1791/2051/1171 1794/2054/1111 +f 1793/2053/1158 1795/2055/1172 1796/2056/1158 +f 1795/2055/1172 1797/2057/1112 1798/2058/1172 +f 1797/2057/1112 1799/2059/1173 1800/2060/1173 +f 1801/2061/1122 1799/2059/1173 1802/2062/1112 +f 1801/2061/1122 1803/2063/1174 1804/2064/1122 +f 1803/2063/1174 1774/2065/1109 1805/2066/1174 +f 1806/2067/1171 1807/2068/1111 1808/2069/1171 +f 1809/2070/1158 1806/2067/1171 1810/2071/1158 +f 1811/2072/1112 1812/2073/1172 1813/2074/1172 +f 1809/2070/1158 1812/2073/1172 1814/2075/1112 +f 1815/2076/1173 1811/2072/1112 1816/2077/1173 +f 1817/2078/1122 1815/2076/1173 1818/2079/1122 +f 1817/2078/1122 1819/2080/1174 1820/2081/1109 +f 1821/2082/1109 1819/2080/1174 1822/2083/1174 +f 1823/2084/1167 1821/2082/1109 1824/2085/1167 +f 1825/2086/1132 1823/2084/1167 1826/2087/1132 +f 1825/2086/1132 1827/2088/1168 1828/2089/1110 +f 1829/2090/1110 1827/2088/1168 1830/2091/1168 +f 1831/2092/1169 1829/2090/1110 1832/2093/1169 +f 1833/2094/1147 1831/2092/1169 1834/2095/1147 +f 1833/2094/1147 1835/2096/1170 1836/2097/1111 +f 1807/2098/1111 1835/2096/1170 1837/2099/1170 +f 1716/1927/1113 1725/1936/1121 1717/1928/1114 +f 1719/1930/1112 1726/1937/1122 1720/1931/1116 +f 1722/1933/1118 1728/1939/1124 1723/1934/1119 +f 1716/1927/1113 1721/1932/1117 1720/1931/1116 +f 1724/1935/1120 1723/1934/1119 1726/1937/1122 +f 1722/1933/1118 1769/2003/1162 1727/1938/1123 +f 1728/1940/1124 1732/1946/1127 1729/1941/1125 +f 1720/1931/1116 1734/1949/1129 1730/1942/1126 +f 1726/1937/1122 1723/1934/1119 1729/1941/1125 +f 1727/1945/1123 1738/2007/1133 1732/1946/1127 +f 1717/1947/1114 1725/1943/1121 1730/1942/1126 +f 1726/1937/1122 1731/1944/1109 1734/1949/1129 +f 1730/1950/1126 1734/1961/1129 1735/1951/1130 +f 1729/1953/1125 1741/1962/1136 1737/1954/1132 +f 1738/1956/1133 1772/2011/1165 1739/1957/1134 +f 1730/1950/1126 1736/1952/1131 1740/1959/1135 +f 1731/1955/1109 1737/1954/1132 1735/1951/1130 +f 1732/1958/1127 1739/1957/1134 1741/1962/1136 +f 1739/1963/1134 1772/2012/1165 1742/1964/1137 +f 1736/1966/1131 1747/1971/1142 1744/1967/1139 +f 1737/1954/1132 1748/1972/1110 1745/1969/1140 +f 1739/1963/1134 1743/1965/1138 1746/1970/1141 +f 1735/1951/1130 1745/1969/1140 1747/1971/1142 +f 1737/1954/1132 1741/1962/1136 1746/1970/1141 +f 1744/1973/1139 1747/1979/1142 1749/1974/1143 +f 1748/1972/1110 1753/1980/1147 1751/1976/1145 +f 1743/1977/1138 1755/1982/1149 1752/1978/1146 +f 1747/1979/1142 1745/1969/1140 1751/1976/1145 +f 1746/1970/1141 1752/1978/1146 1753/1980/1147 +f 1743/1977/1138 1742/2015/1137 1754/1981/1148 +f 1751/1976/1145 1760/1991/1153 1756/1983/1150 +f 1752/1978/1146 1761/1992/1154 1757/1985/1111 +f 1754/1986/1148 1773/2019/1166 1758/1987/1151 +f 1749/1984/1143 1756/1983/1150 1759/1989/1152 +f 1753/1980/1147 1757/1985/1111 1760/1991/1153 +f 1752/1978/1146 1755/1988/1149 1758/1987/1151 +f 1756/1993/1150 1760/1991/1153 1762/1994/1155 +f 1757/1985/1111 1761/1992/1154 1764/1996/1157 +f 1758/1998/1151 1773/2021/1166 1766/1999/1159 +f 1759/2001/1152 1756/1993/1150 1763/1995/1156 +f 1757/1985/1111 1765/1997/1158 1762/1994/1155 +f 1758/1998/1151 1767/2000/1160 1764/1996/1157 +f 1763/2024/1156 1716/2032/1113 1718/2025/1115 +f 1765/1997/1158 1719/1930/1112 1721/1932/1117 +f 1767/2027/1160 1722/2033/1118 1724/1935/1120 +f 1762/1994/1155 1721/1932/1117 1716/2032/1113 +f 1764/1996/1157 1724/1935/1120 1719/1930/1112 +f 1767/2027/1160 1766/2028/1159 1769/2030/1162 +f 1774/2034/1109 1778/2038/1109 1775/2035/1167 +f 1777/2037/1132 1782/2042/1132 1775/2035/1167 +f 1779/2039/1168 1786/2046/1110 1780/2040/1110 +f 1777/2037/1132 1786/2046/1110 1779/2039/1168 +f 1780/2040/1110 1786/2046/1110 1783/2043/1169 +f 1785/2045/1147 1788/2048/1147 1783/2043/1169 +f 1785/2045/1147 1794/2054/1111 1787/2047/1170 +f 1787/2047/1170 1794/2054/1111 1789/2049/1111 +f 1789/2049/1111 1794/2054/1111 1791/2051/1171 +f 1793/2053/1158 1796/2056/1158 1791/2051/1171 +f 1793/2053/1158 1802/2062/1112 1795/2055/1172 +f 1795/2055/1172 1802/2062/1112 1797/2057/1112 +f 1797/2057/1112 1802/2062/1112 1799/2059/1173 +f 1801/2061/1122 1804/2064/1122 1799/2059/1173 +f 1801/2061/1122 1778/2100/1109 1803/2063/1174 +f 1803/2063/1174 1778/2100/1109 1774/2065/1109 +f 1806/2067/1171 1836/2101/1111 1807/2068/1111 +f 1809/2070/1158 1836/2101/1111 1806/2067/1171 +f 1811/2072/1112 1814/2075/1112 1812/2073/1172 +f 1809/2070/1158 1810/2071/1158 1812/2073/1172 +f 1815/2076/1173 1814/2075/1112 1811/2072/1112 +f 1817/2078/1122 1814/2075/1112 1815/2076/1173 +f 1817/2078/1122 1818/2079/1122 1819/2080/1174 +f 1821/2082/1109 1820/2081/1109 1819/2080/1174 +f 1823/2084/1167 1820/2081/1109 1821/2082/1109 +f 1825/2086/1132 1820/2081/1109 1823/2084/1167 +f 1825/2086/1132 1826/2087/1132 1827/2088/1168 +f 1829/2090/1110 1828/2089/1110 1827/2088/1168 +f 1831/2092/1169 1828/2089/1110 1829/2090/1110 +f 1833/2094/1147 1828/2089/1110 1831/2092/1169 +f 1833/2094/1147 1834/2095/1147 1835/2096/1170 +f 1807/2098/1111 1836/2097/1111 1835/2096/1170 o Meter1 v 0.000000 1.250000 0.718750 v 0.000000 1.272097 0.727903 @@ -2243,31 +8530,31 @@ vn 0.0000 0.3827 0.9239 vn 0.0000 0.3827 -0.9239 vn 0.0000 -0.3827 -0.9239 s off -f 475/728/296 477/729/296 476/730/296 -f 475/728/296 474/731/296 473/732/296 -f 481/733/296 478/734/296 479/735/296 -f 480/736/296 481/733/296 479/735/296 -f 469/737/297 478/738/297 468/739/297 -f 467/740/298 476/741/298 472/742/298 -f 472/743/299 477/744/299 466/745/299 -f 470/746/300 479/747/300 469/737/300 -f 466/748/301 473/749/301 465/750/301 -f 471/751/302 480/752/302 470/753/302 -f 468/739/303 475/754/303 467/740/303 -f 465/750/304 474/755/304 464/756/304 -f 464/756/305 481/757/305 471/751/305 -f 475/728/296 473/732/296 477/729/296 -f 475/728/296 478/734/296 474/731/296 -f 481/733/296 474/731/296 478/734/296 -f 469/737/297 479/747/297 478/738/297 -f 467/740/298 475/754/298 476/741/298 -f 472/743/299 476/758/299 477/744/299 -f 470/746/300 480/759/300 479/747/300 -f 466/748/301 477/760/301 473/749/301 -f 471/751/302 481/757/302 480/752/302 -f 468/739/303 478/738/303 475/754/303 -f 465/750/304 473/749/304 474/755/304 -f 464/756/305 474/755/305 481/757/305 +f 1849/2102/1175 1851/2103/1175 1850/2104/1175 +f 1849/2102/1175 1848/2105/1175 1847/2106/1175 +f 1855/2107/1175 1852/2108/1175 1853/2109/1175 +f 1854/2110/1175 1855/2107/1175 1853/2109/1175 +f 1843/2111/1176 1852/2112/1176 1842/2113/1176 +f 1841/2114/1177 1850/2115/1177 1846/2116/1177 +f 1846/2117/1178 1851/2118/1178 1840/2119/1178 +f 1844/2120/1179 1853/2121/1179 1843/2111/1179 +f 1840/2122/1180 1847/2123/1180 1839/2124/1180 +f 1845/2125/1181 1854/2126/1181 1844/2127/1181 +f 1842/2113/1182 1849/2128/1182 1841/2114/1182 +f 1839/2124/1183 1848/2129/1183 1838/2130/1183 +f 1838/2130/1184 1855/2131/1184 1845/2125/1184 +f 1849/2102/1175 1847/2106/1175 1851/2103/1175 +f 1849/2102/1175 1852/2108/1175 1848/2105/1175 +f 1855/2107/1175 1848/2105/1175 1852/2108/1175 +f 1843/2111/1176 1853/2121/1176 1852/2112/1176 +f 1841/2114/1177 1849/2128/1177 1850/2115/1177 +f 1846/2117/1178 1850/2132/1178 1851/2118/1178 +f 1844/2120/1179 1854/2133/1179 1853/2121/1179 +f 1840/2122/1180 1851/2134/1180 1847/2123/1180 +f 1845/2125/1181 1855/2131/1181 1854/2126/1181 +f 1842/2113/1182 1852/2112/1182 1849/2128/1182 +f 1839/2124/1183 1847/2123/1183 1848/2129/1183 +f 1838/2130/1184 1848/2129/1184 1855/2131/1184 o Console_Coonsole v -1.000000 0.000000 -1.500000 v 0.000000 0.000000 -1.500000 @@ -5118,1514 +11405,1514 @@ vn -0.7764 0.6302 0.0000 vn 0.0000 0.6302 0.7764 vn 0.7764 0.6302 0.0000 s off -f 483/761/306 484/762/306 482/763/306 -f 483/761/307 487/764/307 485/765/307 -f 486/766/308 489/767/308 487/768/308 -f 488/769/307 491/770/307 489/767/307 -f 490/771/309 493/772/309 491/770/309 -f 492/773/307 495/774/307 493/775/307 -f 494/776/309 497/777/309 495/774/309 -f 497/777/310 482/778/310 484/779/310 -f 489/780/311 493/772/311 487/781/311 -f 492/782/312 488/783/312 486/784/312 -f 496/785/312 492/773/312 486/786/312 -f 487/764/311 493/775/311 497/787/311 -f 513/788/309 511/789/309 512/790/309 -f 526/791/313 510/792/313 524/793/313 -f 524/794/314 513/788/314 523/795/314 -f 525/796/315 511/789/315 526/797/315 -f 523/798/316 512/790/316 525/799/316 -f 518/800/316 520/801/316 515/802/316 -f 515/803/315 521/804/315 514/805/315 -f 517/806/314 519/807/314 518/808/314 -f 514/809/313 522/810/313 517/811/313 -f 519/807/309 521/804/309 520/801/309 -f 530/812/309 528/813/309 529/814/309 -f 534/815/313 527/816/313 532/817/313 -f 532/818/314 530/812/314 531/819/314 -f 533/820/315 528/813/315 534/821/315 -f 531/822/316 529/814/316 533/823/316 -f 516/824/316 536/825/316 508/826/316 -f 508/827/315 537/828/315 507/829/315 -f 509/830/314 535/831/314 516/832/314 -f 507/833/313 538/834/313 509/835/313 -f 535/831/309 537/828/309 536/825/309 -f 542/836/309 540/837/309 541/838/309 -f 498/839/313 539/840/313 500/841/313 -f 500/842/314 542/836/314 501/843/314 -f 499/844/315 540/837/315 498/845/315 -f 501/846/316 541/838/316 499/847/316 -f 506/848/316 504/849/316 544/850/316 -f 544/851/315 503/852/315 543/853/315 -f 545/854/314 505/855/314 506/856/314 -f 543/857/313 502/858/313 545/859/313 -f 505/855/309 503/852/309 504/849/309 -f 563/860/309 561/861/309 562/862/309 -f 576/863/313 560/864/313 574/865/313 -f 574/866/314 563/860/314 573/867/314 -f 575/868/315 561/861/315 576/869/315 -f 573/870/316 562/862/316 575/871/316 -f 568/872/316 570/873/316 565/874/316 -f 565/875/315 571/876/315 564/877/315 -f 567/878/314 569/879/314 568/880/314 -f 564/881/313 572/882/313 567/883/313 -f 569/879/309 571/876/309 570/873/309 -f 580/884/309 578/885/309 579/886/309 -f 584/887/313 577/888/313 582/889/313 -f 582/890/314 580/884/314 581/891/314 -f 583/892/315 578/885/315 584/893/315 -f 581/894/316 579/886/316 583/895/316 -f 566/896/316 586/897/316 558/898/316 -f 558/899/315 609/900/315 557/901/315 -f 559/902/314 585/903/314 566/904/314 -f 557/905/313 610/906/313 559/907/313 -f 585/903/309 609/900/309 586/897/309 -f 614/908/309 612/909/309 613/910/309 -f 546/911/313 611/912/313 549/913/313 -f 549/914/314 614/908/314 551/915/314 -f 547/916/315 612/909/315 546/917/315 -f 551/918/316 613/910/316 547/919/316 -f 556/920/316 554/921/316 616/922/316 -f 616/923/315 553/924/315 615/925/315 -f 617/926/314 555/927/314 556/928/314 -f 615/929/313 552/930/313 617/931/313 -f 555/927/309 553/924/309 554/921/309 -f 591/932/309 589/933/309 590/934/309 -f 596/935/313 588/936/313 594/937/313 -f 594/938/314 591/932/314 593/939/314 -f 595/940/315 589/933/315 596/941/315 -f 593/942/316 590/934/316 595/943/316 -f 600/944/309 598/945/309 599/946/309 -f 604/947/313 597/948/313 602/949/313 -f 602/950/314 600/944/314 601/951/314 -f 603/952/315 598/945/315 604/953/315 -f 601/954/316 599/946/316 603/955/316 -f 592/956/316 606/957/316 550/958/316 -f 550/959/315 607/960/315 548/961/315 -f 587/962/314 605/963/314 592/964/314 -f 548/965/313 608/966/313 587/967/313 -f 605/963/309 607/960/309 606/957/309 -f 633/968/309 631/969/309 632/970/309 -f 646/971/313 630/972/313 644/973/313 -f 644/974/314 633/968/314 643/975/314 -f 645/976/315 631/969/315 646/977/315 -f 643/978/316 632/970/316 645/979/316 -f 638/980/316 640/981/316 635/982/316 -f 635/983/315 641/984/315 634/985/315 -f 637/986/314 639/987/314 638/988/314 -f 634/989/313 642/990/313 637/991/313 -f 639/987/309 641/984/309 640/981/309 -f 650/992/309 648/993/309 649/994/309 -f 654/995/313 647/996/313 652/997/313 -f 652/998/314 650/992/314 651/999/314 -f 653/1000/315 648/993/315 654/1001/315 -f 651/1002/316 649/994/316 653/1003/316 -f 636/1004/316 656/1005/316 628/1006/316 -f 628/1007/315 657/1008/315 627/1009/315 -f 629/1010/314 655/1011/314 636/1012/314 -f 627/1013/313 658/1014/313 629/1015/313 -f 655/1011/309 657/1008/309 656/1005/309 -f 662/1016/309 660/1017/309 661/1018/309 -f 618/1019/313 659/1020/313 620/1021/313 -f 620/1022/314 662/1016/314 621/1023/314 -f 619/1024/315 660/1017/315 618/1025/315 -f 621/1026/316 661/1018/316 619/1027/316 -f 626/1028/316 624/1029/316 664/1030/316 -f 664/1031/315 623/1032/315 663/1033/315 -f 665/1034/314 625/1035/314 626/1036/314 -f 663/1037/313 622/1038/313 665/1039/313 -f 625/1035/309 623/1032/309 624/1029/309 -f 730/1040/309 732/1041/309 731/1042/309 -f 669/1043/313 733/1044/313 666/1045/313 -f 666/1046/314 730/1040/314 729/1047/314 -f 667/1048/315 732/1041/315 669/1049/315 -f 729/1050/316 731/1042/316 667/1051/316 -f 734/1052/316 672/1053/316 736/1054/316 -f 736/1055/315 673/1056/315 737/1057/315 -f 735/1058/314 671/1059/314 734/1060/314 -f 737/1061/313 674/1062/313 735/1063/313 -f 671/1059/309 673/1056/309 672/1053/309 -f 678/1064/309 676/1065/309 677/1066/309 -f 706/1067/313 675/1068/313 704/1069/313 -f 704/1070/314 678/1064/314 697/1071/314 -f 705/1072/315 676/1065/315 706/1073/315 -f 697/1074/316 677/1066/316 705/1075/316 -f 682/1076/316 684/1077/316 680/1078/316 -f 680/1079/315 685/1080/315 679/1081/315 -f 681/1082/314 683/1083/314 682/1084/314 -f 679/1085/313 686/1086/313 681/1087/313 -f 683/1083/309 685/1080/309 684/1077/309 -f 694/1088/309 692/1089/309 693/1090/309 -f 699/1091/313 691/1092/313 696/1093/313 -f 696/1094/314 694/1088/314 695/1095/314 -f 698/1096/315 692/1089/315 699/1097/315 -f 695/1098/316 693/1090/316 698/1099/316 -f 690/1100/316 701/1101/316 688/1102/316 -f 688/1103/315 702/1104/315 687/1105/315 -f 689/1106/314 700/1107/314 690/1108/314 -f 687/1109/313 703/1110/313 689/1111/313 -f 700/1107/309 702/1104/309 701/1101/309 -f 708/1112/309 670/1113/309 707/1114/309 -f 728/1115/313 668/1116/313 726/1117/313 -f 726/1118/314 708/1112/314 721/1119/314 -f 727/1120/315 670/1113/315 728/1121/315 -f 721/1122/316 707/1114/316 727/1123/316 -f 712/1124/316 714/1125/316 710/1126/316 -f 710/1127/315 715/1128/315 709/1129/315 -f 711/1130/314 713/1131/314 712/1132/314 -f 709/1133/313 716/1134/313 711/1135/313 -f 713/1131/309 715/1128/309 714/1125/309 -f 720/1136/316 723/1137/316 718/1138/316 -f 718/1139/315 724/1140/315 717/1141/315 -f 719/1142/314 722/1143/314 720/1144/314 -f 717/1145/313 725/1146/313 719/1147/313 -f 722/1143/309 724/1140/309 723/1137/309 -f 750/1148/309 748/1149/309 749/1150/309 -f 829/1151/313 747/1152/313 784/1153/313 -f 784/1154/314 750/1148/314 775/1155/314 -f 827/1156/315 748/1149/315 829/1157/315 -f 775/1158/316 749/1150/316 827/1159/316 -f 766/1160/316 768/1161/316 752/1162/316 -f 757/1163/309 755/1164/309 756/1165/309 -f 833/1166/313 754/1167/313 799/1168/313 -f 799/1169/314 757/1163/314 794/1170/314 -f 832/1171/315 755/1164/315 833/1172/315 -f 794/1173/316 756/1165/316 832/1174/316 -f 761/1175/316 763/1176/316 759/1177/316 -f 759/1178/315 764/1179/315 758/1180/315 -f 760/1181/314 762/1182/314 761/1183/314 -f 758/1184/313 765/1185/313 760/1186/313 -f 762/1182/309 764/1179/309 763/1176/309 -f 752/1187/315 769/1188/315 751/1189/315 -f 753/1190/314 767/1191/314 766/1192/314 -f 751/1193/313 770/1194/313 753/1195/313 -f 767/1191/309 769/1188/309 768/1161/309 -f 774/1196/316 781/1197/316 772/1198/316 -f 772/1199/315 782/1200/315 771/1201/315 -f 773/1202/314 780/1203/314 774/1204/314 -f 771/1205/313 783/1206/313 773/1207/313 -f 780/1203/309 782/1200/309 781/1197/309 -f 822/1208/309 824/1209/309 823/1210/309 -f 740/1211/313 825/1212/313 738/1213/313 -f 738/1214/314 822/1208/314 821/1215/314 -f 739/1216/315 824/1209/315 740/1217/315 -f 821/1218/316 823/1210/316 739/1219/316 -f 826/1220/316 742/1221/316 830/1222/316 -f 779/1223/316 796/1224/316 777/1225/316 -f 777/1226/315 797/1227/315 776/1228/315 -f 778/1229/314 795/1230/314 779/1231/314 -f 776/1232/313 798/1233/313 778/1234/313 -f 795/1230/309 797/1227/309 796/1224/309 -f 830/1235/315 743/1236/315 831/1237/315 -f 828/1238/314 741/1239/314 826/1240/314 -f 831/1241/313 744/1242/313 828/1243/313 -f 741/1239/309 743/1236/309 742/1221/309 -f 786/1244/309 746/1245/309 785/1246/309 -f 820/1247/313 745/1248/313 818/1249/313 -f 818/1250/314 786/1244/314 811/1251/314 -f 819/1252/315 746/1245/315 820/1253/315 -f 811/1254/316 785/1246/316 819/1255/316 -f 790/1256/316 792/1257/316 788/1258/316 -f 788/1259/315 793/1260/315 787/1261/315 -f 789/1262/314 791/1263/314 790/1264/314 -f 787/1265/313 800/1266/313 789/1267/313 -f 791/1263/309 793/1260/309 792/1257/309 -f 808/1268/309 806/1269/309 807/1270/309 -f 813/1271/313 805/1272/313 810/1273/313 -f 810/1274/314 808/1268/314 809/1275/314 -f 812/1276/315 806/1269/315 813/1277/315 -f 809/1278/316 807/1270/316 812/1279/316 -f 804/1280/316 815/1281/316 802/1282/316 -f 802/1283/315 816/1284/315 801/1285/315 -f 803/1286/314 814/1287/314 804/1288/314 -f 801/1289/313 817/1290/313 803/1291/313 -f 814/1287/309 816/1284/309 815/1281/309 -f 894/1292/309 892/1293/309 893/1294/309 -f 834/1295/313 891/1296/313 837/1297/313 -f 837/1298/314 894/1292/314 839/1299/314 -f 835/1300/315 892/1293/315 834/1301/315 -f 839/1302/317 893/1294/317 835/1303/317 -f 890/1304/317 842/1305/317 896/1306/317 -f 896/1307/315 841/1308/315 895/1309/315 -f 897/1310/314 889/1311/314 890/1312/314 -f 895/1313/313 840/1314/313 897/1315/313 -f 889/1311/309 841/1308/309 842/1305/309 -f 846/1316/309 844/1317/309 845/1318/309 -f 866/1319/313 843/1320/313 864/1321/313 -f 864/1322/314 846/1316/314 859/1323/314 -f 865/1324/315 844/1317/315 866/1325/315 -f 859/1326/316 845/1318/316 865/1327/316 -f 850/1328/316 852/1329/316 848/1330/316 -f 848/1331/315 853/1332/315 847/1333/315 -f 849/1334/314 851/1335/314 850/1336/314 -f 847/1337/313 854/1338/313 849/1339/313 -f 851/1335/309 853/1332/309 852/1329/309 -f 858/1340/316 861/1341/316 856/1342/316 -f 856/1343/315 862/1344/315 855/1345/315 -f 857/1346/314 860/1347/314 858/1348/314 -f 855/1349/313 863/1350/313 857/1351/313 -f 860/1347/309 862/1344/309 861/1341/309 -f 871/1352/309 869/1353/309 870/1354/309 -f 876/1355/313 868/1356/313 874/1357/313 -f 874/1358/314 871/1352/314 873/1359/314 -f 875/1360/315 869/1353/315 876/1361/315 -f 873/1362/316 870/1354/316 875/1363/316 -f 880/1364/309 878/1365/309 879/1366/309 -f 884/1367/313 877/1368/313 882/1369/313 -f 882/1370/314 880/1364/314 881/1371/314 -f 883/1372/315 878/1365/315 884/1373/315 -f 881/1374/316 879/1366/316 883/1375/316 -f 872/1376/316 886/1377/316 838/1378/316 -f 838/1379/315 887/1380/315 836/1381/315 -f 867/1382/314 885/1383/314 872/1384/314 -f 836/1385/313 888/1386/313 867/1387/313 -f 885/1383/309 887/1380/309 886/1377/309 -f 910/1388/309 908/1389/309 909/1390/309 -f 959/1391/313 907/1392/313 928/1393/313 -f 928/1394/314 910/1388/314 923/1395/314 -f 957/1396/315 908/1389/315 959/1397/315 -f 923/1398/316 909/1390/316 957/1399/316 -f 914/1400/316 916/1401/316 912/1402/316 -f 912/1403/315 917/1404/315 911/1405/315 -f 913/1406/314 915/1407/314 914/1408/314 -f 911/1409/313 918/1410/313 913/1411/313 -f 915/1407/309 917/1404/309 916/1401/309 -f 922/1412/316 925/1413/316 920/1414/316 -f 920/1415/315 926/1416/315 919/1417/315 -f 921/1418/314 924/1419/314 922/1420/314 -f 919/1421/313 927/1422/313 921/1423/313 -f 924/1419/309 926/1416/309 925/1413/309 -f 935/1424/309 933/1425/309 934/1426/309 -f 940/1427/313 932/1428/313 938/1429/313 -f 938/1430/314 935/1424/314 937/1431/314 -f 939/1432/315 933/1425/315 940/1433/315 -f 937/1434/317 934/1426/317 939/1435/317 -f 944/1436/309 942/1437/309 943/1438/309 -f 948/1439/313 941/1440/313 946/1441/313 -f 946/1442/314 944/1436/314 945/1443/314 -f 947/1444/315 942/1437/315 948/1445/315 -f 945/1446/317 943/1438/317 947/1447/317 -f 936/1448/317 950/1449/317 930/1450/317 -f 930/1451/315 951/1452/315 929/1453/315 -f 931/1454/314 949/1455/314 936/1456/314 -f 929/1457/313 952/1458/313 931/1459/313 -f 949/1455/309 951/1452/309 950/1449/309 -f 906/1460/309 954/1461/309 953/1462/309 -f 900/1463/313 955/1464/313 898/1465/313 -f 898/1466/314 906/1460/314 905/1467/314 -f 899/1468/315 954/1461/315 900/1469/315 -f 905/1470/316 953/1462/316 899/1471/316 -f 956/1472/316 902/1473/316 960/1474/316 -f 960/1475/315 903/1476/315 961/1477/315 -f 958/1478/314 901/1479/314 956/1480/314 -f 961/1481/313 904/1482/313 958/1483/313 -f 901/1479/309 903/1476/309 902/1473/309 -f 998/1484/309 996/1485/309 997/1486/309 -f 962/1487/313 995/1488/313 965/1489/313 -f 965/1490/314 998/1484/314 967/1491/314 -f 963/1492/315 996/1485/315 962/1493/315 -f 967/1494/316 997/1486/316 963/1495/316 -f 994/1496/316 970/1497/316 1000/1498/316 -f 1000/1499/315 969/1500/315 999/1501/315 -f 1001/1502/314 993/1503/314 994/1504/314 -f 999/1505/313 968/1506/313 1001/1507/313 -f 993/1503/309 969/1500/309 970/1497/309 -f 975/1508/309 973/1509/309 974/1510/309 -f 980/1511/313 972/1512/313 978/1513/313 -f 978/1514/314 975/1508/314 977/1515/314 -f 979/1516/315 973/1509/315 980/1517/315 -f 977/1518/316 974/1510/316 979/1519/316 -f 984/1520/309 982/1521/309 983/1522/309 -f 988/1523/313 981/1524/313 986/1525/313 -f 986/1526/314 984/1520/314 985/1527/314 -f 987/1528/315 982/1521/315 988/1529/315 -f 985/1530/316 983/1522/316 987/1531/316 -f 976/1532/316 990/1533/316 966/1534/316 -f 966/1535/315 991/1536/315 964/1537/315 -f 971/1538/314 989/1539/314 976/1540/314 -f 964/1541/313 992/1542/313 971/1543/313 -f 989/1539/309 991/1536/309 990/1533/309 -f 1014/1544/309 1012/1545/309 1013/1546/309 -f 1071/1547/313 1011/1548/313 1032/1549/313 -f 1032/1550/314 1014/1544/314 1027/1551/314 -f 1069/1552/315 1012/1545/315 1071/1553/315 -f 1027/1554/317 1013/1546/317 1069/1555/317 -f 1018/1556/317 1020/1557/317 1016/1558/317 -f 1016/1559/315 1021/1560/315 1015/1561/315 -f 1017/1562/314 1019/1563/314 1018/1564/314 -f 1015/1565/313 1022/1566/313 1017/1567/313 -f 1019/1563/309 1021/1560/309 1020/1557/309 -f 1026/1568/317 1029/1569/317 1024/1570/317 -f 1024/1571/315 1030/1572/315 1023/1573/315 -f 1025/1574/314 1028/1575/314 1026/1576/314 -f 1023/1577/313 1031/1578/313 1025/1579/313 -f 1028/1575/309 1030/1572/309 1029/1569/309 -f 1064/1580/309 1066/1581/309 1065/1582/309 -f 1004/1583/313 1067/1584/313 1002/1585/313 -f 1002/1586/314 1064/1580/314 1063/1587/314 -f 1003/1588/315 1066/1581/315 1004/1589/315 -f 1063/1590/316 1065/1582/316 1003/1591/316 -f 1068/1592/316 1006/1593/316 1072/1594/316 -f 1072/1595/315 1007/1596/315 1073/1597/315 -f 1070/1598/314 1005/1599/314 1068/1600/314 -f 1073/1601/313 1008/1602/313 1070/1603/313 -f 1005/1599/309 1007/1596/309 1006/1593/309 -f 1034/1604/309 1010/1605/309 1033/1606/309 -f 1062/1607/313 1009/1608/313 1060/1609/313 -f 1060/1610/314 1034/1604/314 1053/1611/314 -f 1061/1612/315 1010/1605/315 1062/1613/315 -f 1053/1614/316 1033/1606/316 1061/1615/316 -f 1038/1616/316 1040/1617/316 1036/1618/316 -f 1036/1619/315 1041/1620/315 1035/1621/315 -f 1037/1622/314 1039/1623/314 1038/1624/314 -f 1035/1625/313 1042/1626/313 1037/1627/313 -f 1039/1623/309 1041/1620/309 1040/1617/309 -f 1050/1628/309 1048/1629/309 1049/1630/309 -f 1055/1631/313 1047/1632/313 1052/1633/313 -f 1052/1634/314 1050/1628/314 1051/1635/314 -f 1054/1636/315 1048/1629/315 1055/1637/315 -f 1051/1638/316 1049/1630/316 1054/1639/316 -f 1046/1640/316 1057/1641/316 1044/1642/316 -f 1044/1643/315 1058/1644/315 1043/1645/315 -f 1045/1646/314 1056/1647/314 1046/1648/314 -f 1043/1649/313 1059/1650/313 1045/1651/313 -f 1056/1647/309 1058/1644/309 1057/1641/309 -f 1101/1652/307 1112/1653/307 1100/1654/307 -f 1108/1655/307 1119/1656/307 1107/1657/307 -f 1104/1658/307 1117/1659/307 1116/1660/307 -f 1102/1661/307 1113/1662/307 1101/1652/307 -f 1109/1663/307 1120/1664/307 1108/1655/307 -f 1099/1665/307 1110/1666/307 1098/1667/307 -f 1106/1668/307 1117/1659/307 1105/1669/307 -f 1102/1661/307 1115/1670/307 1114/1671/307 -f 1098/1667/307 1121/1672/307 1109/1663/307 -f 1100/1654/307 1111/1673/307 1099/1665/307 -f 1106/1668/307 1119/1674/307 1118/1675/307 -f 1104/1658/307 1115/1670/307 1103/1676/307 -f 1137/1677/307 1148/1678/307 1136/1679/307 -f 1144/1680/307 1155/1681/307 1143/1682/307 -f 1140/1683/307 1153/1684/307 1152/1685/307 -f 1138/1686/307 1149/1687/307 1137/1677/307 -f 1145/1688/307 1156/1689/307 1144/1680/307 -f 1135/1690/307 1146/1691/307 1134/1692/307 -f 1142/1693/307 1153/1684/307 1141/1694/307 -f 1138/1686/307 1151/1695/307 1150/1696/307 -f 1134/1692/307 1157/1697/307 1145/1688/307 -f 1136/1679/307 1147/1698/307 1135/1690/307 -f 1142/1693/307 1155/1699/307 1154/1700/307 -f 1140/1683/307 1151/1695/307 1139/1701/307 -f 1182/1702/318 1181/1703/318 1179/1704/318 -f 1184/1705/319 1181/1703/319 1180/1706/319 -f 1183/1707/320 1178/1708/320 1185/1709/320 -f 1185/1709/321 1182/1710/321 1179/1704/321 -f 1181/1703/307 1185/1709/307 1179/1704/307 -f 1172/1711/317 1170/1712/317 1171/1713/317 -f 1177/1714/313 1175/1715/313 1176/1716/313 -f 1177/1717/314 1172/1711/314 1171/1718/314 -f 1173/1719/309 1176/1716/309 1175/1715/309 -f 1173/1719/315 1174/1720/315 1170/1721/315 -f 1212/1722/317 1210/1723/317 1211/1724/317 -f 1217/1725/313 1215/1726/313 1216/1727/313 -f 1217/1728/314 1212/1722/314 1211/1729/314 -f 1213/1730/309 1216/1727/309 1215/1726/309 -f 1213/1730/315 1214/1731/315 1210/1732/315 -f 1220/1733/317 1218/1734/317 1219/1735/317 -f 1225/1736/313 1223/1737/313 1224/1738/313 -f 1225/1739/314 1220/1733/314 1219/1740/314 -f 1221/1741/309 1224/1738/309 1223/1737/309 -f 1221/1741/315 1222/1742/315 1218/1743/315 -f 1228/1744/317 1226/1745/317 1227/1746/317 -f 1233/1747/313 1231/1748/313 1232/1749/313 -f 1233/1750/314 1228/1744/314 1227/1751/314 -f 1229/1752/309 1232/1749/309 1231/1748/309 -f 1229/1752/315 1230/1753/315 1226/1754/315 -f 1243/1755/309 1248/1756/309 1249/1757/309 -f 1251/1758/309 1252/1759/309 1250/1760/309 -f 1255/1761/309 1256/1762/309 1254/1763/309 -f 1262/1764/318 1261/1765/318 1259/1766/318 -f 1264/1767/319 1261/1765/319 1260/1768/319 -f 1263/1769/320 1258/1770/320 1265/1771/320 -f 1265/1771/321 1262/1772/321 1259/1766/321 -f 1261/1765/307 1265/1771/307 1259/1766/307 -f 1294/1773/318 1293/1774/318 1291/1775/318 -f 1296/1776/319 1293/1774/319 1292/1777/319 -f 1295/1778/320 1290/1779/320 1297/1780/320 -f 1297/1780/322 1294/1781/322 1291/1775/322 -f 1293/1774/307 1297/1780/307 1291/1775/307 -f 1326/1782/318 1325/1783/318 1323/1784/318 -f 1328/1785/319 1325/1783/319 1324/1786/319 -f 1327/1787/320 1322/1788/320 1329/1789/320 -f 1329/1789/322 1326/1790/322 1323/1784/322 -f 1325/1783/307 1329/1789/307 1323/1784/307 -f 1358/1791/318 1357/1792/318 1355/1793/318 -f 1360/1794/319 1357/1792/319 1356/1795/319 -f 1359/1796/320 1354/1797/320 1361/1798/320 -f 1361/1798/322 1358/1799/322 1355/1793/322 -f 1357/1792/307 1361/1798/307 1355/1793/307 -f 1390/1800/318 1389/1801/318 1387/1802/318 -f 1392/1803/319 1389/1801/319 1388/1804/319 -f 1391/1805/320 1386/1806/320 1393/1807/320 -f 1393/1807/322 1390/1808/322 1387/1802/322 -f 1389/1801/307 1393/1807/307 1387/1802/307 -f 1422/1809/318 1421/1810/318 1419/1811/318 -f 1424/1812/319 1421/1810/319 1420/1813/319 -f 1423/1814/320 1418/1815/320 1425/1816/320 -f 1425/1816/321 1422/1817/321 1419/1811/321 -f 1421/1810/307 1425/1816/307 1419/1811/307 -f 1454/1818/318 1453/1819/318 1451/1820/318 -f 1456/1821/319 1453/1819/319 1452/1822/319 -f 1455/1823/320 1450/1824/320 1457/1825/320 -f 1457/1825/321 1454/1826/321 1451/1820/321 -f 1453/1819/307 1457/1825/307 1451/1820/307 -f 1486/1827/318 1485/1828/318 1483/1829/318 -f 1488/1830/319 1485/1828/319 1484/1831/319 -f 1487/1832/320 1482/1833/320 1489/1834/320 -f 1489/1834/321 1486/1835/321 1483/1829/321 -f 1485/1828/307 1489/1834/307 1483/1829/307 -f 1554/1836/309 1556/1837/309 1555/1838/309 -f 1516/1839/313 1557/1840/313 1514/1841/313 -f 1514/1842/314 1554/1836/314 1553/1843/314 -f 1515/1844/315 1556/1837/315 1516/1845/315 -f 1553/1846/316 1555/1838/316 1515/1847/316 -f 1558/1848/316 1518/1849/316 1560/1850/316 -f 1560/1851/315 1519/1852/315 1561/1853/315 -f 1559/1854/314 1517/1855/314 1558/1856/314 -f 1561/1857/313 1520/1858/313 1559/1859/313 -f 1517/1855/309 1519/1852/309 1518/1849/309 -f 1524/1860/309 1522/1861/309 1523/1862/309 -f 1552/1863/313 1521/1864/313 1550/1865/313 -f 1550/1866/314 1524/1860/314 1543/1867/314 -f 1551/1868/315 1522/1861/315 1552/1869/315 -f 1543/1870/316 1523/1862/316 1551/1871/316 -f 1528/1872/316 1530/1873/316 1526/1874/316 -f 1526/1875/315 1531/1876/315 1525/1877/315 -f 1527/1878/314 1529/1879/314 1528/1880/314 -f 1525/1881/313 1532/1882/313 1527/1883/313 -f 1529/1879/309 1531/1876/309 1530/1873/309 -f 1540/1884/309 1538/1885/309 1539/1886/309 -f 1545/1887/313 1537/1888/313 1542/1889/313 -f 1542/1890/314 1540/1884/314 1541/1891/314 -f 1544/1892/315 1538/1885/315 1545/1893/315 -f 1541/1894/316 1539/1886/316 1544/1895/316 -f 1536/1896/316 1547/1897/316 1534/1898/316 -f 1534/1899/315 1548/1900/315 1533/1901/315 -f 1535/1902/314 1546/1903/314 1536/1904/314 -f 1533/1905/313 1549/1906/313 1535/1907/313 -f 1546/1903/309 1548/1900/309 1547/1897/309 -f 1602/1908/309 1604/1909/309 1603/1910/309 -f 1564/1911/313 1605/1912/313 1562/1913/313 -f 1562/1914/314 1602/1908/314 1601/1915/314 -f 1563/1916/315 1604/1909/315 1564/1917/315 -f 1601/1918/316 1603/1910/316 1563/1919/316 -f 1606/1920/316 1566/1921/316 1608/1922/316 -f 1608/1923/315 1567/1924/315 1609/1925/315 -f 1607/1926/314 1565/1927/314 1606/1928/314 -f 1609/1929/313 1568/1930/313 1607/1931/313 -f 1565/1927/309 1567/1924/309 1566/1921/309 -f 1572/1932/309 1570/1933/309 1571/1934/309 -f 1600/1935/313 1569/1936/313 1598/1937/313 -f 1598/1938/314 1572/1932/314 1591/1939/314 -f 1599/1940/315 1570/1933/315 1600/1941/315 -f 1591/1942/316 1571/1934/316 1599/1943/316 -f 1576/1944/316 1578/1945/316 1574/1946/316 -f 1574/1947/315 1579/1948/315 1573/1949/315 -f 1575/1950/314 1577/1951/314 1576/1952/314 -f 1573/1953/313 1580/1954/313 1575/1955/313 -f 1577/1951/309 1579/1948/309 1578/1945/309 -f 1588/1956/309 1586/1957/309 1587/1958/309 -f 1593/1959/313 1585/1960/313 1590/1961/313 -f 1590/1962/314 1588/1956/314 1589/1963/314 -f 1592/1964/315 1586/1957/315 1593/1965/315 -f 1589/1966/316 1587/1958/316 1592/1967/316 -f 1584/1968/316 1595/1969/316 1582/1970/316 -f 1582/1971/315 1596/1972/315 1581/1973/315 -f 1583/1974/314 1594/1975/314 1584/1976/314 -f 1581/1977/313 1597/1978/313 1583/1979/313 -f 1594/1975/309 1596/1972/309 1595/1969/309 -f 483/761/306 485/765/306 484/762/306 -f 483/761/307 486/786/307 487/764/307 -f 486/766/308 488/769/308 489/767/308 -f 488/769/307 490/771/307 491/770/307 -f 490/771/309 492/782/309 493/772/309 -f 492/773/307 494/776/307 495/774/307 -f 494/776/309 496/1980/309 497/777/309 -f 497/777/310 496/1980/310 482/778/310 -f 489/780/311 491/770/311 493/772/311 -f 492/782/312 490/771/312 488/783/312 -f 483/761/312 482/1981/312 486/786/312 -f 482/1981/312 496/785/312 486/786/312 -f 496/785/312 494/776/312 492/773/312 -f 484/1982/311 485/765/311 487/764/311 -f 493/775/311 495/774/311 497/787/311 -f 484/1982/311 487/764/311 497/787/311 -f 513/788/309 510/792/309 511/789/309 -f 526/791/323 511/789/323 510/792/323 -f 524/794/324 510/792/324 513/788/324 -f 525/796/325 512/790/325 511/789/325 -f 523/798/317 513/788/317 512/790/317 -f 518/800/317 519/807/317 520/801/317 -f 515/803/325 520/801/325 521/804/325 -f 517/806/324 522/810/324 519/807/324 -f 514/809/323 521/804/323 522/810/323 -f 519/807/309 522/810/309 521/804/309 -f 530/812/309 527/816/309 528/813/309 -f 534/815/323 528/813/323 527/816/323 -f 532/818/324 527/816/324 530/812/324 -f 533/820/325 529/814/325 528/813/325 -f 531/822/317 530/812/317 529/814/317 -f 516/824/317 535/831/317 536/825/317 -f 508/827/325 536/825/325 537/828/325 -f 509/830/324 538/834/324 535/831/324 -f 507/833/323 537/828/323 538/834/323 -f 535/831/309 538/834/309 537/828/309 -f 542/836/309 539/840/309 540/837/309 -f 498/839/323 540/837/323 539/840/323 -f 500/842/324 539/840/324 542/836/324 -f 499/844/325 541/838/325 540/837/325 -f 501/846/317 542/836/317 541/838/317 -f 506/848/317 505/855/317 504/849/317 -f 544/851/325 504/849/325 503/852/325 -f 545/854/324 502/858/324 505/855/324 -f 543/857/323 503/852/323 502/858/323 -f 505/855/309 502/858/309 503/852/309 -f 563/860/309 560/864/309 561/861/309 -f 576/863/313 561/861/313 560/864/313 -f 574/866/324 560/864/324 563/860/324 -f 575/868/325 562/862/325 561/861/325 -f 573/870/317 563/860/317 562/862/317 -f 568/872/317 569/879/317 570/873/317 -f 565/875/325 570/873/325 571/876/325 -f 567/878/324 572/882/324 569/879/324 -f 564/881/313 571/876/313 572/882/313 -f 569/879/309 572/882/309 571/876/309 -f 580/884/309 577/888/309 578/885/309 -f 584/887/313 578/885/313 577/888/313 -f 582/890/324 577/888/324 580/884/324 -f 583/892/325 579/886/325 578/885/325 -f 581/894/317 580/884/317 579/886/317 -f 566/896/317 585/903/317 586/897/317 -f 558/899/325 586/897/325 609/900/325 -f 559/902/324 610/906/324 585/903/324 -f 557/905/313 609/900/313 610/906/313 -f 585/903/309 610/906/309 609/900/309 -f 614/908/309 611/912/309 612/909/309 -f 546/911/313 612/909/313 611/912/313 -f 549/914/324 611/912/324 614/908/324 -f 547/916/325 613/910/325 612/909/325 -f 551/918/317 614/908/317 613/910/317 -f 556/920/317 555/927/317 554/921/317 -f 616/923/325 554/921/325 553/924/325 -f 617/926/324 552/930/324 555/927/324 -f 615/929/313 553/924/313 552/930/313 -f 555/927/309 552/930/309 553/924/309 -f 591/932/309 588/936/309 589/933/309 -f 596/935/313 589/933/313 588/936/313 -f 594/938/324 588/936/324 591/932/324 -f 595/940/325 590/934/325 589/933/325 -f 593/942/317 591/932/317 590/934/317 -f 600/944/309 597/948/309 598/945/309 -f 604/947/313 598/945/313 597/948/313 -f 602/950/324 597/948/324 600/944/324 -f 603/952/325 599/946/325 598/945/325 -f 601/954/317 600/944/317 599/946/317 -f 592/956/317 605/963/317 606/957/317 -f 550/959/325 606/957/325 607/960/325 -f 587/962/324 608/966/324 605/963/324 -f 548/965/313 607/960/313 608/966/313 -f 605/963/309 608/966/309 607/960/309 -f 633/968/309 630/972/309 631/969/309 -f 646/971/313 631/969/313 630/972/313 -f 644/974/324 630/972/324 633/968/324 -f 645/976/325 632/970/325 631/969/325 -f 643/978/317 633/968/317 632/970/317 -f 638/980/317 639/987/317 640/981/317 -f 635/983/325 640/981/325 641/984/325 -f 637/986/324 642/990/324 639/987/324 -f 634/989/313 641/984/313 642/990/313 -f 639/987/309 642/990/309 641/984/309 -f 650/992/309 647/996/309 648/993/309 -f 654/995/313 648/993/313 647/996/313 -f 652/998/324 647/996/324 650/992/324 -f 653/1000/325 649/994/325 648/993/325 -f 651/1002/317 650/992/317 649/994/317 -f 636/1004/317 655/1011/317 656/1005/317 -f 628/1007/325 656/1005/325 657/1008/325 -f 629/1010/324 658/1014/324 655/1011/324 -f 627/1013/313 657/1008/313 658/1014/313 -f 655/1011/309 658/1014/309 657/1008/309 -f 662/1016/309 659/1020/309 660/1017/309 -f 618/1019/313 660/1017/313 659/1020/313 -f 620/1022/324 659/1020/324 662/1016/324 -f 619/1024/325 661/1018/325 660/1017/325 -f 621/1026/317 662/1016/317 661/1018/317 -f 626/1028/317 625/1035/317 624/1029/317 -f 664/1031/325 624/1029/325 623/1032/325 -f 665/1034/324 622/1038/324 625/1035/324 -f 663/1037/313 623/1032/313 622/1038/313 -f 625/1035/309 622/1038/309 623/1032/309 -f 730/1040/309 733/1044/309 732/1041/309 -f 669/1043/313 732/1041/313 733/1044/313 -f 666/1046/324 733/1044/324 730/1040/324 -f 667/1048/325 731/1042/325 732/1041/325 -f 729/1050/317 730/1040/317 731/1042/317 -f 734/1052/317 671/1059/317 672/1053/317 -f 736/1055/325 672/1053/325 673/1056/325 -f 735/1058/324 674/1062/324 671/1059/324 -f 737/1061/313 673/1056/313 674/1062/313 -f 671/1059/309 674/1062/309 673/1056/309 -f 678/1064/309 675/1068/309 676/1065/309 -f 706/1067/313 676/1065/313 675/1068/313 -f 704/1070/324 675/1068/324 678/1064/324 -f 705/1072/325 677/1066/325 676/1065/325 -f 697/1074/317 678/1064/317 677/1066/317 -f 682/1076/317 683/1083/317 684/1077/317 -f 680/1079/325 684/1077/325 685/1080/325 -f 681/1082/324 686/1086/324 683/1083/324 -f 679/1085/313 685/1080/313 686/1086/313 -f 683/1083/309 686/1086/309 685/1080/309 -f 694/1088/309 691/1092/309 692/1089/309 -f 699/1091/313 692/1089/313 691/1092/313 -f 696/1094/324 691/1092/324 694/1088/324 -f 698/1096/325 693/1090/325 692/1089/325 -f 695/1098/317 694/1088/317 693/1090/317 -f 690/1100/317 700/1107/317 701/1101/317 -f 688/1103/325 701/1101/325 702/1104/325 -f 689/1106/324 703/1110/324 700/1107/324 -f 687/1109/313 702/1104/313 703/1110/313 -f 700/1107/309 703/1110/309 702/1104/309 -f 708/1112/309 668/1116/309 670/1113/309 -f 728/1115/313 670/1113/313 668/1116/313 -f 726/1118/324 668/1116/324 708/1112/324 -f 727/1120/325 707/1114/325 670/1113/325 -f 721/1122/317 708/1112/317 707/1114/317 -f 712/1124/317 713/1131/317 714/1125/317 -f 710/1127/325 714/1125/325 715/1128/325 -f 711/1130/324 716/1134/324 713/1131/324 -f 709/1133/313 715/1128/313 716/1134/313 -f 713/1131/309 716/1134/309 715/1128/309 -f 720/1136/317 722/1143/317 723/1137/317 -f 718/1139/325 723/1137/325 724/1140/325 -f 719/1142/324 725/1146/324 722/1143/324 -f 717/1145/313 724/1140/313 725/1146/313 -f 722/1143/309 725/1146/309 724/1140/309 -f 750/1148/309 747/1152/309 748/1149/309 -f 829/1151/313 748/1149/313 747/1152/313 -f 784/1154/324 747/1152/324 750/1148/324 -f 827/1156/325 749/1150/325 748/1149/325 -f 775/1158/317 750/1148/317 749/1150/317 -f 766/1160/317 767/1191/317 768/1161/317 -f 757/1163/309 754/1167/309 755/1164/309 -f 833/1166/323 755/1164/323 754/1167/323 -f 799/1169/324 754/1167/324 757/1163/324 -f 832/1171/325 756/1165/325 755/1164/325 -f 794/1173/317 757/1163/317 756/1165/317 -f 761/1175/317 762/1182/317 763/1176/317 -f 759/1178/325 763/1176/325 764/1179/325 -f 760/1181/324 765/1185/324 762/1182/324 -f 758/1184/323 764/1179/323 765/1185/323 -f 762/1182/309 765/1185/309 764/1179/309 -f 752/1187/325 768/1161/325 769/1188/325 -f 753/1190/324 770/1194/324 767/1191/324 -f 751/1193/313 769/1188/313 770/1194/313 -f 767/1191/309 770/1194/309 769/1188/309 -f 774/1196/317 780/1203/317 781/1197/317 -f 772/1199/325 781/1197/325 782/1200/325 -f 773/1202/324 783/1206/324 780/1203/324 -f 771/1205/313 782/1200/313 783/1206/313 -f 780/1203/309 783/1206/309 782/1200/309 -f 822/1208/309 825/1212/309 824/1209/309 -f 740/1211/313 824/1209/313 825/1212/313 -f 738/1214/324 825/1212/324 822/1208/324 -f 739/1216/325 823/1210/325 824/1209/325 -f 821/1218/317 822/1208/317 823/1210/317 -f 826/1220/317 741/1239/317 742/1221/317 -f 779/1223/317 795/1230/317 796/1224/317 -f 777/1226/325 796/1224/325 797/1227/325 -f 778/1229/324 798/1233/324 795/1230/324 -f 776/1232/323 797/1227/323 798/1233/323 -f 795/1230/309 798/1233/309 797/1227/309 -f 830/1235/325 742/1221/325 743/1236/325 -f 828/1238/324 744/1242/324 741/1239/324 -f 831/1241/313 743/1236/313 744/1242/313 -f 741/1239/309 744/1242/309 743/1236/309 -f 786/1244/309 745/1248/309 746/1245/309 -f 820/1247/313 746/1245/313 745/1248/313 -f 818/1250/324 745/1248/324 786/1244/324 -f 819/1252/325 785/1246/325 746/1245/325 -f 811/1254/317 786/1244/317 785/1246/317 -f 790/1256/317 791/1263/317 792/1257/317 -f 788/1259/325 792/1257/325 793/1260/325 -f 789/1262/324 800/1266/324 791/1263/324 -f 787/1265/313 793/1260/313 800/1266/313 -f 791/1263/309 800/1266/309 793/1260/309 -f 808/1268/309 805/1272/309 806/1269/309 -f 813/1271/313 806/1269/313 805/1272/313 -f 810/1274/324 805/1272/324 808/1268/324 -f 812/1276/325 807/1270/325 806/1269/325 -f 809/1278/317 808/1268/317 807/1270/317 -f 804/1280/317 814/1287/317 815/1281/317 -f 802/1283/325 815/1281/325 816/1284/325 -f 803/1286/324 817/1290/324 814/1287/324 -f 801/1289/313 816/1284/313 817/1290/313 -f 814/1287/309 817/1290/309 816/1284/309 -f 894/1292/309 891/1296/309 892/1293/309 -f 834/1295/313 892/1293/313 891/1296/313 -f 837/1298/324 891/1296/324 894/1292/324 -f 835/1300/325 893/1294/325 892/1293/325 -f 839/1302/317 894/1292/317 893/1294/317 -f 890/1304/317 889/1311/317 842/1305/317 -f 896/1307/325 842/1305/325 841/1308/325 -f 897/1310/324 840/1314/324 889/1311/324 -f 895/1313/313 841/1308/313 840/1314/313 -f 889/1311/309 840/1314/309 841/1308/309 -f 846/1316/309 843/1320/309 844/1317/309 -f 866/1319/313 844/1317/313 843/1320/313 -f 864/1322/324 843/1320/324 846/1316/324 -f 865/1324/325 845/1318/325 844/1317/325 -f 859/1326/317 846/1316/317 845/1318/317 -f 850/1328/317 851/1335/317 852/1329/317 -f 848/1331/325 852/1329/325 853/1332/325 -f 849/1334/324 854/1338/324 851/1335/324 -f 847/1337/313 853/1332/313 854/1338/313 -f 851/1335/309 854/1338/309 853/1332/309 -f 858/1340/317 860/1347/317 861/1341/317 -f 856/1343/325 861/1341/325 862/1344/325 -f 857/1346/324 863/1350/324 860/1347/324 -f 855/1349/313 862/1344/313 863/1350/313 -f 860/1347/309 863/1350/309 862/1344/309 -f 871/1352/309 868/1356/309 869/1353/309 -f 876/1355/323 869/1353/323 868/1356/323 -f 874/1358/324 868/1356/324 871/1352/324 -f 875/1360/325 870/1354/325 869/1353/325 -f 873/1362/317 871/1352/317 870/1354/317 -f 880/1364/309 877/1368/309 878/1365/309 -f 884/1367/323 878/1365/323 877/1368/323 -f 882/1370/324 877/1368/324 880/1364/324 -f 883/1372/325 879/1366/325 878/1365/325 -f 881/1374/317 880/1364/317 879/1366/317 -f 872/1376/317 885/1383/317 886/1377/317 -f 838/1379/325 886/1377/325 887/1380/325 -f 867/1382/324 888/1386/324 885/1383/324 -f 836/1385/323 887/1380/323 888/1386/323 -f 885/1383/309 888/1386/309 887/1380/309 -f 910/1388/309 907/1392/309 908/1389/309 -f 959/1391/313 908/1389/313 907/1392/313 -f 928/1394/324 907/1392/324 910/1388/324 -f 957/1396/325 909/1390/325 908/1389/325 -f 923/1398/317 910/1388/317 909/1390/317 -f 914/1400/317 915/1407/317 916/1401/317 -f 912/1403/325 916/1401/325 917/1404/325 -f 913/1406/324 918/1410/324 915/1407/324 -f 911/1409/313 917/1404/313 918/1410/313 -f 915/1407/309 918/1410/309 917/1404/309 -f 922/1412/317 924/1419/317 925/1413/317 -f 920/1415/325 925/1413/325 926/1416/325 -f 921/1418/324 927/1422/324 924/1419/324 -f 919/1421/313 926/1416/313 927/1422/313 -f 924/1419/309 927/1422/309 926/1416/309 -f 935/1424/309 932/1428/309 933/1425/309 -f 940/1427/313 933/1425/313 932/1428/313 -f 938/1430/324 932/1428/324 935/1424/324 -f 939/1432/325 934/1426/325 933/1425/325 -f 937/1434/317 935/1424/317 934/1426/317 -f 944/1436/309 941/1440/309 942/1437/309 -f 948/1439/313 942/1437/313 941/1440/313 -f 946/1442/324 941/1440/324 944/1436/324 -f 947/1444/325 943/1438/325 942/1437/325 -f 945/1446/317 944/1436/317 943/1438/317 -f 936/1448/317 949/1455/317 950/1449/317 -f 930/1451/325 950/1449/325 951/1452/325 -f 931/1454/324 952/1458/324 949/1455/324 -f 929/1457/313 951/1452/313 952/1458/313 -f 949/1455/309 952/1458/309 951/1452/309 -f 906/1460/309 955/1464/309 954/1461/309 -f 900/1463/323 954/1461/323 955/1464/323 -f 898/1466/324 955/1464/324 906/1460/324 -f 899/1468/325 953/1462/325 954/1461/325 -f 905/1470/317 906/1460/317 953/1462/317 -f 956/1472/317 901/1479/317 902/1473/317 -f 960/1475/325 902/1473/325 903/1476/325 -f 958/1478/324 904/1482/324 901/1479/324 -f 961/1481/323 903/1476/323 904/1482/323 -f 901/1479/309 904/1482/309 903/1476/309 -f 998/1484/309 995/1488/309 996/1485/309 -f 962/1487/313 996/1485/313 995/1488/313 -f 965/1490/324 995/1488/324 998/1484/324 -f 963/1492/325 997/1486/325 996/1485/325 -f 967/1494/317 998/1484/317 997/1486/317 -f 994/1496/317 993/1503/317 970/1497/317 -f 1000/1499/325 970/1497/325 969/1500/325 -f 1001/1502/324 968/1506/324 993/1503/324 -f 999/1505/313 969/1500/313 968/1506/313 -f 993/1503/309 968/1506/309 969/1500/309 -f 975/1508/309 972/1512/309 973/1509/309 -f 980/1511/323 973/1509/323 972/1512/323 -f 978/1514/324 972/1512/324 975/1508/324 -f 979/1516/325 974/1510/325 973/1509/325 -f 977/1518/317 975/1508/317 974/1510/317 -f 984/1520/309 981/1524/309 982/1521/309 -f 988/1523/323 982/1521/323 981/1524/323 -f 986/1526/324 981/1524/324 984/1520/324 -f 987/1528/325 983/1522/325 982/1521/325 -f 985/1530/317 984/1520/317 983/1522/317 -f 976/1532/317 989/1539/317 990/1533/317 -f 966/1535/325 990/1533/325 991/1536/325 -f 971/1538/324 992/1542/324 989/1539/324 -f 964/1541/323 991/1536/323 992/1542/323 -f 989/1539/309 992/1542/309 991/1536/309 -f 1014/1544/309 1011/1548/309 1012/1545/309 -f 1071/1547/313 1012/1545/313 1011/1548/313 -f 1032/1550/324 1011/1548/324 1014/1544/324 -f 1069/1552/325 1013/1546/325 1012/1545/325 -f 1027/1554/317 1014/1544/317 1013/1546/317 -f 1018/1556/317 1019/1563/317 1020/1557/317 -f 1016/1559/325 1020/1557/325 1021/1560/325 -f 1017/1562/324 1022/1566/324 1019/1563/324 -f 1015/1565/313 1021/1560/313 1022/1566/313 -f 1019/1563/309 1022/1566/309 1021/1560/309 -f 1026/1568/317 1028/1575/317 1029/1569/317 -f 1024/1571/325 1029/1569/325 1030/1572/325 -f 1025/1574/324 1031/1578/324 1028/1575/324 -f 1023/1577/313 1030/1572/313 1031/1578/313 -f 1028/1575/309 1031/1578/309 1030/1572/309 -f 1064/1580/309 1067/1584/309 1066/1581/309 -f 1004/1583/323 1066/1581/323 1067/1584/323 -f 1002/1586/324 1067/1584/324 1064/1580/324 -f 1003/1588/325 1065/1582/325 1066/1581/325 -f 1063/1590/317 1064/1580/317 1065/1582/317 -f 1068/1592/317 1005/1599/317 1006/1593/317 -f 1072/1595/325 1006/1593/325 1007/1596/325 -f 1070/1598/324 1008/1602/324 1005/1599/324 -f 1073/1601/323 1007/1596/323 1008/1602/323 -f 1005/1599/309 1008/1602/309 1007/1596/309 -f 1034/1604/309 1009/1608/309 1010/1605/309 -f 1062/1607/323 1010/1605/323 1009/1608/323 -f 1060/1610/324 1009/1608/324 1034/1604/324 -f 1061/1612/325 1033/1606/325 1010/1605/325 -f 1053/1614/317 1034/1604/317 1033/1606/317 -f 1038/1616/317 1039/1623/317 1040/1617/317 -f 1036/1619/325 1040/1617/325 1041/1620/325 -f 1037/1622/324 1042/1626/324 1039/1623/324 -f 1035/1625/323 1041/1620/323 1042/1626/323 -f 1039/1623/309 1042/1626/309 1041/1620/309 -f 1050/1628/309 1047/1632/309 1048/1629/309 -f 1055/1631/323 1048/1629/323 1047/1632/323 -f 1052/1634/324 1047/1632/324 1050/1628/324 -f 1054/1636/325 1049/1630/325 1048/1629/325 -f 1051/1638/317 1050/1628/317 1049/1630/317 -f 1046/1640/317 1056/1647/317 1057/1641/317 -f 1044/1643/325 1057/1641/325 1058/1644/325 -f 1045/1646/324 1059/1650/324 1056/1647/324 -f 1043/1649/323 1058/1644/323 1059/1650/323 -f 1056/1647/309 1059/1650/309 1058/1644/309 -f 1101/1652/307 1113/1662/307 1112/1653/307 -f 1108/1655/307 1120/1664/307 1119/1656/307 -f 1104/1658/307 1105/1669/307 1117/1659/307 -f 1102/1661/307 1114/1671/307 1113/1662/307 -f 1109/1663/307 1121/1672/307 1120/1664/307 -f 1099/1665/307 1111/1673/307 1110/1666/307 -f 1106/1668/307 1118/1675/307 1117/1659/307 -f 1102/1661/307 1103/1676/307 1115/1670/307 -f 1098/1667/307 1110/1666/307 1121/1672/307 -f 1100/1654/307 1112/1653/307 1111/1673/307 -f 1106/1668/307 1107/1983/307 1119/1674/307 -f 1104/1658/307 1116/1660/307 1115/1670/307 -f 1137/1677/307 1149/1687/307 1148/1678/307 -f 1144/1680/307 1156/1689/307 1155/1681/307 -f 1140/1683/307 1141/1694/307 1153/1684/307 -f 1138/1686/307 1150/1696/307 1149/1687/307 -f 1145/1688/307 1157/1697/307 1156/1689/307 -f 1135/1690/307 1147/1698/307 1146/1691/307 -f 1142/1693/307 1154/1700/307 1153/1684/307 -f 1138/1686/307 1139/1701/307 1151/1695/307 -f 1134/1692/307 1146/1691/307 1157/1697/307 -f 1136/1679/307 1148/1678/307 1147/1698/307 -f 1142/1693/307 1143/1984/307 1155/1699/307 -f 1140/1683/307 1152/1685/307 1151/1695/307 -f 1182/1702/318 1180/1985/318 1181/1703/318 -f 1184/1705/326 1183/1707/326 1181/1703/326 -f 1183/1707/320 1184/1986/320 1178/1708/320 -f 1185/1709/321 1178/1987/321 1182/1710/321 -f 1181/1703/307 1183/1707/307 1185/1709/307 -f 1172/1711/317 1173/1719/317 1170/1712/317 -f 1177/1714/323 1174/1988/323 1175/1715/323 -f 1177/1717/314 1176/1716/314 1172/1711/314 -f 1173/1719/309 1172/1711/309 1176/1716/309 -f 1173/1719/315 1175/1715/315 1174/1720/315 -f 1212/1722/316 1213/1730/316 1210/1723/316 -f 1217/1725/313 1214/1989/313 1215/1726/313 -f 1217/1728/314 1216/1727/314 1212/1722/314 -f 1213/1730/309 1212/1722/309 1216/1727/309 -f 1213/1730/315 1215/1726/315 1214/1731/315 -f 1220/1733/316 1221/1741/316 1218/1734/316 -f 1225/1736/313 1222/1990/313 1223/1737/313 -f 1225/1739/314 1224/1738/314 1220/1733/314 -f 1221/1741/309 1220/1733/309 1224/1738/309 -f 1221/1741/315 1223/1737/315 1222/1742/315 -f 1228/1744/317 1229/1752/317 1226/1745/317 -f 1233/1747/323 1230/1991/323 1231/1748/323 -f 1233/1750/314 1232/1749/314 1228/1744/314 -f 1229/1752/309 1228/1744/309 1232/1749/309 -f 1229/1752/315 1231/1748/315 1230/1753/315 -f 1249/1757/309 1246/1992/309 1245/1993/309 -f 1246/1992/309 1247/1994/309 1245/1993/309 -f 1247/1994/309 1244/1995/309 1245/1993/309 -f 1245/1993/309 1242/1996/309 1249/1757/309 -f 1242/1996/309 1243/1755/309 1249/1757/309 -f 1251/1758/309 1253/1997/309 1252/1759/309 -f 1255/1761/309 1257/1998/309 1256/1762/309 -f 1262/1764/318 1260/1999/318 1261/1765/318 -f 1264/1767/326 1263/1769/326 1261/1765/326 -f 1263/1769/320 1264/2000/320 1258/1770/320 -f 1265/1771/321 1258/2001/321 1262/1772/321 -f 1261/1765/307 1263/1769/307 1265/1771/307 -f 1294/1773/318 1292/2002/318 1293/1774/318 -f 1296/1776/326 1295/1778/326 1293/1774/326 -f 1295/1778/320 1296/2003/320 1290/1779/320 -f 1297/1780/321 1290/2004/321 1294/1781/321 -f 1293/1774/307 1295/1778/307 1297/1780/307 -f 1326/1782/318 1324/2005/318 1325/1783/318 -f 1328/1785/326 1327/1787/326 1325/1783/326 -f 1327/1787/320 1328/2006/320 1322/1788/320 -f 1329/1789/321 1322/2007/321 1326/1790/321 -f 1325/1783/307 1327/1787/307 1329/1789/307 -f 1358/1791/318 1356/2008/318 1357/1792/318 -f 1360/1794/326 1359/1796/326 1357/1792/326 -f 1359/1796/320 1360/2009/320 1354/1797/320 -f 1361/1798/321 1354/2010/321 1358/1799/321 -f 1357/1792/307 1359/1796/307 1361/1798/307 -f 1390/1800/318 1388/2011/318 1389/1801/318 -f 1392/1803/326 1391/1805/326 1389/1801/326 -f 1391/1805/320 1392/2012/320 1386/1806/320 -f 1393/1807/321 1386/2013/321 1390/1808/321 -f 1389/1801/307 1391/1805/307 1393/1807/307 -f 1422/1809/318 1420/2014/318 1421/1810/318 -f 1424/1812/326 1423/1814/326 1421/1810/326 -f 1423/1814/320 1424/2015/320 1418/1815/320 -f 1425/1816/321 1418/2016/321 1422/1817/321 -f 1421/1810/307 1423/1814/307 1425/1816/307 -f 1454/1818/318 1452/2017/318 1453/1819/318 -f 1456/1821/326 1455/1823/326 1453/1819/326 -f 1455/1823/320 1456/2018/320 1450/1824/320 -f 1457/1825/321 1450/2019/321 1454/1826/321 -f 1453/1819/307 1455/1823/307 1457/1825/307 -f 1486/1827/318 1484/2020/318 1485/1828/318 -f 1488/1830/326 1487/1832/326 1485/1828/326 -f 1487/1832/320 1488/2021/320 1482/1833/320 -f 1489/1834/321 1482/2022/321 1486/1835/321 -f 1485/1828/307 1487/1832/307 1489/1834/307 -f 1554/1836/309 1557/1840/309 1556/1837/309 -f 1516/1839/323 1556/1837/323 1557/1840/323 -f 1514/1842/324 1557/1840/324 1554/1836/324 -f 1515/1844/325 1555/1838/325 1556/1837/325 -f 1553/1846/317 1554/1836/317 1555/1838/317 -f 1558/1848/317 1517/1855/317 1518/1849/317 -f 1560/1851/325 1518/1849/325 1519/1852/325 -f 1559/1854/324 1520/1858/324 1517/1855/324 -f 1561/1857/323 1519/1852/323 1520/1858/323 -f 1517/1855/309 1520/1858/309 1519/1852/309 -f 1524/1860/309 1521/1864/309 1522/1861/309 -f 1552/1863/323 1522/1861/323 1521/1864/323 -f 1550/1866/324 1521/1864/324 1524/1860/324 -f 1551/1868/325 1523/1862/325 1522/1861/325 -f 1543/1870/317 1524/1860/317 1523/1862/317 -f 1528/1872/317 1529/1879/317 1530/1873/317 -f 1526/1875/325 1530/1873/325 1531/1876/325 -f 1527/1878/324 1532/1882/324 1529/1879/324 -f 1525/1881/323 1531/1876/323 1532/1882/323 -f 1529/1879/309 1532/1882/309 1531/1876/309 -f 1540/1884/309 1537/1888/309 1538/1885/309 -f 1545/1887/323 1538/1885/323 1537/1888/323 -f 1542/1890/324 1537/1888/324 1540/1884/324 -f 1544/1892/325 1539/1886/325 1538/1885/325 -f 1541/1894/317 1540/1884/317 1539/1886/317 -f 1536/1896/317 1546/1903/317 1547/1897/317 -f 1534/1899/325 1547/1897/325 1548/1900/325 -f 1535/1902/324 1549/1906/324 1546/1903/324 -f 1533/1905/323 1548/1900/323 1549/1906/323 -f 1546/1903/309 1549/1906/309 1548/1900/309 -f 1602/1908/309 1605/1912/309 1604/1909/309 -f 1564/1911/323 1604/1909/323 1605/1912/323 -f 1562/1914/324 1605/1912/324 1602/1908/324 -f 1563/1916/325 1603/1910/325 1604/1909/325 -f 1601/1918/317 1602/1908/317 1603/1910/317 -f 1606/1920/317 1565/1927/317 1566/1921/317 -f 1608/1923/325 1566/1921/325 1567/1924/325 -f 1607/1926/324 1568/1930/324 1565/1927/324 -f 1609/1929/323 1567/1924/323 1568/1930/323 -f 1565/1927/309 1568/1930/309 1567/1924/309 -f 1572/1932/309 1569/1936/309 1570/1933/309 -f 1600/1935/323 1570/1933/323 1569/1936/323 -f 1598/1938/324 1569/1936/324 1572/1932/324 -f 1599/1940/325 1571/1934/325 1570/1933/325 -f 1591/1942/317 1572/1932/317 1571/1934/317 -f 1576/1944/317 1577/1951/317 1578/1945/317 -f 1574/1947/325 1578/1945/325 1579/1948/325 -f 1575/1950/324 1580/1954/324 1577/1951/324 -f 1573/1953/323 1579/1948/323 1580/1954/323 -f 1577/1951/309 1580/1954/309 1579/1948/309 -f 1588/1956/309 1585/1960/309 1586/1957/309 -f 1593/1959/323 1586/1957/323 1585/1960/323 -f 1590/1962/324 1585/1960/324 1588/1956/324 -f 1592/1964/325 1587/1958/325 1586/1957/325 -f 1589/1966/317 1588/1956/317 1587/1958/317 -f 1584/1968/317 1594/1975/317 1595/1969/317 -f 1582/1971/325 1595/1969/325 1596/1972/325 -f 1583/1974/324 1597/1978/324 1594/1975/324 -f 1581/1977/323 1596/1972/323 1597/1978/323 -f 1594/1975/309 1597/1978/309 1596/1972/309 +f 1857/2135/1185 1858/2136/1185 1856/2137/1185 +f 1857/2135/1186 1861/2138/1186 1859/2139/1186 +f 1860/2140/1187 1863/2141/1187 1861/2142/1187 +f 1862/2143/1186 1865/2144/1186 1863/2141/1186 +f 1864/2145/1188 1867/2146/1188 1865/2144/1188 +f 1866/2147/1186 1869/2148/1186 1867/2149/1186 +f 1868/2150/1188 1871/2151/1188 1869/2148/1188 +f 1871/2151/1189 1856/2152/1189 1858/2153/1189 +f 1863/2154/1190 1867/2146/1190 1861/2155/1190 +f 1866/2156/1191 1862/2157/1191 1860/2158/1191 +f 1870/2159/1191 1866/2147/1191 1860/2160/1191 +f 1861/2138/1190 1867/2149/1190 1871/2161/1190 +f 1887/2162/1188 1885/2163/1188 1886/2164/1188 +f 1900/2165/1192 1884/2166/1192 1898/2167/1192 +f 1898/2168/1193 1887/2162/1193 1897/2169/1193 +f 1899/2170/1194 1885/2163/1194 1900/2171/1194 +f 1897/2172/1195 1886/2164/1195 1899/2173/1195 +f 1892/2174/1195 1894/2175/1195 1889/2176/1195 +f 1889/2177/1194 1895/2178/1194 1888/2179/1194 +f 1891/2180/1193 1893/2181/1193 1892/2182/1193 +f 1888/2183/1192 1896/2184/1192 1891/2185/1192 +f 1893/2181/1188 1895/2178/1188 1894/2175/1188 +f 1904/2186/1188 1902/2187/1188 1903/2188/1188 +f 1908/2189/1192 1901/2190/1192 1906/2191/1192 +f 1906/2192/1193 1904/2186/1193 1905/2193/1193 +f 1907/2194/1194 1902/2187/1194 1908/2195/1194 +f 1905/2196/1195 1903/2188/1195 1907/2197/1195 +f 1890/2198/1195 1910/2199/1195 1882/2200/1195 +f 1882/2201/1194 1911/2202/1194 1881/2203/1194 +f 1883/2204/1193 1909/2205/1193 1890/2206/1193 +f 1881/2207/1192 1912/2208/1192 1883/2209/1192 +f 1909/2205/1188 1911/2202/1188 1910/2199/1188 +f 1916/2210/1188 1914/2211/1188 1915/2212/1188 +f 1872/2213/1192 1913/2214/1192 1874/2215/1192 +f 1874/2216/1193 1916/2210/1193 1875/2217/1193 +f 1873/2218/1194 1914/2211/1194 1872/2219/1194 +f 1875/2220/1195 1915/2212/1195 1873/2221/1195 +f 1880/2222/1195 1878/2223/1195 1918/2224/1195 +f 1918/2225/1194 1877/2226/1194 1917/2227/1194 +f 1919/2228/1193 1879/2229/1193 1880/2230/1193 +f 1917/2231/1192 1876/2232/1192 1919/2233/1192 +f 1879/2229/1188 1877/2226/1188 1878/2223/1188 +f 1937/2234/1188 1935/2235/1188 1936/2236/1188 +f 1950/2237/1192 1934/2238/1192 1948/2239/1192 +f 1948/2240/1193 1937/2234/1193 1947/2241/1193 +f 1949/2242/1194 1935/2235/1194 1950/2243/1194 +f 1947/2244/1195 1936/2236/1195 1949/2245/1195 +f 1942/2246/1195 1944/2247/1195 1939/2248/1195 +f 1939/2249/1194 1945/2250/1194 1938/2251/1194 +f 1941/2252/1193 1943/2253/1193 1942/2254/1193 +f 1938/2255/1192 1946/2256/1192 1941/2257/1192 +f 1943/2253/1188 1945/2250/1188 1944/2247/1188 +f 1954/2258/1188 1952/2259/1188 1953/2260/1188 +f 1958/2261/1192 1951/2262/1192 1956/2263/1192 +f 1956/2264/1193 1954/2258/1193 1955/2265/1193 +f 1957/2266/1194 1952/2259/1194 1958/2267/1194 +f 1955/2268/1195 1953/2260/1195 1957/2269/1195 +f 1940/2270/1195 1960/2271/1195 1932/2272/1195 +f 1932/2273/1194 1983/2274/1194 1931/2275/1194 +f 1933/2276/1193 1959/2277/1193 1940/2278/1193 +f 1931/2279/1192 1984/2280/1192 1933/2281/1192 +f 1959/2277/1188 1983/2274/1188 1960/2271/1188 +f 1988/2282/1188 1986/2283/1188 1987/2284/1188 +f 1920/2285/1192 1985/2286/1192 1923/2287/1192 +f 1923/2288/1193 1988/2282/1193 1925/2289/1193 +f 1921/2290/1194 1986/2283/1194 1920/2291/1194 +f 1925/2292/1195 1987/2284/1195 1921/2293/1195 +f 1930/2294/1195 1928/2295/1195 1990/2296/1195 +f 1990/2297/1194 1927/2298/1194 1989/2299/1194 +f 1991/2300/1193 1929/2301/1193 1930/2302/1193 +f 1989/2303/1192 1926/2304/1192 1991/2305/1192 +f 1929/2301/1188 1927/2298/1188 1928/2295/1188 +f 1965/2306/1188 1963/2307/1188 1964/2308/1188 +f 1970/2309/1192 1962/2310/1192 1968/2311/1192 +f 1968/2312/1193 1965/2306/1193 1967/2313/1193 +f 1969/2314/1194 1963/2307/1194 1970/2315/1194 +f 1967/2316/1195 1964/2308/1195 1969/2317/1195 +f 1974/2318/1188 1972/2319/1188 1973/2320/1188 +f 1978/2321/1192 1971/2322/1192 1976/2323/1192 +f 1976/2324/1193 1974/2318/1193 1975/2325/1193 +f 1977/2326/1194 1972/2319/1194 1978/2327/1194 +f 1975/2328/1195 1973/2320/1195 1977/2329/1195 +f 1966/2330/1195 1980/2331/1195 1924/2332/1195 +f 1924/2333/1194 1981/2334/1194 1922/2335/1194 +f 1961/2336/1193 1979/2337/1193 1966/2338/1193 +f 1922/2339/1192 1982/2340/1192 1961/2341/1192 +f 1979/2337/1188 1981/2334/1188 1980/2331/1188 +f 2007/2342/1188 2005/2343/1188 2006/2344/1188 +f 2020/2345/1192 2004/2346/1192 2018/2347/1192 +f 2018/2348/1193 2007/2342/1193 2017/2349/1193 +f 2019/2350/1194 2005/2343/1194 2020/2351/1194 +f 2017/2352/1195 2006/2344/1195 2019/2353/1195 +f 2012/2354/1195 2014/2355/1195 2009/2356/1195 +f 2009/2357/1194 2015/2358/1194 2008/2359/1194 +f 2011/2360/1193 2013/2361/1193 2012/2362/1193 +f 2008/2363/1192 2016/2364/1192 2011/2365/1192 +f 2013/2361/1188 2015/2358/1188 2014/2355/1188 +f 2024/2366/1188 2022/2367/1188 2023/2368/1188 +f 2028/2369/1192 2021/2370/1192 2026/2371/1192 +f 2026/2372/1193 2024/2366/1193 2025/2373/1193 +f 2027/2374/1194 2022/2367/1194 2028/2375/1194 +f 2025/2376/1195 2023/2368/1195 2027/2377/1195 +f 2010/2378/1195 2030/2379/1195 2002/2380/1195 +f 2002/2381/1194 2031/2382/1194 2001/2383/1194 +f 2003/2384/1193 2029/2385/1193 2010/2386/1193 +f 2001/2387/1192 2032/2388/1192 2003/2389/1192 +f 2029/2385/1188 2031/2382/1188 2030/2379/1188 +f 2036/2390/1188 2034/2391/1188 2035/2392/1188 +f 1992/2393/1192 2033/2394/1192 1994/2395/1192 +f 1994/2396/1193 2036/2390/1193 1995/2397/1193 +f 1993/2398/1194 2034/2391/1194 1992/2399/1194 +f 1995/2400/1195 2035/2392/1195 1993/2401/1195 +f 2000/2402/1195 1998/2403/1195 2038/2404/1195 +f 2038/2405/1194 1997/2406/1194 2037/2407/1194 +f 2039/2408/1193 1999/2409/1193 2000/2410/1193 +f 2037/2411/1192 1996/2412/1192 2039/2413/1192 +f 1999/2409/1188 1997/2406/1188 1998/2403/1188 +f 2104/2414/1188 2106/2415/1188 2105/2416/1188 +f 2043/2417/1192 2107/2418/1192 2040/2419/1192 +f 2040/2420/1193 2104/2414/1193 2103/2421/1193 +f 2041/2422/1194 2106/2415/1194 2043/2423/1194 +f 2103/2424/1195 2105/2416/1195 2041/2425/1195 +f 2108/2426/1195 2046/2427/1195 2110/2428/1195 +f 2110/2429/1194 2047/2430/1194 2111/2431/1194 +f 2109/2432/1193 2045/2433/1193 2108/2434/1193 +f 2111/2435/1192 2048/2436/1192 2109/2437/1192 +f 2045/2433/1188 2047/2430/1188 2046/2427/1188 +f 2052/2438/1188 2050/2439/1188 2051/2440/1188 +f 2080/2441/1192 2049/2442/1192 2078/2443/1192 +f 2078/2444/1193 2052/2438/1193 2071/2445/1193 +f 2079/2446/1194 2050/2439/1194 2080/2447/1194 +f 2071/2448/1195 2051/2440/1195 2079/2449/1195 +f 2056/2450/1195 2058/2451/1195 2054/2452/1195 +f 2054/2453/1194 2059/2454/1194 2053/2455/1194 +f 2055/2456/1193 2057/2457/1193 2056/2458/1193 +f 2053/2459/1192 2060/2460/1192 2055/2461/1192 +f 2057/2457/1188 2059/2454/1188 2058/2451/1188 +f 2068/2462/1188 2066/2463/1188 2067/2464/1188 +f 2073/2465/1192 2065/2466/1192 2070/2467/1192 +f 2070/2468/1193 2068/2462/1193 2069/2469/1193 +f 2072/2470/1194 2066/2463/1194 2073/2471/1194 +f 2069/2472/1195 2067/2464/1195 2072/2473/1195 +f 2064/2474/1195 2075/2475/1195 2062/2476/1195 +f 2062/2477/1194 2076/2478/1194 2061/2479/1194 +f 2063/2480/1193 2074/2481/1193 2064/2482/1193 +f 2061/2483/1192 2077/2484/1192 2063/2485/1192 +f 2074/2481/1188 2076/2478/1188 2075/2475/1188 +f 2082/2486/1188 2044/2487/1188 2081/2488/1188 +f 2102/2489/1192 2042/2490/1192 2100/2491/1192 +f 2100/2492/1193 2082/2486/1193 2095/2493/1193 +f 2101/2494/1194 2044/2487/1194 2102/2495/1194 +f 2095/2496/1195 2081/2488/1195 2101/2497/1195 +f 2086/2498/1195 2088/2499/1195 2084/2500/1195 +f 2084/2501/1194 2089/2502/1194 2083/2503/1194 +f 2085/2504/1193 2087/2505/1193 2086/2506/1193 +f 2083/2507/1192 2090/2508/1192 2085/2509/1192 +f 2087/2505/1188 2089/2502/1188 2088/2499/1188 +f 2094/2510/1195 2097/2511/1195 2092/2512/1195 +f 2092/2513/1194 2098/2514/1194 2091/2515/1194 +f 2093/2516/1193 2096/2517/1193 2094/2518/1193 +f 2091/2519/1192 2099/2520/1192 2093/2521/1192 +f 2096/2517/1188 2098/2514/1188 2097/2511/1188 +f 2124/2522/1188 2122/2523/1188 2123/2524/1188 +f 2203/2525/1192 2121/2526/1192 2158/2527/1192 +f 2158/2528/1193 2124/2522/1193 2149/2529/1193 +f 2201/2530/1194 2122/2523/1194 2203/2531/1194 +f 2149/2532/1195 2123/2524/1195 2201/2533/1195 +f 2140/2534/1195 2142/2535/1195 2126/2536/1195 +f 2131/2537/1188 2129/2538/1188 2130/2539/1188 +f 2207/2540/1192 2128/2541/1192 2173/2542/1192 +f 2173/2543/1193 2131/2537/1193 2168/2544/1193 +f 2206/2545/1194 2129/2538/1194 2207/2546/1194 +f 2168/2547/1195 2130/2539/1195 2206/2548/1195 +f 2135/2549/1195 2137/2550/1195 2133/2551/1195 +f 2133/2552/1194 2138/2553/1194 2132/2554/1194 +f 2134/2555/1193 2136/2556/1193 2135/2557/1193 +f 2132/2558/1192 2139/2559/1192 2134/2560/1192 +f 2136/2556/1188 2138/2553/1188 2137/2550/1188 +f 2126/2561/1194 2143/2562/1194 2125/2563/1194 +f 2127/2564/1193 2141/2565/1193 2140/2566/1193 +f 2125/2567/1192 2144/2568/1192 2127/2569/1192 +f 2141/2565/1188 2143/2562/1188 2142/2535/1188 +f 2148/2570/1195 2155/2571/1195 2146/2572/1195 +f 2146/2573/1194 2156/2574/1194 2145/2575/1194 +f 2147/2576/1193 2154/2577/1193 2148/2578/1193 +f 2145/2579/1192 2157/2580/1192 2147/2581/1192 +f 2154/2577/1188 2156/2574/1188 2155/2571/1188 +f 2196/2582/1188 2198/2583/1188 2197/2584/1188 +f 2114/2585/1192 2199/2586/1192 2112/2587/1192 +f 2112/2588/1193 2196/2582/1193 2195/2589/1193 +f 2113/2590/1194 2198/2583/1194 2114/2591/1194 +f 2195/2592/1195 2197/2584/1195 2113/2593/1195 +f 2200/2594/1195 2116/2595/1195 2204/2596/1195 +f 2153/2597/1195 2170/2598/1195 2151/2599/1195 +f 2151/2600/1194 2171/2601/1194 2150/2602/1194 +f 2152/2603/1193 2169/2604/1193 2153/2605/1193 +f 2150/2606/1192 2172/2607/1192 2152/2608/1192 +f 2169/2604/1188 2171/2601/1188 2170/2598/1188 +f 2204/2609/1194 2117/2610/1194 2205/2611/1194 +f 2202/2612/1193 2115/2613/1193 2200/2614/1193 +f 2205/2615/1192 2118/2616/1192 2202/2617/1192 +f 2115/2613/1188 2117/2610/1188 2116/2595/1188 +f 2160/2618/1188 2120/2619/1188 2159/2620/1188 +f 2194/2621/1192 2119/2622/1192 2192/2623/1192 +f 2192/2624/1193 2160/2618/1193 2185/2625/1193 +f 2193/2626/1194 2120/2619/1194 2194/2627/1194 +f 2185/2628/1195 2159/2620/1195 2193/2629/1195 +f 2164/2630/1195 2166/2631/1195 2162/2632/1195 +f 2162/2633/1194 2167/2634/1194 2161/2635/1194 +f 2163/2636/1193 2165/2637/1193 2164/2638/1193 +f 2161/2639/1192 2174/2640/1192 2163/2641/1192 +f 2165/2637/1188 2167/2634/1188 2166/2631/1188 +f 2182/2642/1188 2180/2643/1188 2181/2644/1188 +f 2187/2645/1192 2179/2646/1192 2184/2647/1192 +f 2184/2648/1193 2182/2642/1193 2183/2649/1193 +f 2186/2650/1194 2180/2643/1194 2187/2651/1194 +f 2183/2652/1195 2181/2644/1195 2186/2653/1195 +f 2178/2654/1195 2189/2655/1195 2176/2656/1195 +f 2176/2657/1194 2190/2658/1194 2175/2659/1194 +f 2177/2660/1193 2188/2661/1193 2178/2662/1193 +f 2175/2663/1192 2191/2664/1192 2177/2665/1192 +f 2188/2661/1188 2190/2658/1188 2189/2655/1188 +f 2268/2666/1188 2266/2667/1188 2267/2668/1188 +f 2208/2669/1192 2265/2670/1192 2211/2671/1192 +f 2211/2672/1193 2268/2666/1193 2213/2673/1193 +f 2209/2674/1194 2266/2667/1194 2208/2675/1194 +f 2213/2676/1196 2267/2668/1196 2209/2677/1196 +f 2264/2678/1196 2216/2679/1196 2270/2680/1196 +f 2270/2681/1194 2215/2682/1194 2269/2683/1194 +f 2271/2684/1193 2263/2685/1193 2264/2686/1193 +f 2269/2687/1192 2214/2688/1192 2271/2689/1192 +f 2263/2685/1188 2215/2682/1188 2216/2679/1188 +f 2220/2690/1188 2218/2691/1188 2219/2692/1188 +f 2240/2693/1192 2217/2694/1192 2238/2695/1192 +f 2238/2696/1193 2220/2690/1193 2233/2697/1193 +f 2239/2698/1194 2218/2691/1194 2240/2699/1194 +f 2233/2700/1195 2219/2692/1195 2239/2701/1195 +f 2224/2702/1195 2226/2703/1195 2222/2704/1195 +f 2222/2705/1194 2227/2706/1194 2221/2707/1194 +f 2223/2708/1193 2225/2709/1193 2224/2710/1193 +f 2221/2711/1192 2228/2712/1192 2223/2713/1192 +f 2225/2709/1188 2227/2706/1188 2226/2703/1188 +f 2232/2714/1195 2235/2715/1195 2230/2716/1195 +f 2230/2717/1194 2236/2718/1194 2229/2719/1194 +f 2231/2720/1193 2234/2721/1193 2232/2722/1193 +f 2229/2723/1192 2237/2724/1192 2231/2725/1192 +f 2234/2721/1188 2236/2718/1188 2235/2715/1188 +f 2245/2726/1188 2243/2727/1188 2244/2728/1188 +f 2250/2729/1192 2242/2730/1192 2248/2731/1192 +f 2248/2732/1193 2245/2726/1193 2247/2733/1193 +f 2249/2734/1194 2243/2727/1194 2250/2735/1194 +f 2247/2736/1195 2244/2728/1195 2249/2737/1195 +f 2254/2738/1188 2252/2739/1188 2253/2740/1188 +f 2258/2741/1192 2251/2742/1192 2256/2743/1192 +f 2256/2744/1193 2254/2738/1193 2255/2745/1193 +f 2257/2746/1194 2252/2739/1194 2258/2747/1194 +f 2255/2748/1195 2253/2740/1195 2257/2749/1195 +f 2246/2750/1195 2260/2751/1195 2212/2752/1195 +f 2212/2753/1194 2261/2754/1194 2210/2755/1194 +f 2241/2756/1193 2259/2757/1193 2246/2758/1193 +f 2210/2759/1192 2262/2760/1192 2241/2761/1192 +f 2259/2757/1188 2261/2754/1188 2260/2751/1188 +f 2284/2762/1188 2282/2763/1188 2283/2764/1188 +f 2333/2765/1192 2281/2766/1192 2302/2767/1192 +f 2302/2768/1193 2284/2762/1193 2297/2769/1193 +f 2331/2770/1194 2282/2763/1194 2333/2771/1194 +f 2297/2772/1195 2283/2764/1195 2331/2773/1195 +f 2288/2774/1195 2290/2775/1195 2286/2776/1195 +f 2286/2777/1194 2291/2778/1194 2285/2779/1194 +f 2287/2780/1193 2289/2781/1193 2288/2782/1193 +f 2285/2783/1192 2292/2784/1192 2287/2785/1192 +f 2289/2781/1188 2291/2778/1188 2290/2775/1188 +f 2296/2786/1195 2299/2787/1195 2294/2788/1195 +f 2294/2789/1194 2300/2790/1194 2293/2791/1194 +f 2295/2792/1193 2298/2793/1193 2296/2794/1193 +f 2293/2795/1192 2301/2796/1192 2295/2797/1192 +f 2298/2793/1188 2300/2790/1188 2299/2787/1188 +f 2309/2798/1188 2307/2799/1188 2308/2800/1188 +f 2314/2801/1192 2306/2802/1192 2312/2803/1192 +f 2312/2804/1193 2309/2798/1193 2311/2805/1193 +f 2313/2806/1194 2307/2799/1194 2314/2807/1194 +f 2311/2808/1196 2308/2800/1196 2313/2809/1196 +f 2318/2810/1188 2316/2811/1188 2317/2812/1188 +f 2322/2813/1192 2315/2814/1192 2320/2815/1192 +f 2320/2816/1193 2318/2810/1193 2319/2817/1193 +f 2321/2818/1194 2316/2811/1194 2322/2819/1194 +f 2319/2820/1196 2317/2812/1196 2321/2821/1196 +f 2310/2822/1196 2324/2823/1196 2304/2824/1196 +f 2304/2825/1194 2325/2826/1194 2303/2827/1194 +f 2305/2828/1193 2323/2829/1193 2310/2830/1193 +f 2303/2831/1192 2326/2832/1192 2305/2833/1192 +f 2323/2829/1188 2325/2826/1188 2324/2823/1188 +f 2280/2834/1188 2328/2835/1188 2327/2836/1188 +f 2274/2837/1192 2329/2838/1192 2272/2839/1192 +f 2272/2840/1193 2280/2834/1193 2279/2841/1193 +f 2273/2842/1194 2328/2835/1194 2274/2843/1194 +f 2279/2844/1195 2327/2836/1195 2273/2845/1195 +f 2330/2846/1195 2276/2847/1195 2334/2848/1195 +f 2334/2849/1194 2277/2850/1194 2335/2851/1194 +f 2332/2852/1193 2275/2853/1193 2330/2854/1193 +f 2335/2855/1192 2278/2856/1192 2332/2857/1192 +f 2275/2853/1188 2277/2850/1188 2276/2847/1188 +f 2372/2858/1188 2370/2859/1188 2371/2860/1188 +f 2336/2861/1192 2369/2862/1192 2339/2863/1192 +f 2339/2864/1193 2372/2858/1193 2341/2865/1193 +f 2337/2866/1194 2370/2859/1194 2336/2867/1194 +f 2341/2868/1195 2371/2860/1195 2337/2869/1195 +f 2368/2870/1195 2344/2871/1195 2374/2872/1195 +f 2374/2873/1194 2343/2874/1194 2373/2875/1194 +f 2375/2876/1193 2367/2877/1193 2368/2878/1193 +f 2373/2879/1192 2342/2880/1192 2375/2881/1192 +f 2367/2877/1188 2343/2874/1188 2344/2871/1188 +f 2349/2882/1188 2347/2883/1188 2348/2884/1188 +f 2354/2885/1192 2346/2886/1192 2352/2887/1192 +f 2352/2888/1193 2349/2882/1193 2351/2889/1193 +f 2353/2890/1194 2347/2883/1194 2354/2891/1194 +f 2351/2892/1195 2348/2884/1195 2353/2893/1195 +f 2358/2894/1188 2356/2895/1188 2357/2896/1188 +f 2362/2897/1192 2355/2898/1192 2360/2899/1192 +f 2360/2900/1193 2358/2894/1193 2359/2901/1193 +f 2361/2902/1194 2356/2895/1194 2362/2903/1194 +f 2359/2904/1195 2357/2896/1195 2361/2905/1195 +f 2350/2906/1195 2364/2907/1195 2340/2908/1195 +f 2340/2909/1194 2365/2910/1194 2338/2911/1194 +f 2345/2912/1193 2363/2913/1193 2350/2914/1193 +f 2338/2915/1192 2366/2916/1192 2345/2917/1192 +f 2363/2913/1188 2365/2910/1188 2364/2907/1188 +f 2388/2918/1188 2386/2919/1188 2387/2920/1188 +f 2445/2921/1192 2385/2922/1192 2406/2923/1192 +f 2406/2924/1193 2388/2918/1193 2401/2925/1193 +f 2443/2926/1194 2386/2919/1194 2445/2927/1194 +f 2401/2928/1196 2387/2920/1196 2443/2929/1196 +f 2392/2930/1196 2394/2931/1196 2390/2932/1196 +f 2390/2933/1194 2395/2934/1194 2389/2935/1194 +f 2391/2936/1193 2393/2937/1193 2392/2938/1193 +f 2389/2939/1192 2396/2940/1192 2391/2941/1192 +f 2393/2937/1188 2395/2934/1188 2394/2931/1188 +f 2400/2942/1196 2403/2943/1196 2398/2944/1196 +f 2398/2945/1194 2404/2946/1194 2397/2947/1194 +f 2399/2948/1193 2402/2949/1193 2400/2950/1193 +f 2397/2951/1192 2405/2952/1192 2399/2953/1192 +f 2402/2949/1188 2404/2946/1188 2403/2943/1188 +f 2438/2954/1188 2440/2955/1188 2439/2956/1188 +f 2378/2957/1192 2441/2958/1192 2376/2959/1192 +f 2376/2960/1193 2438/2954/1193 2437/2961/1193 +f 2377/2962/1194 2440/2955/1194 2378/2963/1194 +f 2437/2964/1195 2439/2956/1195 2377/2965/1195 +f 2442/2966/1195 2380/2967/1195 2446/2968/1195 +f 2446/2969/1194 2381/2970/1194 2447/2971/1194 +f 2444/2972/1193 2379/2973/1193 2442/2974/1193 +f 2447/2975/1192 2382/2976/1192 2444/2977/1192 +f 2379/2973/1188 2381/2970/1188 2380/2967/1188 +f 2408/2978/1188 2384/2979/1188 2407/2980/1188 +f 2436/2981/1192 2383/2982/1192 2434/2983/1192 +f 2434/2984/1193 2408/2978/1193 2427/2985/1193 +f 2435/2986/1194 2384/2979/1194 2436/2987/1194 +f 2427/2988/1195 2407/2980/1195 2435/2989/1195 +f 2412/2990/1195 2414/2991/1195 2410/2992/1195 +f 2410/2993/1194 2415/2994/1194 2409/2995/1194 +f 2411/2996/1193 2413/2997/1193 2412/2998/1193 +f 2409/2999/1192 2416/3000/1192 2411/3001/1192 +f 2413/2997/1188 2415/2994/1188 2414/2991/1188 +f 2424/3002/1188 2422/3003/1188 2423/3004/1188 +f 2429/3005/1192 2421/3006/1192 2426/3007/1192 +f 2426/3008/1193 2424/3002/1193 2425/3009/1193 +f 2428/3010/1194 2422/3003/1194 2429/3011/1194 +f 2425/3012/1195 2423/3004/1195 2428/3013/1195 +f 2420/3014/1195 2431/3015/1195 2418/3016/1195 +f 2418/3017/1194 2432/3018/1194 2417/3019/1194 +f 2419/3020/1193 2430/3021/1193 2420/3022/1193 +f 2417/3023/1192 2433/3024/1192 2419/3025/1192 +f 2430/3021/1188 2432/3018/1188 2431/3015/1188 +f 2475/3026/1186 2486/3027/1186 2474/3028/1186 +f 2482/3029/1186 2493/3030/1186 2481/3031/1186 +f 2478/3032/1186 2491/3033/1186 2490/3034/1186 +f 2476/3035/1186 2487/3036/1186 2475/3026/1186 +f 2483/3037/1186 2494/3038/1186 2482/3029/1186 +f 2473/3039/1186 2484/3040/1186 2472/3041/1186 +f 2480/3042/1186 2491/3033/1186 2479/3043/1186 +f 2476/3035/1186 2489/3044/1186 2488/3045/1186 +f 2472/3041/1186 2495/3046/1186 2483/3037/1186 +f 2474/3028/1186 2485/3047/1186 2473/3039/1186 +f 2480/3042/1186 2493/3048/1186 2492/3049/1186 +f 2478/3032/1186 2489/3044/1186 2477/3050/1186 +f 2511/3051/1186 2522/3052/1186 2510/3053/1186 +f 2518/3054/1186 2529/3055/1186 2517/3056/1186 +f 2514/3057/1186 2527/3058/1186 2526/3059/1186 +f 2512/3060/1186 2523/3061/1186 2511/3051/1186 +f 2519/3062/1186 2530/3063/1186 2518/3054/1186 +f 2509/3064/1186 2520/3065/1186 2508/3066/1186 +f 2516/3067/1186 2527/3058/1186 2515/3068/1186 +f 2512/3060/1186 2525/3069/1186 2524/3070/1186 +f 2508/3066/1186 2531/3071/1186 2519/3062/1186 +f 2510/3053/1186 2521/3072/1186 2509/3064/1186 +f 2516/3067/1186 2529/3073/1186 2528/3074/1186 +f 2514/3057/1186 2525/3069/1186 2513/3075/1186 +f 2556/3076/1197 2555/3077/1197 2553/3078/1197 +f 2558/3079/1198 2555/3077/1198 2554/3080/1198 +f 2557/3081/1199 2552/3082/1199 2559/3083/1199 +f 2559/3083/1200 2556/3084/1200 2553/3078/1200 +f 2555/3077/1186 2559/3083/1186 2553/3078/1186 +f 2546/3085/1196 2544/3086/1196 2545/3087/1196 +f 2551/3088/1192 2549/3089/1192 2550/3090/1192 +f 2551/3091/1193 2546/3085/1193 2545/3092/1193 +f 2547/3093/1188 2550/3090/1188 2549/3089/1188 +f 2547/3093/1194 2548/3094/1194 2544/3095/1194 +f 2586/3096/1196 2584/3097/1196 2585/3098/1196 +f 2591/3099/1192 2589/3100/1192 2590/3101/1192 +f 2591/3102/1193 2586/3096/1193 2585/3103/1193 +f 2587/3104/1188 2590/3101/1188 2589/3100/1188 +f 2587/3104/1194 2588/3105/1194 2584/3106/1194 +f 2594/3107/1196 2592/3108/1196 2593/3109/1196 +f 2599/3110/1192 2597/3111/1192 2598/3112/1192 +f 2599/3113/1193 2594/3107/1193 2593/3114/1193 +f 2595/3115/1188 2598/3112/1188 2597/3111/1188 +f 2595/3115/1194 2596/3116/1194 2592/3117/1194 +f 2602/3118/1196 2600/3119/1196 2601/3120/1196 +f 2607/3121/1192 2605/3122/1192 2606/3123/1192 +f 2607/3124/1193 2602/3118/1193 2601/3125/1193 +f 2603/3126/1188 2606/3123/1188 2605/3122/1188 +f 2603/3126/1194 2604/3127/1194 2600/3128/1194 +f 2617/3129/1188 2622/3130/1188 2623/3131/1188 +f 2625/3132/1188 2626/3133/1188 2624/3134/1188 +f 2629/3135/1188 2630/3136/1188 2628/3137/1188 +f 2636/3138/1197 2635/3139/1197 2633/3140/1197 +f 2638/3141/1198 2635/3139/1198 2634/3142/1198 +f 2637/3143/1199 2632/3144/1199 2639/3145/1199 +f 2639/3145/1200 2636/3146/1200 2633/3140/1200 +f 2635/3139/1186 2639/3145/1186 2633/3140/1186 +f 2668/3147/1197 2667/3148/1197 2665/3149/1197 +f 2670/3150/1198 2667/3148/1198 2666/3151/1198 +f 2669/3152/1199 2664/3153/1199 2671/3154/1199 +f 2671/3154/1201 2668/3155/1201 2665/3149/1201 +f 2667/3148/1186 2671/3154/1186 2665/3149/1186 +f 2700/3156/1197 2699/3157/1197 2697/3158/1197 +f 2702/3159/1198 2699/3157/1198 2698/3160/1198 +f 2701/3161/1199 2696/3162/1199 2703/3163/1199 +f 2703/3163/1201 2700/3164/1201 2697/3158/1201 +f 2699/3157/1186 2703/3163/1186 2697/3158/1186 +f 2732/3165/1197 2731/3166/1197 2729/3167/1197 +f 2734/3168/1198 2731/3166/1198 2730/3169/1198 +f 2733/3170/1199 2728/3171/1199 2735/3172/1199 +f 2735/3172/1201 2732/3173/1201 2729/3167/1201 +f 2731/3166/1186 2735/3172/1186 2729/3167/1186 +f 2764/3174/1197 2763/3175/1197 2761/3176/1197 +f 2766/3177/1198 2763/3175/1198 2762/3178/1198 +f 2765/3179/1199 2760/3180/1199 2767/3181/1199 +f 2767/3181/1201 2764/3182/1201 2761/3176/1201 +f 2763/3175/1186 2767/3181/1186 2761/3176/1186 +f 2796/3183/1197 2795/3184/1197 2793/3185/1197 +f 2798/3186/1198 2795/3184/1198 2794/3187/1198 +f 2797/3188/1199 2792/3189/1199 2799/3190/1199 +f 2799/3190/1200 2796/3191/1200 2793/3185/1200 +f 2795/3184/1186 2799/3190/1186 2793/3185/1186 +f 2828/3192/1197 2827/3193/1197 2825/3194/1197 +f 2830/3195/1198 2827/3193/1198 2826/3196/1198 +f 2829/3197/1199 2824/3198/1199 2831/3199/1199 +f 2831/3199/1200 2828/3200/1200 2825/3194/1200 +f 2827/3193/1186 2831/3199/1186 2825/3194/1186 +f 2860/3201/1197 2859/3202/1197 2857/3203/1197 +f 2862/3204/1198 2859/3202/1198 2858/3205/1198 +f 2861/3206/1199 2856/3207/1199 2863/3208/1199 +f 2863/3208/1200 2860/3209/1200 2857/3203/1200 +f 2859/3202/1186 2863/3208/1186 2857/3203/1186 +f 2928/3210/1188 2930/3211/1188 2929/3212/1188 +f 2890/3213/1192 2931/3214/1192 2888/3215/1192 +f 2888/3216/1193 2928/3210/1193 2927/3217/1193 +f 2889/3218/1194 2930/3211/1194 2890/3219/1194 +f 2927/3220/1195 2929/3212/1195 2889/3221/1195 +f 2932/3222/1195 2892/3223/1195 2934/3224/1195 +f 2934/3225/1194 2893/3226/1194 2935/3227/1194 +f 2933/3228/1193 2891/3229/1193 2932/3230/1193 +f 2935/3231/1192 2894/3232/1192 2933/3233/1192 +f 2891/3229/1188 2893/3226/1188 2892/3223/1188 +f 2898/3234/1188 2896/3235/1188 2897/3236/1188 +f 2926/3237/1192 2895/3238/1192 2924/3239/1192 +f 2924/3240/1193 2898/3234/1193 2917/3241/1193 +f 2925/3242/1194 2896/3235/1194 2926/3243/1194 +f 2917/3244/1195 2897/3236/1195 2925/3245/1195 +f 2902/3246/1195 2904/3247/1195 2900/3248/1195 +f 2900/3249/1194 2905/3250/1194 2899/3251/1194 +f 2901/3252/1193 2903/3253/1193 2902/3254/1193 +f 2899/3255/1192 2906/3256/1192 2901/3257/1192 +f 2903/3253/1188 2905/3250/1188 2904/3247/1188 +f 2914/3258/1188 2912/3259/1188 2913/3260/1188 +f 2919/3261/1192 2911/3262/1192 2916/3263/1192 +f 2916/3264/1193 2914/3258/1193 2915/3265/1193 +f 2918/3266/1194 2912/3259/1194 2919/3267/1194 +f 2915/3268/1195 2913/3260/1195 2918/3269/1195 +f 2910/3270/1195 2921/3271/1195 2908/3272/1195 +f 2908/3273/1194 2922/3274/1194 2907/3275/1194 +f 2909/3276/1193 2920/3277/1193 2910/3278/1193 +f 2907/3279/1192 2923/3280/1192 2909/3281/1192 +f 2920/3277/1188 2922/3274/1188 2921/3271/1188 +f 2976/3282/1188 2978/3283/1188 2977/3284/1188 +f 2938/3285/1192 2979/3286/1192 2936/3287/1192 +f 2936/3288/1193 2976/3282/1193 2975/3289/1193 +f 2937/3290/1194 2978/3283/1194 2938/3291/1194 +f 2975/3292/1195 2977/3284/1195 2937/3293/1195 +f 2980/3294/1195 2940/3295/1195 2982/3296/1195 +f 2982/3297/1194 2941/3298/1194 2983/3299/1194 +f 2981/3300/1193 2939/3301/1193 2980/3302/1193 +f 2983/3303/1192 2942/3304/1192 2981/3305/1192 +f 2939/3301/1188 2941/3298/1188 2940/3295/1188 +f 2946/3306/1188 2944/3307/1188 2945/3308/1188 +f 2974/3309/1192 2943/3310/1192 2972/3311/1192 +f 2972/3312/1193 2946/3306/1193 2965/3313/1193 +f 2973/3314/1194 2944/3307/1194 2974/3315/1194 +f 2965/3316/1195 2945/3308/1195 2973/3317/1195 +f 2950/3318/1195 2952/3319/1195 2948/3320/1195 +f 2948/3321/1194 2953/3322/1194 2947/3323/1194 +f 2949/3324/1193 2951/3325/1193 2950/3326/1193 +f 2947/3327/1192 2954/3328/1192 2949/3329/1192 +f 2951/3325/1188 2953/3322/1188 2952/3319/1188 +f 2962/3330/1188 2960/3331/1188 2961/3332/1188 +f 2967/3333/1192 2959/3334/1192 2964/3335/1192 +f 2964/3336/1193 2962/3330/1193 2963/3337/1193 +f 2966/3338/1194 2960/3331/1194 2967/3339/1194 +f 2963/3340/1195 2961/3332/1195 2966/3341/1195 +f 2958/3342/1195 2969/3343/1195 2956/3344/1195 +f 2956/3345/1194 2970/3346/1194 2955/3347/1194 +f 2957/3348/1193 2968/3349/1193 2958/3350/1193 +f 2955/3351/1192 2971/3352/1192 2957/3353/1192 +f 2968/3349/1188 2970/3346/1188 2969/3343/1188 +f 1857/2135/1185 1859/2139/1185 1858/2136/1185 +f 1857/2135/1186 1860/2160/1186 1861/2138/1186 +f 1860/2140/1187 1862/2143/1187 1863/2141/1187 +f 1862/2143/1186 1864/2145/1186 1865/2144/1186 +f 1864/2145/1188 1866/2156/1188 1867/2146/1188 +f 1866/2147/1186 1868/2150/1186 1869/2148/1186 +f 1868/2150/1188 1870/3354/1188 1871/2151/1188 +f 1871/2151/1189 1870/3354/1189 1856/2152/1189 +f 1863/2154/1190 1865/2144/1190 1867/2146/1190 +f 1866/2156/1191 1864/2145/1191 1862/2157/1191 +f 1857/2135/1191 1856/3355/1191 1860/2160/1191 +f 1856/3355/1191 1870/2159/1191 1860/2160/1191 +f 1870/2159/1191 1868/2150/1191 1866/2147/1191 +f 1858/3356/1190 1859/2139/1190 1861/2138/1190 +f 1867/2149/1190 1869/2148/1190 1871/2161/1190 +f 1858/3356/1190 1861/2138/1190 1871/2161/1190 +f 1887/2162/1188 1884/2166/1188 1885/2163/1188 +f 1900/2165/1202 1885/2163/1202 1884/2166/1202 +f 1898/2168/1203 1884/2166/1203 1887/2162/1203 +f 1899/2170/1204 1886/2164/1204 1885/2163/1204 +f 1897/2172/1196 1887/2162/1196 1886/2164/1196 +f 1892/2174/1196 1893/2181/1196 1894/2175/1196 +f 1889/2177/1204 1894/2175/1204 1895/2178/1204 +f 1891/2180/1203 1896/2184/1203 1893/2181/1203 +f 1888/2183/1202 1895/2178/1202 1896/2184/1202 +f 1893/2181/1188 1896/2184/1188 1895/2178/1188 +f 1904/2186/1188 1901/2190/1188 1902/2187/1188 +f 1908/2189/1202 1902/2187/1202 1901/2190/1202 +f 1906/2192/1203 1901/2190/1203 1904/2186/1203 +f 1907/2194/1204 1903/2188/1204 1902/2187/1204 +f 1905/2196/1196 1904/2186/1196 1903/2188/1196 +f 1890/2198/1196 1909/2205/1196 1910/2199/1196 +f 1882/2201/1204 1910/2199/1204 1911/2202/1204 +f 1883/2204/1203 1912/2208/1203 1909/2205/1203 +f 1881/2207/1202 1911/2202/1202 1912/2208/1202 +f 1909/2205/1188 1912/2208/1188 1911/2202/1188 +f 1916/2210/1188 1913/2214/1188 1914/2211/1188 +f 1872/2213/1202 1914/2211/1202 1913/2214/1202 +f 1874/2216/1203 1913/2214/1203 1916/2210/1203 +f 1873/2218/1204 1915/2212/1204 1914/2211/1204 +f 1875/2220/1196 1916/2210/1196 1915/2212/1196 +f 1880/2222/1196 1879/2229/1196 1878/2223/1196 +f 1918/2225/1204 1878/2223/1204 1877/2226/1204 +f 1919/2228/1203 1876/2232/1203 1879/2229/1203 +f 1917/2231/1202 1877/2226/1202 1876/2232/1202 +f 1879/2229/1188 1876/2232/1188 1877/2226/1188 +f 1937/2234/1188 1934/2238/1188 1935/2235/1188 +f 1950/2237/1192 1935/2235/1192 1934/2238/1192 +f 1948/2240/1203 1934/2238/1203 1937/2234/1203 +f 1949/2242/1204 1936/2236/1204 1935/2235/1204 +f 1947/2244/1196 1937/2234/1196 1936/2236/1196 +f 1942/2246/1196 1943/2253/1196 1944/2247/1196 +f 1939/2249/1204 1944/2247/1204 1945/2250/1204 +f 1941/2252/1203 1946/2256/1203 1943/2253/1203 +f 1938/2255/1192 1945/2250/1192 1946/2256/1192 +f 1943/2253/1188 1946/2256/1188 1945/2250/1188 +f 1954/2258/1188 1951/2262/1188 1952/2259/1188 +f 1958/2261/1192 1952/2259/1192 1951/2262/1192 +f 1956/2264/1203 1951/2262/1203 1954/2258/1203 +f 1957/2266/1204 1953/2260/1204 1952/2259/1204 +f 1955/2268/1196 1954/2258/1196 1953/2260/1196 +f 1940/2270/1196 1959/2277/1196 1960/2271/1196 +f 1932/2273/1204 1960/2271/1204 1983/2274/1204 +f 1933/2276/1203 1984/2280/1203 1959/2277/1203 +f 1931/2279/1192 1983/2274/1192 1984/2280/1192 +f 1959/2277/1188 1984/2280/1188 1983/2274/1188 +f 1988/2282/1188 1985/2286/1188 1986/2283/1188 +f 1920/2285/1192 1986/2283/1192 1985/2286/1192 +f 1923/2288/1203 1985/2286/1203 1988/2282/1203 +f 1921/2290/1204 1987/2284/1204 1986/2283/1204 +f 1925/2292/1196 1988/2282/1196 1987/2284/1196 +f 1930/2294/1196 1929/2301/1196 1928/2295/1196 +f 1990/2297/1204 1928/2295/1204 1927/2298/1204 +f 1991/2300/1203 1926/2304/1203 1929/2301/1203 +f 1989/2303/1192 1927/2298/1192 1926/2304/1192 +f 1929/2301/1188 1926/2304/1188 1927/2298/1188 +f 1965/2306/1188 1962/2310/1188 1963/2307/1188 +f 1970/2309/1192 1963/2307/1192 1962/2310/1192 +f 1968/2312/1203 1962/2310/1203 1965/2306/1203 +f 1969/2314/1204 1964/2308/1204 1963/2307/1204 +f 1967/2316/1196 1965/2306/1196 1964/2308/1196 +f 1974/2318/1188 1971/2322/1188 1972/2319/1188 +f 1978/2321/1192 1972/2319/1192 1971/2322/1192 +f 1976/2324/1203 1971/2322/1203 1974/2318/1203 +f 1977/2326/1204 1973/2320/1204 1972/2319/1204 +f 1975/2328/1196 1974/2318/1196 1973/2320/1196 +f 1966/2330/1196 1979/2337/1196 1980/2331/1196 +f 1924/2333/1204 1980/2331/1204 1981/2334/1204 +f 1961/2336/1203 1982/2340/1203 1979/2337/1203 +f 1922/2339/1192 1981/2334/1192 1982/2340/1192 +f 1979/2337/1188 1982/2340/1188 1981/2334/1188 +f 2007/2342/1188 2004/2346/1188 2005/2343/1188 +f 2020/2345/1192 2005/2343/1192 2004/2346/1192 +f 2018/2348/1203 2004/2346/1203 2007/2342/1203 +f 2019/2350/1204 2006/2344/1204 2005/2343/1204 +f 2017/2352/1196 2007/2342/1196 2006/2344/1196 +f 2012/2354/1196 2013/2361/1196 2014/2355/1196 +f 2009/2357/1204 2014/2355/1204 2015/2358/1204 +f 2011/2360/1203 2016/2364/1203 2013/2361/1203 +f 2008/2363/1192 2015/2358/1192 2016/2364/1192 +f 2013/2361/1188 2016/2364/1188 2015/2358/1188 +f 2024/2366/1188 2021/2370/1188 2022/2367/1188 +f 2028/2369/1192 2022/2367/1192 2021/2370/1192 +f 2026/2372/1203 2021/2370/1203 2024/2366/1203 +f 2027/2374/1204 2023/2368/1204 2022/2367/1204 +f 2025/2376/1196 2024/2366/1196 2023/2368/1196 +f 2010/2378/1196 2029/2385/1196 2030/2379/1196 +f 2002/2381/1204 2030/2379/1204 2031/2382/1204 +f 2003/2384/1203 2032/2388/1203 2029/2385/1203 +f 2001/2387/1192 2031/2382/1192 2032/2388/1192 +f 2029/2385/1188 2032/2388/1188 2031/2382/1188 +f 2036/2390/1188 2033/2394/1188 2034/2391/1188 +f 1992/2393/1192 2034/2391/1192 2033/2394/1192 +f 1994/2396/1203 2033/2394/1203 2036/2390/1203 +f 1993/2398/1204 2035/2392/1204 2034/2391/1204 +f 1995/2400/1196 2036/2390/1196 2035/2392/1196 +f 2000/2402/1196 1999/2409/1196 1998/2403/1196 +f 2038/2405/1204 1998/2403/1204 1997/2406/1204 +f 2039/2408/1203 1996/2412/1203 1999/2409/1203 +f 2037/2411/1192 1997/2406/1192 1996/2412/1192 +f 1999/2409/1188 1996/2412/1188 1997/2406/1188 +f 2104/2414/1188 2107/2418/1188 2106/2415/1188 +f 2043/2417/1192 2106/2415/1192 2107/2418/1192 +f 2040/2420/1203 2107/2418/1203 2104/2414/1203 +f 2041/2422/1204 2105/2416/1204 2106/2415/1204 +f 2103/2424/1196 2104/2414/1196 2105/2416/1196 +f 2108/2426/1196 2045/2433/1196 2046/2427/1196 +f 2110/2429/1204 2046/2427/1204 2047/2430/1204 +f 2109/2432/1203 2048/2436/1203 2045/2433/1203 +f 2111/2435/1192 2047/2430/1192 2048/2436/1192 +f 2045/2433/1188 2048/2436/1188 2047/2430/1188 +f 2052/2438/1188 2049/2442/1188 2050/2439/1188 +f 2080/2441/1192 2050/2439/1192 2049/2442/1192 +f 2078/2444/1203 2049/2442/1203 2052/2438/1203 +f 2079/2446/1204 2051/2440/1204 2050/2439/1204 +f 2071/2448/1196 2052/2438/1196 2051/2440/1196 +f 2056/2450/1196 2057/2457/1196 2058/2451/1196 +f 2054/2453/1204 2058/2451/1204 2059/2454/1204 +f 2055/2456/1203 2060/2460/1203 2057/2457/1203 +f 2053/2459/1192 2059/2454/1192 2060/2460/1192 +f 2057/2457/1188 2060/2460/1188 2059/2454/1188 +f 2068/2462/1188 2065/2466/1188 2066/2463/1188 +f 2073/2465/1192 2066/2463/1192 2065/2466/1192 +f 2070/2468/1203 2065/2466/1203 2068/2462/1203 +f 2072/2470/1204 2067/2464/1204 2066/2463/1204 +f 2069/2472/1196 2068/2462/1196 2067/2464/1196 +f 2064/2474/1196 2074/2481/1196 2075/2475/1196 +f 2062/2477/1204 2075/2475/1204 2076/2478/1204 +f 2063/2480/1203 2077/2484/1203 2074/2481/1203 +f 2061/2483/1192 2076/2478/1192 2077/2484/1192 +f 2074/2481/1188 2077/2484/1188 2076/2478/1188 +f 2082/2486/1188 2042/2490/1188 2044/2487/1188 +f 2102/2489/1192 2044/2487/1192 2042/2490/1192 +f 2100/2492/1203 2042/2490/1203 2082/2486/1203 +f 2101/2494/1204 2081/2488/1204 2044/2487/1204 +f 2095/2496/1196 2082/2486/1196 2081/2488/1196 +f 2086/2498/1196 2087/2505/1196 2088/2499/1196 +f 2084/2501/1204 2088/2499/1204 2089/2502/1204 +f 2085/2504/1203 2090/2508/1203 2087/2505/1203 +f 2083/2507/1192 2089/2502/1192 2090/2508/1192 +f 2087/2505/1188 2090/2508/1188 2089/2502/1188 +f 2094/2510/1196 2096/2517/1196 2097/2511/1196 +f 2092/2513/1204 2097/2511/1204 2098/2514/1204 +f 2093/2516/1203 2099/2520/1203 2096/2517/1203 +f 2091/2519/1192 2098/2514/1192 2099/2520/1192 +f 2096/2517/1188 2099/2520/1188 2098/2514/1188 +f 2124/2522/1188 2121/2526/1188 2122/2523/1188 +f 2203/2525/1192 2122/2523/1192 2121/2526/1192 +f 2158/2528/1203 2121/2526/1203 2124/2522/1203 +f 2201/2530/1204 2123/2524/1204 2122/2523/1204 +f 2149/2532/1196 2124/2522/1196 2123/2524/1196 +f 2140/2534/1196 2141/2565/1196 2142/2535/1196 +f 2131/2537/1188 2128/2541/1188 2129/2538/1188 +f 2207/2540/1202 2129/2538/1202 2128/2541/1202 +f 2173/2543/1203 2128/2541/1203 2131/2537/1203 +f 2206/2545/1204 2130/2539/1204 2129/2538/1204 +f 2168/2547/1196 2131/2537/1196 2130/2539/1196 +f 2135/2549/1196 2136/2556/1196 2137/2550/1196 +f 2133/2552/1204 2137/2550/1204 2138/2553/1204 +f 2134/2555/1203 2139/2559/1203 2136/2556/1203 +f 2132/2558/1202 2138/2553/1202 2139/2559/1202 +f 2136/2556/1188 2139/2559/1188 2138/2553/1188 +f 2126/2561/1204 2142/2535/1204 2143/2562/1204 +f 2127/2564/1203 2144/2568/1203 2141/2565/1203 +f 2125/2567/1192 2143/2562/1192 2144/2568/1192 +f 2141/2565/1188 2144/2568/1188 2143/2562/1188 +f 2148/2570/1196 2154/2577/1196 2155/2571/1196 +f 2146/2573/1204 2155/2571/1204 2156/2574/1204 +f 2147/2576/1203 2157/2580/1203 2154/2577/1203 +f 2145/2579/1192 2156/2574/1192 2157/2580/1192 +f 2154/2577/1188 2157/2580/1188 2156/2574/1188 +f 2196/2582/1188 2199/2586/1188 2198/2583/1188 +f 2114/2585/1192 2198/2583/1192 2199/2586/1192 +f 2112/2588/1203 2199/2586/1203 2196/2582/1203 +f 2113/2590/1204 2197/2584/1204 2198/2583/1204 +f 2195/2592/1196 2196/2582/1196 2197/2584/1196 +f 2200/2594/1196 2115/2613/1196 2116/2595/1196 +f 2153/2597/1196 2169/2604/1196 2170/2598/1196 +f 2151/2600/1204 2170/2598/1204 2171/2601/1204 +f 2152/2603/1203 2172/2607/1203 2169/2604/1203 +f 2150/2606/1202 2171/2601/1202 2172/2607/1202 +f 2169/2604/1188 2172/2607/1188 2171/2601/1188 +f 2204/2609/1204 2116/2595/1204 2117/2610/1204 +f 2202/2612/1203 2118/2616/1203 2115/2613/1203 +f 2205/2615/1192 2117/2610/1192 2118/2616/1192 +f 2115/2613/1188 2118/2616/1188 2117/2610/1188 +f 2160/2618/1188 2119/2622/1188 2120/2619/1188 +f 2194/2621/1192 2120/2619/1192 2119/2622/1192 +f 2192/2624/1203 2119/2622/1203 2160/2618/1203 +f 2193/2626/1204 2159/2620/1204 2120/2619/1204 +f 2185/2628/1196 2160/2618/1196 2159/2620/1196 +f 2164/2630/1196 2165/2637/1196 2166/2631/1196 +f 2162/2633/1204 2166/2631/1204 2167/2634/1204 +f 2163/2636/1203 2174/2640/1203 2165/2637/1203 +f 2161/2639/1192 2167/2634/1192 2174/2640/1192 +f 2165/2637/1188 2174/2640/1188 2167/2634/1188 +f 2182/2642/1188 2179/2646/1188 2180/2643/1188 +f 2187/2645/1192 2180/2643/1192 2179/2646/1192 +f 2184/2648/1203 2179/2646/1203 2182/2642/1203 +f 2186/2650/1204 2181/2644/1204 2180/2643/1204 +f 2183/2652/1196 2182/2642/1196 2181/2644/1196 +f 2178/2654/1196 2188/2661/1196 2189/2655/1196 +f 2176/2657/1204 2189/2655/1204 2190/2658/1204 +f 2177/2660/1203 2191/2664/1203 2188/2661/1203 +f 2175/2663/1192 2190/2658/1192 2191/2664/1192 +f 2188/2661/1188 2191/2664/1188 2190/2658/1188 +f 2268/2666/1188 2265/2670/1188 2266/2667/1188 +f 2208/2669/1192 2266/2667/1192 2265/2670/1192 +f 2211/2672/1203 2265/2670/1203 2268/2666/1203 +f 2209/2674/1204 2267/2668/1204 2266/2667/1204 +f 2213/2676/1196 2268/2666/1196 2267/2668/1196 +f 2264/2678/1196 2263/2685/1196 2216/2679/1196 +f 2270/2681/1204 2216/2679/1204 2215/2682/1204 +f 2271/2684/1203 2214/2688/1203 2263/2685/1203 +f 2269/2687/1192 2215/2682/1192 2214/2688/1192 +f 2263/2685/1188 2214/2688/1188 2215/2682/1188 +f 2220/2690/1188 2217/2694/1188 2218/2691/1188 +f 2240/2693/1192 2218/2691/1192 2217/2694/1192 +f 2238/2696/1203 2217/2694/1203 2220/2690/1203 +f 2239/2698/1204 2219/2692/1204 2218/2691/1204 +f 2233/2700/1196 2220/2690/1196 2219/2692/1196 +f 2224/2702/1196 2225/2709/1196 2226/2703/1196 +f 2222/2705/1204 2226/2703/1204 2227/2706/1204 +f 2223/2708/1203 2228/2712/1203 2225/2709/1203 +f 2221/2711/1192 2227/2706/1192 2228/2712/1192 +f 2225/2709/1188 2228/2712/1188 2227/2706/1188 +f 2232/2714/1196 2234/2721/1196 2235/2715/1196 +f 2230/2717/1204 2235/2715/1204 2236/2718/1204 +f 2231/2720/1203 2237/2724/1203 2234/2721/1203 +f 2229/2723/1192 2236/2718/1192 2237/2724/1192 +f 2234/2721/1188 2237/2724/1188 2236/2718/1188 +f 2245/2726/1188 2242/2730/1188 2243/2727/1188 +f 2250/2729/1202 2243/2727/1202 2242/2730/1202 +f 2248/2732/1203 2242/2730/1203 2245/2726/1203 +f 2249/2734/1204 2244/2728/1204 2243/2727/1204 +f 2247/2736/1196 2245/2726/1196 2244/2728/1196 +f 2254/2738/1188 2251/2742/1188 2252/2739/1188 +f 2258/2741/1202 2252/2739/1202 2251/2742/1202 +f 2256/2744/1203 2251/2742/1203 2254/2738/1203 +f 2257/2746/1204 2253/2740/1204 2252/2739/1204 +f 2255/2748/1196 2254/2738/1196 2253/2740/1196 +f 2246/2750/1196 2259/2757/1196 2260/2751/1196 +f 2212/2753/1204 2260/2751/1204 2261/2754/1204 +f 2241/2756/1203 2262/2760/1203 2259/2757/1203 +f 2210/2759/1202 2261/2754/1202 2262/2760/1202 +f 2259/2757/1188 2262/2760/1188 2261/2754/1188 +f 2284/2762/1188 2281/2766/1188 2282/2763/1188 +f 2333/2765/1192 2282/2763/1192 2281/2766/1192 +f 2302/2768/1203 2281/2766/1203 2284/2762/1203 +f 2331/2770/1204 2283/2764/1204 2282/2763/1204 +f 2297/2772/1196 2284/2762/1196 2283/2764/1196 +f 2288/2774/1196 2289/2781/1196 2290/2775/1196 +f 2286/2777/1204 2290/2775/1204 2291/2778/1204 +f 2287/2780/1203 2292/2784/1203 2289/2781/1203 +f 2285/2783/1192 2291/2778/1192 2292/2784/1192 +f 2289/2781/1188 2292/2784/1188 2291/2778/1188 +f 2296/2786/1196 2298/2793/1196 2299/2787/1196 +f 2294/2789/1204 2299/2787/1204 2300/2790/1204 +f 2295/2792/1203 2301/2796/1203 2298/2793/1203 +f 2293/2795/1192 2300/2790/1192 2301/2796/1192 +f 2298/2793/1188 2301/2796/1188 2300/2790/1188 +f 2309/2798/1188 2306/2802/1188 2307/2799/1188 +f 2314/2801/1192 2307/2799/1192 2306/2802/1192 +f 2312/2804/1203 2306/2802/1203 2309/2798/1203 +f 2313/2806/1204 2308/2800/1204 2307/2799/1204 +f 2311/2808/1196 2309/2798/1196 2308/2800/1196 +f 2318/2810/1188 2315/2814/1188 2316/2811/1188 +f 2322/2813/1192 2316/2811/1192 2315/2814/1192 +f 2320/2816/1203 2315/2814/1203 2318/2810/1203 +f 2321/2818/1204 2317/2812/1204 2316/2811/1204 +f 2319/2820/1196 2318/2810/1196 2317/2812/1196 +f 2310/2822/1196 2323/2829/1196 2324/2823/1196 +f 2304/2825/1204 2324/2823/1204 2325/2826/1204 +f 2305/2828/1203 2326/2832/1203 2323/2829/1203 +f 2303/2831/1192 2325/2826/1192 2326/2832/1192 +f 2323/2829/1188 2326/2832/1188 2325/2826/1188 +f 2280/2834/1188 2329/2838/1188 2328/2835/1188 +f 2274/2837/1202 2328/2835/1202 2329/2838/1202 +f 2272/2840/1203 2329/2838/1203 2280/2834/1203 +f 2273/2842/1204 2327/2836/1204 2328/2835/1204 +f 2279/2844/1196 2280/2834/1196 2327/2836/1196 +f 2330/2846/1196 2275/2853/1196 2276/2847/1196 +f 2334/2849/1204 2276/2847/1204 2277/2850/1204 +f 2332/2852/1203 2278/2856/1203 2275/2853/1203 +f 2335/2855/1202 2277/2850/1202 2278/2856/1202 +f 2275/2853/1188 2278/2856/1188 2277/2850/1188 +f 2372/2858/1188 2369/2862/1188 2370/2859/1188 +f 2336/2861/1192 2370/2859/1192 2369/2862/1192 +f 2339/2864/1203 2369/2862/1203 2372/2858/1203 +f 2337/2866/1204 2371/2860/1204 2370/2859/1204 +f 2341/2868/1196 2372/2858/1196 2371/2860/1196 +f 2368/2870/1196 2367/2877/1196 2344/2871/1196 +f 2374/2873/1204 2344/2871/1204 2343/2874/1204 +f 2375/2876/1203 2342/2880/1203 2367/2877/1203 +f 2373/2879/1192 2343/2874/1192 2342/2880/1192 +f 2367/2877/1188 2342/2880/1188 2343/2874/1188 +f 2349/2882/1188 2346/2886/1188 2347/2883/1188 +f 2354/2885/1202 2347/2883/1202 2346/2886/1202 +f 2352/2888/1203 2346/2886/1203 2349/2882/1203 +f 2353/2890/1204 2348/2884/1204 2347/2883/1204 +f 2351/2892/1196 2349/2882/1196 2348/2884/1196 +f 2358/2894/1188 2355/2898/1188 2356/2895/1188 +f 2362/2897/1202 2356/2895/1202 2355/2898/1202 +f 2360/2900/1203 2355/2898/1203 2358/2894/1203 +f 2361/2902/1204 2357/2896/1204 2356/2895/1204 +f 2359/2904/1196 2358/2894/1196 2357/2896/1196 +f 2350/2906/1196 2363/2913/1196 2364/2907/1196 +f 2340/2909/1204 2364/2907/1204 2365/2910/1204 +f 2345/2912/1203 2366/2916/1203 2363/2913/1203 +f 2338/2915/1202 2365/2910/1202 2366/2916/1202 +f 2363/2913/1188 2366/2916/1188 2365/2910/1188 +f 2388/2918/1188 2385/2922/1188 2386/2919/1188 +f 2445/2921/1192 2386/2919/1192 2385/2922/1192 +f 2406/2924/1203 2385/2922/1203 2388/2918/1203 +f 2443/2926/1204 2387/2920/1204 2386/2919/1204 +f 2401/2928/1196 2388/2918/1196 2387/2920/1196 +f 2392/2930/1196 2393/2937/1196 2394/2931/1196 +f 2390/2933/1204 2394/2931/1204 2395/2934/1204 +f 2391/2936/1203 2396/2940/1203 2393/2937/1203 +f 2389/2939/1192 2395/2934/1192 2396/2940/1192 +f 2393/2937/1188 2396/2940/1188 2395/2934/1188 +f 2400/2942/1196 2402/2949/1196 2403/2943/1196 +f 2398/2945/1204 2403/2943/1204 2404/2946/1204 +f 2399/2948/1203 2405/2952/1203 2402/2949/1203 +f 2397/2951/1192 2404/2946/1192 2405/2952/1192 +f 2402/2949/1188 2405/2952/1188 2404/2946/1188 +f 2438/2954/1188 2441/2958/1188 2440/2955/1188 +f 2378/2957/1202 2440/2955/1202 2441/2958/1202 +f 2376/2960/1203 2441/2958/1203 2438/2954/1203 +f 2377/2962/1204 2439/2956/1204 2440/2955/1204 +f 2437/2964/1196 2438/2954/1196 2439/2956/1196 +f 2442/2966/1196 2379/2973/1196 2380/2967/1196 +f 2446/2969/1204 2380/2967/1204 2381/2970/1204 +f 2444/2972/1203 2382/2976/1203 2379/2973/1203 +f 2447/2975/1202 2381/2970/1202 2382/2976/1202 +f 2379/2973/1188 2382/2976/1188 2381/2970/1188 +f 2408/2978/1188 2383/2982/1188 2384/2979/1188 +f 2436/2981/1202 2384/2979/1202 2383/2982/1202 +f 2434/2984/1203 2383/2982/1203 2408/2978/1203 +f 2435/2986/1204 2407/2980/1204 2384/2979/1204 +f 2427/2988/1196 2408/2978/1196 2407/2980/1196 +f 2412/2990/1196 2413/2997/1196 2414/2991/1196 +f 2410/2993/1204 2414/2991/1204 2415/2994/1204 +f 2411/2996/1203 2416/3000/1203 2413/2997/1203 +f 2409/2999/1202 2415/2994/1202 2416/3000/1202 +f 2413/2997/1188 2416/3000/1188 2415/2994/1188 +f 2424/3002/1188 2421/3006/1188 2422/3003/1188 +f 2429/3005/1202 2422/3003/1202 2421/3006/1202 +f 2426/3008/1203 2421/3006/1203 2424/3002/1203 +f 2428/3010/1204 2423/3004/1204 2422/3003/1204 +f 2425/3012/1196 2424/3002/1196 2423/3004/1196 +f 2420/3014/1196 2430/3021/1196 2431/3015/1196 +f 2418/3017/1204 2431/3015/1204 2432/3018/1204 +f 2419/3020/1203 2433/3024/1203 2430/3021/1203 +f 2417/3023/1202 2432/3018/1202 2433/3024/1202 +f 2430/3021/1188 2433/3024/1188 2432/3018/1188 +f 2475/3026/1186 2487/3036/1186 2486/3027/1186 +f 2482/3029/1186 2494/3038/1186 2493/3030/1186 +f 2478/3032/1186 2479/3043/1186 2491/3033/1186 +f 2476/3035/1186 2488/3045/1186 2487/3036/1186 +f 2483/3037/1186 2495/3046/1186 2494/3038/1186 +f 2473/3039/1186 2485/3047/1186 2484/3040/1186 +f 2480/3042/1186 2492/3049/1186 2491/3033/1186 +f 2476/3035/1186 2477/3050/1186 2489/3044/1186 +f 2472/3041/1186 2484/3040/1186 2495/3046/1186 +f 2474/3028/1186 2486/3027/1186 2485/3047/1186 +f 2480/3042/1186 2481/3357/1186 2493/3048/1186 +f 2478/3032/1186 2490/3034/1186 2489/3044/1186 +f 2511/3051/1186 2523/3061/1186 2522/3052/1186 +f 2518/3054/1186 2530/3063/1186 2529/3055/1186 +f 2514/3057/1186 2515/3068/1186 2527/3058/1186 +f 2512/3060/1186 2524/3070/1186 2523/3061/1186 +f 2519/3062/1186 2531/3071/1186 2530/3063/1186 +f 2509/3064/1186 2521/3072/1186 2520/3065/1186 +f 2516/3067/1186 2528/3074/1186 2527/3058/1186 +f 2512/3060/1186 2513/3075/1186 2525/3069/1186 +f 2508/3066/1186 2520/3065/1186 2531/3071/1186 +f 2510/3053/1186 2522/3052/1186 2521/3072/1186 +f 2516/3067/1186 2517/3358/1186 2529/3073/1186 +f 2514/3057/1186 2526/3059/1186 2525/3069/1186 +f 2556/3076/1197 2554/3359/1197 2555/3077/1197 +f 2558/3079/1205 2557/3081/1205 2555/3077/1205 +f 2557/3081/1199 2558/3360/1199 2552/3082/1199 +f 2559/3083/1200 2552/3361/1200 2556/3084/1200 +f 2555/3077/1186 2557/3081/1186 2559/3083/1186 +f 2546/3085/1196 2547/3093/1196 2544/3086/1196 +f 2551/3088/1202 2548/3362/1202 2549/3089/1202 +f 2551/3091/1193 2550/3090/1193 2546/3085/1193 +f 2547/3093/1188 2546/3085/1188 2550/3090/1188 +f 2547/3093/1194 2549/3089/1194 2548/3094/1194 +f 2586/3096/1195 2587/3104/1195 2584/3097/1195 +f 2591/3099/1192 2588/3363/1192 2589/3100/1192 +f 2591/3102/1193 2590/3101/1193 2586/3096/1193 +f 2587/3104/1188 2586/3096/1188 2590/3101/1188 +f 2587/3104/1194 2589/3100/1194 2588/3105/1194 +f 2594/3107/1195 2595/3115/1195 2592/3108/1195 +f 2599/3110/1192 2596/3364/1192 2597/3111/1192 +f 2599/3113/1193 2598/3112/1193 2594/3107/1193 +f 2595/3115/1188 2594/3107/1188 2598/3112/1188 +f 2595/3115/1194 2597/3111/1194 2596/3116/1194 +f 2602/3118/1196 2603/3126/1196 2600/3119/1196 +f 2607/3121/1202 2604/3365/1202 2605/3122/1202 +f 2607/3124/1193 2606/3123/1193 2602/3118/1193 +f 2603/3126/1188 2602/3118/1188 2606/3123/1188 +f 2603/3126/1194 2605/3122/1194 2604/3127/1194 +f 2623/3131/1188 2620/3366/1188 2619/3367/1188 +f 2620/3366/1188 2621/3368/1188 2619/3367/1188 +f 2621/3368/1188 2618/3369/1188 2619/3367/1188 +f 2619/3367/1188 2616/3370/1188 2623/3131/1188 +f 2616/3370/1188 2617/3129/1188 2623/3131/1188 +f 2625/3132/1188 2627/3371/1188 2626/3133/1188 +f 2629/3135/1188 2631/3372/1188 2630/3136/1188 +f 2636/3138/1197 2634/3373/1197 2635/3139/1197 +f 2638/3141/1205 2637/3143/1205 2635/3139/1205 +f 2637/3143/1199 2638/3374/1199 2632/3144/1199 +f 2639/3145/1200 2632/3375/1200 2636/3146/1200 +f 2635/3139/1186 2637/3143/1186 2639/3145/1186 +f 2668/3147/1197 2666/3376/1197 2667/3148/1197 +f 2670/3150/1205 2669/3152/1205 2667/3148/1205 +f 2669/3152/1199 2670/3377/1199 2664/3153/1199 +f 2671/3154/1200 2664/3378/1200 2668/3155/1200 +f 2667/3148/1186 2669/3152/1186 2671/3154/1186 +f 2700/3156/1197 2698/3379/1197 2699/3157/1197 +f 2702/3159/1205 2701/3161/1205 2699/3157/1205 +f 2701/3161/1199 2702/3380/1199 2696/3162/1199 +f 2703/3163/1200 2696/3381/1200 2700/3164/1200 +f 2699/3157/1186 2701/3161/1186 2703/3163/1186 +f 2732/3165/1197 2730/3382/1197 2731/3166/1197 +f 2734/3168/1205 2733/3170/1205 2731/3166/1205 +f 2733/3170/1199 2734/3383/1199 2728/3171/1199 +f 2735/3172/1200 2728/3384/1200 2732/3173/1200 +f 2731/3166/1186 2733/3170/1186 2735/3172/1186 +f 2764/3174/1197 2762/3385/1197 2763/3175/1197 +f 2766/3177/1205 2765/3179/1205 2763/3175/1205 +f 2765/3179/1199 2766/3386/1199 2760/3180/1199 +f 2767/3181/1200 2760/3387/1200 2764/3182/1200 +f 2763/3175/1186 2765/3179/1186 2767/3181/1186 +f 2796/3183/1197 2794/3388/1197 2795/3184/1197 +f 2798/3186/1205 2797/3188/1205 2795/3184/1205 +f 2797/3188/1199 2798/3389/1199 2792/3189/1199 +f 2799/3190/1200 2792/3390/1200 2796/3191/1200 +f 2795/3184/1186 2797/3188/1186 2799/3190/1186 +f 2828/3192/1197 2826/3391/1197 2827/3193/1197 +f 2830/3195/1205 2829/3197/1205 2827/3193/1205 +f 2829/3197/1199 2830/3392/1199 2824/3198/1199 +f 2831/3199/1200 2824/3393/1200 2828/3200/1200 +f 2827/3193/1186 2829/3197/1186 2831/3199/1186 +f 2860/3201/1197 2858/3394/1197 2859/3202/1197 +f 2862/3204/1205 2861/3206/1205 2859/3202/1205 +f 2861/3206/1199 2862/3395/1199 2856/3207/1199 +f 2863/3208/1200 2856/3396/1200 2860/3209/1200 +f 2859/3202/1186 2861/3206/1186 2863/3208/1186 +f 2928/3210/1188 2931/3214/1188 2930/3211/1188 +f 2890/3213/1202 2930/3211/1202 2931/3214/1202 +f 2888/3216/1203 2931/3214/1203 2928/3210/1203 +f 2889/3218/1204 2929/3212/1204 2930/3211/1204 +f 2927/3220/1196 2928/3210/1196 2929/3212/1196 +f 2932/3222/1196 2891/3229/1196 2892/3223/1196 +f 2934/3225/1204 2892/3223/1204 2893/3226/1204 +f 2933/3228/1203 2894/3232/1203 2891/3229/1203 +f 2935/3231/1202 2893/3226/1202 2894/3232/1202 +f 2891/3229/1188 2894/3232/1188 2893/3226/1188 +f 2898/3234/1188 2895/3238/1188 2896/3235/1188 +f 2926/3237/1202 2896/3235/1202 2895/3238/1202 +f 2924/3240/1203 2895/3238/1203 2898/3234/1203 +f 2925/3242/1204 2897/3236/1204 2896/3235/1204 +f 2917/3244/1196 2898/3234/1196 2897/3236/1196 +f 2902/3246/1196 2903/3253/1196 2904/3247/1196 +f 2900/3249/1204 2904/3247/1204 2905/3250/1204 +f 2901/3252/1203 2906/3256/1203 2903/3253/1203 +f 2899/3255/1202 2905/3250/1202 2906/3256/1202 +f 2903/3253/1188 2906/3256/1188 2905/3250/1188 +f 2914/3258/1188 2911/3262/1188 2912/3259/1188 +f 2919/3261/1202 2912/3259/1202 2911/3262/1202 +f 2916/3264/1203 2911/3262/1203 2914/3258/1203 +f 2918/3266/1204 2913/3260/1204 2912/3259/1204 +f 2915/3268/1196 2914/3258/1196 2913/3260/1196 +f 2910/3270/1196 2920/3277/1196 2921/3271/1196 +f 2908/3273/1204 2921/3271/1204 2922/3274/1204 +f 2909/3276/1203 2923/3280/1203 2920/3277/1203 +f 2907/3279/1202 2922/3274/1202 2923/3280/1202 +f 2920/3277/1188 2923/3280/1188 2922/3274/1188 +f 2976/3282/1188 2979/3286/1188 2978/3283/1188 +f 2938/3285/1202 2978/3283/1202 2979/3286/1202 +f 2936/3288/1203 2979/3286/1203 2976/3282/1203 +f 2937/3290/1204 2977/3284/1204 2978/3283/1204 +f 2975/3292/1196 2976/3282/1196 2977/3284/1196 +f 2980/3294/1196 2939/3301/1196 2940/3295/1196 +f 2982/3297/1204 2940/3295/1204 2941/3298/1204 +f 2981/3300/1203 2942/3304/1203 2939/3301/1203 +f 2983/3303/1202 2941/3298/1202 2942/3304/1202 +f 2939/3301/1188 2942/3304/1188 2941/3298/1188 +f 2946/3306/1188 2943/3310/1188 2944/3307/1188 +f 2974/3309/1202 2944/3307/1202 2943/3310/1202 +f 2972/3312/1203 2943/3310/1203 2946/3306/1203 +f 2973/3314/1204 2945/3308/1204 2944/3307/1204 +f 2965/3316/1196 2946/3306/1196 2945/3308/1196 +f 2950/3318/1196 2951/3325/1196 2952/3319/1196 +f 2948/3321/1204 2952/3319/1204 2953/3322/1204 +f 2949/3324/1203 2954/3328/1203 2951/3325/1203 +f 2947/3327/1202 2953/3322/1202 2954/3328/1202 +f 2951/3325/1188 2954/3328/1188 2953/3322/1188 +f 2962/3330/1188 2959/3334/1188 2960/3331/1188 +f 2967/3333/1202 2960/3331/1202 2959/3334/1202 +f 2964/3336/1203 2959/3334/1203 2962/3330/1203 +f 2966/3338/1204 2961/3332/1204 2960/3331/1204 +f 2963/3340/1196 2962/3330/1196 2961/3332/1196 +f 2958/3342/1196 2968/3349/1196 2969/3343/1196 +f 2956/3345/1204 2969/3343/1204 2970/3346/1204 +f 2957/3348/1203 2971/3352/1203 2968/3349/1203 +f 2955/3351/1202 2970/3346/1202 2971/3352/1202 +f 2968/3349/1188 2971/3352/1188 2970/3346/1188 s 1 -f 1086/2023/312 1109/1663/327 1097/2024/328 -f 1088/2025/329 1099/1665/330 1087/2026/331 -f 1095/2027/306 1106/1668/332 1094/2028/333 -f 1091/2029/334 1104/1658/335 1103/1676/336 -f 1088/2025/329 1101/1652/337 1100/1654/338 -f 1096/2030/339 1107/1657/340 1095/2031/306 -f 1093/2032/341 1104/1658/335 1092/2033/311 -f 1090/2034/342 1101/1652/337 1089/2035/309 -f 1097/2024/328 1108/1655/343 1096/2030/339 -f 1087/2026/331 1098/1667/344 1086/2023/312 -f 1094/2028/333 1105/1669/345 1093/2032/341 -f 1091/2029/334 1102/1661/346 1090/2034/342 -f 1116/1660/347 1127/2036/328 1115/1670/348 -f 1113/1662/349 1124/2037/333 1112/1653/350 -f 1120/1664/351 1131/2038/309 1119/1656/352 -f 1117/1659/353 1128/2039/312 1116/1660/347 -f 1114/1671/354 1125/2040/306 1113/1662/349 -f 1121/1672/355 1132/2041/342 1120/1664/351 -f 1111/1673/356 1122/2042/311 1110/1666/357 -f 1118/1675/358 1129/2043/331 1117/1659/353 -f 1115/1670/348 1126/2044/339 1114/1671/354 -f 1110/1666/357 1133/2045/334 1121/1672/355 -f 1112/1653/350 1123/2046/341 1111/1673/356 -f 1119/1674/352 1130/2047/329 1118/1675/358 -f 1085/2048/312 1145/1688/327 1074/2049/328 -f 1083/2050/329 1135/1690/330 1084/2051/331 -f 1076/2052/306 1142/1693/332 1077/2053/333 -f 1080/2054/334 1140/1683/335 1139/1701/336 -f 1083/2050/329 1137/1677/337 1136/1679/338 -f 1075/2055/339 1143/1682/340 1076/2056/306 -f 1078/2057/341 1140/1683/335 1079/2058/311 -f 1081/2059/342 1137/1677/337 1082/2060/309 -f 1074/2049/328 1144/1680/343 1075/2055/339 -f 1084/2051/331 1134/1692/344 1085/2048/312 -f 1077/2053/333 1141/1694/345 1078/2057/341 -f 1080/2054/334 1138/1686/346 1081/2059/342 -f 1152/1685/347 1163/2061/328 1151/1695/348 -f 1149/1687/349 1160/2062/333 1148/1678/350 -f 1156/1689/351 1167/2063/309 1155/1681/352 -f 1153/1684/353 1164/2064/312 1152/1685/347 -f 1150/1696/354 1161/2065/306 1149/1687/349 -f 1157/1697/355 1168/2066/342 1156/1689/351 -f 1147/1698/356 1158/2067/311 1146/1691/357 -f 1154/1700/358 1165/2068/331 1153/1684/353 -f 1151/1695/348 1162/2069/339 1150/1696/354 -f 1146/1691/357 1169/2070/334 1157/1697/355 -f 1148/1678/350 1159/2071/341 1147/1698/356 -f 1155/1699/352 1166/2072/329 1154/1700/358 -f 1195/2073/359 1202/2074/360 1203/2075/361 -f 1193/2076/362 1200/2077/363 1192/2078/306 -f 1191/2079/364 1198/2080/365 1190/2081/311 -f 1189/2082/366 1196/2083/367 1188/2084/309 -f 1186/2085/312 1194/2086/368 1195/2073/359 -f 1186/2085/312 1201/2087/369 1193/2076/362 -f 1192/2088/306 1199/2089/370 1191/2079/364 -f 1190/2081/311 1197/2090/371 1189/2082/366 -f 1188/2084/309 1194/2086/368 1187/2091/372 -f 1206/2092/373 1208/2093/374 1203/2094/361 -f 1195/2073/359 1209/2095/375 1201/2087/369 -f 1199/2089/370 1208/2096/374 1207/2097/376 -f 1198/2080/365 1205/2098/377 1197/2090/371 -f 1194/2086/368 1204/2099/378 1202/2074/360 -f 1200/2077/363 1209/2095/375 1208/2100/374 -f 1198/2080/365 1207/2097/376 1206/2101/373 -f 1197/2090/371 1204/2099/378 1196/2083/367 -f 1236/2102/310 1249/2103/379 1235/2104/380 -f 1238/2105/311 1247/2106/381 1237/2107/382 -f 1240/2108/307 1245/2109/383 1239/2110/384 -f 1234/2111/312 1243/1755/385 1241/2112/386 -f 1235/2104/380 1248/1756/387 1234/2111/312 -f 1237/2107/382 1246/2113/388 1236/2102/310 -f 1239/2110/384 1244/2114/389 1238/2105/311 -f 1241/2112/386 1242/1996/390 1240/2115/307 -f 1274/2116/368 1283/2117/361 1275/2118/359 -f 1273/2119/362 1280/2120/363 1272/2121/306 -f 1271/2122/364 1278/2123/365 1270/2124/311 -f 1269/2125/366 1276/2126/367 1268/2127/309 -f 1266/2128/312 1274/2116/368 1275/2118/359 -f 1266/2128/312 1281/2129/369 1273/2119/362 -f 1272/2130/306 1279/2131/370 1271/2122/364 -f 1270/2124/311 1277/2132/371 1269/2125/366 -f 1267/2133/372 1276/2126/367 1274/2116/368 -f 1286/2134/373 1288/2135/374 1283/2136/361 -f 1275/2118/359 1289/2137/375 1281/2129/369 -f 1280/2138/363 1287/2139/376 1279/2131/370 -f 1278/2123/365 1285/2140/377 1277/2132/371 -f 1274/2116/368 1284/2141/378 1282/2142/360 -f 1280/2120/363 1289/2137/375 1288/2143/374 -f 1278/2123/365 1287/2139/376 1286/2144/373 -f 1277/2132/371 1284/2141/378 1276/2126/367 -f 1307/2145/359 1314/2146/360 1315/2147/361 -f 1305/2148/362 1312/2149/363 1304/2150/306 -f 1303/2151/364 1310/2152/365 1302/2153/311 -f 1301/2154/366 1308/2155/367 1300/2156/309 -f 1298/2157/312 1306/2158/368 1307/2145/359 -f 1298/2157/312 1313/2159/369 1305/2148/362 -f 1304/2160/306 1311/2161/370 1303/2151/364 -f 1302/2153/311 1309/2162/371 1301/2154/366 -f 1299/2163/372 1308/2155/367 1306/2158/368 -f 1318/2164/373 1320/2165/374 1315/2166/361 -f 1307/2145/359 1321/2167/375 1313/2159/369 -f 1312/2168/363 1319/2169/376 1311/2161/370 -f 1310/2152/365 1317/2170/377 1309/2162/371 -f 1306/2158/368 1316/2171/378 1314/2146/360 -f 1312/2149/363 1321/2167/375 1320/2172/374 -f 1310/2152/365 1319/2169/376 1318/2173/373 -f 1309/2162/371 1316/2171/378 1308/2155/367 -f 1343/2174/367 1334/2175/377 1335/2176/378 -f 1341/2177/365 1332/2178/376 1333/2179/373 -f 1339/2180/363 1330/2181/375 1331/2182/374 -f 1345/2183/368 1335/2176/378 1337/2184/360 -f 1341/2177/365 1334/2175/377 1342/2185/371 -f 1339/2186/363 1332/2178/376 1340/2187/370 -f 1344/2188/359 1330/2181/375 1338/2189/369 -f 1333/2190/373 1331/2191/374 1336/2192/361 -f 1352/2193/372 1343/2174/367 1345/2183/368 -f 1349/2194/311 1342/2185/371 1350/2195/366 -f 1347/2196/306 1340/2187/370 1348/2197/364 -f 1353/2198/312 1338/2189/369 1346/2199/362 -f 1353/2198/312 1345/2183/368 1344/2188/359 -f 1350/2195/366 1343/2174/367 1351/2200/309 -f 1348/2197/364 1341/2177/365 1349/2194/311 -f 1346/2199/362 1339/2180/363 1347/2201/306 -f 1344/2188/359 1337/2184/360 1336/2202/361 -f 1371/2203/359 1378/2204/360 1379/2205/361 -f 1369/2206/362 1376/2207/363 1368/2208/306 -f 1367/2209/364 1374/2210/365 1366/2211/311 -f 1364/2212/309 1373/2213/371 1372/2214/367 -f 1362/2215/312 1370/2216/368 1371/2203/359 -f 1362/2215/312 1377/2217/369 1369/2206/362 -f 1368/2218/306 1375/2219/370 1367/2209/364 -f 1366/2211/311 1373/2213/371 1365/2220/366 -f 1364/2212/309 1370/2216/368 1363/2221/372 -f 1382/2222/373 1384/2223/374 1379/2224/361 -f 1371/2203/359 1385/2225/375 1377/2217/369 -f 1376/2226/363 1383/2227/376 1375/2219/370 -f 1374/2210/365 1381/2228/377 1373/2213/371 -f 1370/2216/368 1380/2229/378 1378/2204/360 -f 1376/2207/363 1385/2225/375 1384/2230/374 -f 1374/2210/365 1383/2227/376 1382/2231/373 -f 1373/2213/371 1380/2229/378 1372/2214/367 -f 1406/2232/371 1399/2233/378 1407/2234/367 -f 1405/2235/365 1396/2236/376 1397/2237/373 -f 1403/2238/363 1394/2239/375 1395/2240/374 -f 1409/2241/368 1399/2233/378 1401/2242/360 -f 1405/2235/365 1398/2243/377 1406/2232/371 -f 1403/2244/363 1396/2236/376 1404/2245/370 -f 1408/2246/359 1394/2239/375 1402/2247/369 -f 1397/2248/373 1395/2249/374 1400/2250/361 -f 1415/2251/309 1409/2241/368 1416/2252/372 -f 1413/2253/311 1406/2232/371 1414/2254/366 -f 1411/2255/306 1404/2245/370 1412/2256/364 -f 1417/2257/312 1402/2247/369 1410/2258/362 -f 1417/2257/312 1409/2241/368 1408/2246/359 -f 1415/2251/309 1406/2232/371 1407/2234/367 -f 1412/2256/364 1405/2235/365 1413/2253/311 -f 1410/2258/362 1403/2238/363 1411/2259/306 -f 1408/2246/359 1401/2242/360 1400/2260/361 -f 1435/2261/359 1442/2262/360 1443/2263/361 -f 1433/2264/362 1440/2265/363 1432/2266/306 -f 1431/2267/364 1438/2268/365 1430/2269/311 -f 1429/2270/366 1436/2271/367 1428/2272/309 -f 1426/2273/312 1434/2274/368 1435/2261/359 -f 1426/2273/312 1441/2275/369 1433/2264/362 -f 1432/2276/306 1439/2277/370 1431/2267/364 -f 1430/2269/311 1437/2278/371 1429/2270/366 -f 1427/2279/372 1436/2271/367 1434/2274/368 -f 1446/2280/373 1448/2281/374 1443/2282/361 -f 1435/2261/359 1449/2283/375 1441/2275/369 -f 1440/2284/363 1447/2285/376 1439/2277/370 -f 1437/2278/371 1446/2286/373 1445/2287/377 -f 1434/2274/368 1444/2288/378 1442/2262/360 -f 1440/2265/363 1449/2283/375 1448/2289/374 -f 1438/2268/365 1447/2285/376 1446/2286/373 -f 1437/2278/371 1444/2288/378 1436/2271/367 -f 1471/2290/367 1462/2291/377 1463/2292/378 -f 1469/2293/365 1460/2294/376 1461/2295/373 -f 1467/2296/363 1458/2297/375 1459/2298/374 -f 1473/2299/368 1463/2292/378 1465/2300/360 -f 1470/2301/371 1461/2295/373 1462/2291/377 -f 1467/2302/363 1460/2294/376 1468/2303/370 -f 1472/2304/359 1458/2297/375 1466/2305/369 -f 1461/2306/373 1459/2307/374 1464/2308/361 -f 1480/2309/372 1471/2290/367 1473/2299/368 -f 1477/2310/311 1470/2301/371 1478/2311/366 -f 1475/2312/306 1468/2303/370 1476/2313/364 -f 1481/2314/312 1466/2305/369 1474/2315/362 -f 1481/2314/312 1473/2299/368 1472/2304/359 -f 1478/2311/366 1471/2290/367 1479/2316/309 -f 1476/2313/364 1469/2293/365 1477/2310/311 -f 1474/2315/362 1467/2296/363 1475/2317/306 -f 1472/2304/359 1465/2300/360 1464/2318/361 -f 1502/2319/371 1495/2320/378 1503/2321/367 -f 1501/2322/365 1492/2323/376 1493/2324/373 -f 1499/2325/363 1490/2326/375 1491/2327/374 -f 1505/2328/368 1495/2320/378 1497/2329/360 -f 1501/2322/365 1494/2330/377 1502/2319/371 -f 1499/2331/363 1492/2323/376 1500/2332/370 -f 1504/2333/359 1490/2326/375 1498/2334/369 -f 1493/2335/373 1491/2336/374 1496/2337/361 -f 1511/2338/309 1505/2328/368 1512/2339/372 -f 1509/2340/311 1502/2319/371 1510/2341/366 -f 1507/2342/306 1500/2332/370 1508/2343/364 -f 1513/2344/312 1498/2334/369 1506/2345/362 -f 1513/2344/312 1505/2328/368 1504/2333/359 -f 1510/2341/366 1503/2321/367 1511/2338/309 -f 1508/2343/364 1501/2322/365 1509/2340/311 -f 1506/2345/362 1499/2325/363 1507/2346/306 -f 1504/2333/359 1497/2329/360 1496/2347/361 -f 1086/2023/312 1098/1667/344 1109/1663/327 -f 1088/2025/329 1100/1654/338 1099/1665/330 -f 1095/2027/306 1107/1983/340 1106/1668/332 -f 1091/2029/334 1092/2033/311 1104/1658/335 -f 1088/2025/329 1089/2035/309 1101/1652/337 -f 1096/2030/339 1108/1655/343 1107/1657/340 -f 1093/2032/341 1105/1669/345 1104/1658/335 -f 1090/2034/342 1102/1661/346 1101/1652/337 -f 1097/2024/328 1109/1663/327 1108/1655/343 -f 1087/2026/331 1099/1665/330 1098/1667/344 -f 1094/2028/333 1106/1668/332 1105/1669/345 -f 1091/2029/334 1103/1676/336 1102/1661/346 -f 1116/1660/347 1128/2039/312 1127/2036/328 -f 1113/1662/349 1125/2040/306 1124/2037/333 -f 1120/1664/351 1132/2041/342 1131/2038/309 -f 1117/1659/353 1129/2043/331 1128/2039/312 -f 1114/1671/354 1126/2044/339 1125/2040/306 -f 1121/1672/355 1133/2045/334 1132/2041/342 -f 1111/1673/356 1123/2046/341 1122/2042/311 -f 1118/1675/358 1130/2047/329 1129/2043/331 -f 1115/1670/348 1127/2036/328 1126/2044/339 -f 1110/1666/357 1122/2042/311 1133/2045/334 -f 1112/1653/350 1124/2037/333 1123/2046/341 -f 1119/1674/352 1131/2348/309 1130/2047/329 -f 1085/2048/312 1134/1692/344 1145/1688/327 -f 1083/2050/329 1136/1679/338 1135/1690/330 -f 1076/2052/306 1143/1984/340 1142/1693/332 -f 1080/2054/334 1079/2058/311 1140/1683/335 -f 1083/2050/329 1082/2060/309 1137/1677/337 -f 1075/2055/339 1144/1680/343 1143/1682/340 -f 1078/2057/341 1141/1694/345 1140/1683/335 -f 1081/2059/342 1138/1686/346 1137/1677/337 -f 1074/2049/328 1145/1688/327 1144/1680/343 -f 1084/2051/331 1135/1690/330 1134/1692/344 -f 1077/2053/333 1142/1693/332 1141/1694/345 -f 1080/2054/334 1139/1701/336 1138/1686/346 -f 1152/1685/347 1164/2064/312 1163/2061/328 -f 1149/1687/349 1161/2065/306 1160/2062/333 -f 1156/1689/351 1168/2066/342 1167/2063/309 -f 1153/1684/353 1165/2068/331 1164/2064/312 -f 1150/1696/354 1162/2069/339 1161/2065/306 -f 1157/1697/355 1169/2070/334 1168/2066/342 -f 1147/1698/356 1159/2071/341 1158/2067/311 -f 1154/1700/358 1166/2072/329 1165/2068/331 -f 1151/1695/348 1163/2061/328 1162/2069/339 -f 1146/1691/357 1158/2067/311 1169/2070/334 -f 1148/1678/350 1160/2062/333 1159/2071/341 -f 1155/1699/352 1167/2349/309 1166/2072/329 -f 1195/2073/359 1194/2086/368 1202/2074/360 -f 1193/2076/362 1201/2087/369 1200/2077/363 -f 1191/2079/364 1199/2089/370 1198/2080/365 -f 1189/2082/366 1197/2090/371 1196/2083/367 -f 1186/2085/312 1187/2091/372 1194/2086/368 -f 1186/2085/312 1195/2073/359 1201/2087/369 -f 1192/2088/306 1200/2350/363 1199/2089/370 -f 1190/2081/311 1198/2080/365 1197/2090/371 -f 1188/2084/309 1196/2083/367 1194/2086/368 -f 1203/2094/361 1202/2351/360 1204/2352/378 -f 1204/2352/378 1205/2353/377 1206/2092/373 -f 1206/2092/373 1207/2354/376 1208/2093/374 -f 1208/2093/374 1209/2095/375 1203/2094/361 -f 1203/2094/361 1204/2352/378 1206/2092/373 -f 1195/2073/359 1203/2075/361 1209/2095/375 -f 1199/2089/370 1200/2350/363 1208/2096/374 -f 1198/2080/365 1206/2101/373 1205/2098/377 -f 1194/2086/368 1196/2083/367 1204/2099/378 -f 1200/2077/363 1201/2087/369 1209/2095/375 -f 1198/2080/365 1199/2089/370 1207/2097/376 -f 1197/2090/371 1205/2098/377 1204/2099/378 -f 1236/2102/310 1246/2113/388 1249/2103/379 -f 1238/2105/311 1244/2114/389 1247/2106/381 -f 1240/2108/307 1242/2355/390 1245/2109/383 -f 1234/2111/312 1248/1756/387 1243/1755/385 -f 1235/2104/380 1249/2103/379 1248/1756/387 -f 1237/2107/382 1247/2106/381 1246/2113/388 -f 1239/2110/384 1245/2109/383 1244/2114/389 -f 1241/2112/386 1243/1755/385 1242/1996/390 -f 1274/2116/368 1282/2142/360 1283/2117/361 -f 1273/2119/362 1281/2129/369 1280/2120/363 -f 1271/2122/364 1279/2131/370 1278/2123/365 -f 1269/2125/366 1277/2132/371 1276/2126/367 -f 1266/2128/312 1267/2133/372 1274/2116/368 -f 1266/2128/312 1275/2118/359 1281/2129/369 -f 1272/2130/306 1280/2138/363 1279/2131/370 -f 1270/2124/311 1278/2123/365 1277/2132/371 -f 1267/2133/372 1268/2127/309 1276/2126/367 -f 1283/2136/361 1282/2356/360 1284/2357/378 -f 1284/2357/378 1285/2358/377 1286/2134/373 -f 1286/2134/373 1287/2359/376 1288/2135/374 -f 1288/2135/374 1289/2137/375 1283/2136/361 -f 1283/2136/361 1284/2357/378 1286/2134/373 -f 1275/2118/359 1283/2117/361 1289/2137/375 -f 1280/2138/363 1288/2360/374 1287/2139/376 -f 1278/2123/365 1286/2144/373 1285/2140/377 -f 1274/2116/368 1276/2126/367 1284/2141/378 -f 1280/2120/363 1281/2129/369 1289/2137/375 -f 1278/2123/365 1279/2131/370 1287/2139/376 -f 1277/2132/371 1285/2140/377 1284/2141/378 -f 1307/2145/359 1306/2158/368 1314/2146/360 -f 1305/2148/362 1313/2159/369 1312/2149/363 -f 1303/2151/364 1311/2161/370 1310/2152/365 -f 1301/2154/366 1309/2162/371 1308/2155/367 -f 1298/2157/312 1299/2163/372 1306/2158/368 -f 1298/2157/312 1307/2145/359 1313/2159/369 -f 1304/2160/306 1312/2168/363 1311/2161/370 -f 1302/2153/311 1310/2152/365 1309/2162/371 -f 1299/2163/372 1300/2156/309 1308/2155/367 -f 1315/2166/361 1314/2361/360 1316/2362/378 -f 1316/2362/378 1317/2363/377 1318/2164/373 -f 1318/2164/373 1319/2364/376 1320/2165/374 -f 1320/2165/374 1321/2167/375 1315/2166/361 -f 1315/2166/361 1316/2362/378 1318/2164/373 -f 1307/2145/359 1315/2147/361 1321/2167/375 -f 1312/2168/363 1320/2365/374 1319/2169/376 -f 1310/2152/365 1318/2173/373 1317/2170/377 -f 1306/2158/368 1308/2155/367 1316/2171/378 -f 1312/2149/363 1313/2159/369 1321/2167/375 -f 1310/2152/365 1311/2161/370 1319/2169/376 -f 1309/2162/371 1317/2170/377 1316/2171/378 -f 1343/2174/367 1342/2185/371 1334/2175/377 -f 1341/2177/365 1340/2187/370 1332/2178/376 -f 1339/2180/363 1338/2189/369 1330/2181/375 -f 1345/2183/368 1343/2174/367 1335/2176/378 -f 1341/2177/365 1333/2179/373 1334/2175/377 -f 1339/2186/363 1331/2366/374 1332/2178/376 -f 1344/2188/359 1336/2202/361 1330/2181/375 -f 1336/2192/361 1337/2367/360 1335/2368/378 -f 1335/2368/378 1334/2369/377 1333/2190/373 -f 1333/2190/373 1332/2370/376 1331/2191/374 -f 1331/2191/374 1330/2181/375 1336/2192/361 -f 1336/2192/361 1335/2368/378 1333/2190/373 -f 1352/2193/372 1351/2200/309 1343/2174/367 -f 1349/2194/311 1341/2177/365 1342/2185/371 -f 1347/2196/306 1339/2186/363 1340/2187/370 -f 1353/2198/312 1344/2188/359 1338/2189/369 -f 1353/2198/312 1352/2193/372 1345/2183/368 -f 1350/2195/366 1342/2185/371 1343/2174/367 -f 1348/2197/364 1340/2187/370 1341/2177/365 -f 1346/2199/362 1338/2189/369 1339/2180/363 -f 1344/2188/359 1345/2183/368 1337/2184/360 -f 1371/2203/359 1370/2216/368 1378/2204/360 -f 1369/2206/362 1377/2217/369 1376/2207/363 -f 1367/2209/364 1375/2219/370 1374/2210/365 -f 1364/2212/309 1365/2220/366 1373/2213/371 -f 1362/2215/312 1363/2221/372 1370/2216/368 -f 1362/2215/312 1371/2203/359 1377/2217/369 -f 1368/2218/306 1376/2226/363 1375/2219/370 -f 1366/2211/311 1374/2210/365 1373/2213/371 -f 1364/2212/309 1372/2214/367 1370/2216/368 -f 1379/2224/361 1378/2371/360 1380/2372/378 -f 1380/2372/378 1381/2373/377 1382/2222/373 -f 1382/2222/373 1383/2374/376 1384/2223/374 -f 1384/2223/374 1385/2225/375 1379/2224/361 -f 1379/2224/361 1380/2372/378 1382/2222/373 -f 1371/2203/359 1379/2205/361 1385/2225/375 -f 1376/2226/363 1384/2375/374 1383/2227/376 -f 1374/2210/365 1382/2231/373 1381/2228/377 -f 1370/2216/368 1372/2214/367 1380/2229/378 -f 1376/2207/363 1377/2217/369 1385/2225/375 -f 1374/2210/365 1375/2219/370 1383/2227/376 -f 1373/2213/371 1381/2228/377 1380/2229/378 -f 1406/2232/371 1398/2243/377 1399/2233/378 -f 1405/2235/365 1404/2245/370 1396/2236/376 -f 1403/2238/363 1402/2247/369 1394/2239/375 -f 1409/2241/368 1407/2234/367 1399/2233/378 -f 1405/2235/365 1397/2237/373 1398/2243/377 -f 1403/2244/363 1395/2376/374 1396/2236/376 -f 1408/2246/359 1400/2260/361 1394/2239/375 -f 1400/2250/361 1401/2377/360 1399/2378/378 -f 1399/2378/378 1398/2379/377 1397/2248/373 -f 1397/2248/373 1396/2380/376 1395/2249/374 -f 1395/2249/374 1394/2239/375 1400/2250/361 -f 1400/2250/361 1399/2378/378 1397/2248/373 -f 1415/2251/309 1407/2234/367 1409/2241/368 -f 1413/2253/311 1405/2235/365 1406/2232/371 -f 1411/2255/306 1403/2244/363 1404/2245/370 -f 1417/2257/312 1408/2246/359 1402/2247/369 -f 1417/2257/312 1416/2252/372 1409/2241/368 -f 1415/2251/309 1414/2254/366 1406/2232/371 -f 1412/2256/364 1404/2245/370 1405/2235/365 -f 1410/2258/362 1402/2247/369 1403/2238/363 -f 1408/2246/359 1409/2241/368 1401/2242/360 -f 1435/2261/359 1434/2274/368 1442/2262/360 -f 1433/2264/362 1441/2275/369 1440/2265/363 -f 1431/2267/364 1439/2277/370 1438/2268/365 -f 1429/2270/366 1437/2278/371 1436/2271/367 -f 1426/2273/312 1427/2279/372 1434/2274/368 -f 1426/2273/312 1435/2261/359 1441/2275/369 -f 1432/2276/306 1440/2284/363 1439/2277/370 -f 1430/2269/311 1438/2268/365 1437/2278/371 -f 1427/2279/372 1428/2272/309 1436/2271/367 -f 1443/2282/361 1442/2381/360 1444/2382/378 -f 1444/2382/378 1445/2383/377 1446/2280/373 -f 1446/2280/373 1447/2384/376 1448/2281/374 -f 1448/2281/374 1449/2283/375 1443/2282/361 -f 1443/2282/361 1444/2382/378 1446/2280/373 -f 1435/2261/359 1443/2263/361 1449/2283/375 -f 1440/2284/363 1448/2385/374 1447/2285/376 -f 1437/2278/371 1438/2268/365 1446/2286/373 -f 1434/2274/368 1436/2271/367 1444/2288/378 -f 1440/2265/363 1441/2275/369 1449/2283/375 -f 1438/2268/365 1439/2277/370 1447/2285/376 -f 1437/2278/371 1445/2287/377 1444/2288/378 -f 1471/2290/367 1470/2301/371 1462/2291/377 -f 1469/2293/365 1468/2303/370 1460/2294/376 -f 1467/2296/363 1466/2305/369 1458/2297/375 -f 1473/2299/368 1471/2290/367 1463/2292/378 -f 1470/2301/371 1469/2293/365 1461/2295/373 -f 1467/2302/363 1459/2386/374 1460/2294/376 -f 1472/2304/359 1464/2318/361 1458/2297/375 -f 1464/2308/361 1465/2387/360 1463/2388/378 -f 1463/2388/378 1462/2389/377 1461/2306/373 -f 1461/2306/373 1460/2390/376 1459/2307/374 -f 1459/2307/374 1458/2297/375 1464/2308/361 -f 1464/2308/361 1463/2388/378 1461/2306/373 -f 1480/2309/372 1479/2316/309 1471/2290/367 -f 1477/2310/311 1469/2293/365 1470/2301/371 -f 1475/2312/306 1467/2302/363 1468/2303/370 -f 1481/2314/312 1472/2304/359 1466/2305/369 -f 1481/2314/312 1480/2309/372 1473/2299/368 -f 1478/2311/366 1470/2301/371 1471/2290/367 -f 1476/2313/364 1468/2303/370 1469/2293/365 -f 1474/2315/362 1466/2305/369 1467/2296/363 -f 1472/2304/359 1473/2299/368 1465/2300/360 -f 1502/2319/371 1494/2330/377 1495/2320/378 -f 1501/2322/365 1500/2332/370 1492/2323/376 -f 1499/2325/363 1498/2334/369 1490/2326/375 -f 1505/2328/368 1503/2321/367 1495/2320/378 -f 1501/2322/365 1493/2324/373 1494/2330/377 -f 1499/2331/363 1491/2391/374 1492/2323/376 -f 1504/2333/359 1496/2347/361 1490/2326/375 -f 1496/2337/361 1497/2392/360 1495/2393/378 -f 1495/2393/378 1494/2394/377 1493/2335/373 -f 1493/2335/373 1492/2395/376 1491/2336/374 -f 1491/2336/374 1490/2326/375 1496/2337/361 -f 1496/2337/361 1495/2393/378 1493/2335/373 -f 1511/2338/309 1503/2321/367 1505/2328/368 -f 1509/2340/311 1501/2322/365 1502/2319/371 -f 1507/2342/306 1499/2331/363 1500/2332/370 -f 1513/2344/312 1504/2333/359 1498/2334/369 -f 1513/2344/312 1512/2339/372 1505/2328/368 -f 1510/2341/366 1502/2319/371 1503/2321/367 -f 1508/2343/364 1500/2332/370 1501/2322/365 -f 1506/2345/362 1498/2334/369 1499/2325/363 -f 1504/2333/359 1505/2328/368 1497/2329/360 +f 2460/3397/1191 2483/3037/1206 2471/3398/1207 +f 2462/3399/1208 2473/3039/1209 2461/3400/1210 +f 2469/3401/1185 2480/3042/1211 2468/3402/1212 +f 2465/3403/1213 2478/3032/1214 2477/3050/1215 +f 2462/3399/1208 2475/3026/1216 2474/3028/1217 +f 2470/3404/1218 2481/3031/1219 2469/3405/1185 +f 2467/3406/1220 2478/3032/1214 2466/3407/1190 +f 2464/3408/1221 2475/3026/1216 2463/3409/1188 +f 2471/3398/1207 2482/3029/1222 2470/3404/1218 +f 2461/3400/1210 2472/3041/1223 2460/3397/1191 +f 2468/3402/1212 2479/3043/1224 2467/3406/1220 +f 2465/3403/1213 2476/3035/1225 2464/3408/1221 +f 2490/3034/1226 2501/3410/1207 2489/3044/1227 +f 2487/3036/1228 2498/3411/1212 2486/3027/1229 +f 2494/3038/1230 2505/3412/1188 2493/3030/1231 +f 2491/3033/1232 2502/3413/1191 2490/3034/1226 +f 2488/3045/1233 2499/3414/1185 2487/3036/1228 +f 2495/3046/1234 2506/3415/1221 2494/3038/1230 +f 2485/3047/1235 2496/3416/1190 2484/3040/1236 +f 2492/3049/1237 2503/3417/1210 2491/3033/1232 +f 2489/3044/1227 2500/3418/1218 2488/3045/1233 +f 2484/3040/1236 2507/3419/1213 2495/3046/1234 +f 2486/3027/1229 2497/3420/1220 2485/3047/1235 +f 2493/3048/1231 2504/3421/1208 2492/3049/1237 +f 2459/3422/1191 2519/3062/1206 2448/3423/1207 +f 2457/3424/1208 2509/3064/1209 2458/3425/1210 +f 2450/3426/1185 2516/3067/1211 2451/3427/1212 +f 2454/3428/1213 2514/3057/1214 2513/3075/1215 +f 2457/3424/1208 2511/3051/1216 2510/3053/1217 +f 2449/3429/1218 2517/3056/1219 2450/3430/1185 +f 2452/3431/1220 2514/3057/1214 2453/3432/1190 +f 2455/3433/1221 2511/3051/1216 2456/3434/1188 +f 2448/3423/1207 2518/3054/1222 2449/3429/1218 +f 2458/3425/1210 2508/3066/1223 2459/3422/1191 +f 2451/3427/1212 2515/3068/1224 2452/3431/1220 +f 2454/3428/1213 2512/3060/1225 2455/3433/1221 +f 2526/3059/1226 2537/3435/1207 2525/3069/1227 +f 2523/3061/1228 2534/3436/1212 2522/3052/1229 +f 2530/3063/1230 2541/3437/1188 2529/3055/1231 +f 2527/3058/1232 2538/3438/1191 2526/3059/1226 +f 2524/3070/1233 2535/3439/1185 2523/3061/1228 +f 2531/3071/1234 2542/3440/1221 2530/3063/1230 +f 2521/3072/1235 2532/3441/1190 2520/3065/1236 +f 2528/3074/1237 2539/3442/1210 2527/3058/1232 +f 2525/3069/1227 2536/3443/1218 2524/3070/1233 +f 2520/3065/1236 2543/3444/1213 2531/3071/1234 +f 2522/3052/1229 2533/3445/1220 2521/3072/1235 +f 2529/3073/1231 2540/3446/1208 2528/3074/1237 +f 2569/3447/1238 2576/3448/1239 2577/3449/1240 +f 2567/3450/1241 2574/3451/1242 2566/3452/1185 +f 2565/3453/1243 2572/3454/1244 2564/3455/1190 +f 2563/3456/1245 2570/3457/1246 2562/3458/1188 +f 2560/3459/1191 2568/3460/1247 2569/3447/1238 +f 2560/3459/1191 2575/3461/1248 2567/3450/1241 +f 2566/3462/1185 2573/3463/1249 2565/3453/1243 +f 2564/3455/1190 2571/3464/1250 2563/3456/1245 +f 2562/3458/1188 2568/3460/1247 2561/3465/1251 +f 2580/3466/1252 2582/3467/1253 2577/3468/1240 +f 2569/3447/1238 2583/3469/1254 2575/3461/1248 +f 2573/3463/1249 2582/3470/1253 2581/3471/1255 +f 2572/3454/1244 2579/3472/1256 2571/3464/1250 +f 2568/3460/1247 2578/3473/1257 2576/3448/1239 +f 2574/3451/1242 2583/3469/1254 2582/3474/1253 +f 2572/3454/1244 2581/3471/1255 2580/3475/1252 +f 2571/3464/1250 2578/3473/1257 2570/3457/1246 +f 2610/3476/1189 2623/3477/1258 2609/3478/1259 +f 2612/3479/1190 2621/3480/1260 2611/3481/1261 +f 2614/3482/1186 2619/3483/1262 2613/3484/1263 +f 2608/3485/1191 2617/3129/1264 2615/3486/1265 +f 2609/3478/1259 2622/3130/1266 2608/3485/1191 +f 2611/3481/1261 2620/3487/1267 2610/3476/1189 +f 2613/3484/1263 2618/3488/1268 2612/3479/1190 +f 2615/3486/1265 2616/3370/1269 2614/3489/1186 +f 2648/3490/1247 2657/3491/1240 2649/3492/1238 +f 2647/3493/1241 2654/3494/1242 2646/3495/1185 +f 2645/3496/1243 2652/3497/1244 2644/3498/1190 +f 2643/3499/1245 2650/3500/1246 2642/3501/1188 +f 2640/3502/1191 2648/3490/1247 2649/3492/1238 +f 2640/3502/1191 2655/3503/1248 2647/3493/1241 +f 2646/3504/1185 2653/3505/1249 2645/3496/1243 +f 2644/3498/1190 2651/3506/1250 2643/3499/1245 +f 2641/3507/1251 2650/3500/1246 2648/3490/1247 +f 2660/3508/1252 2662/3509/1253 2657/3510/1240 +f 2649/3492/1238 2663/3511/1254 2655/3503/1248 +f 2654/3512/1242 2661/3513/1255 2653/3505/1249 +f 2652/3497/1244 2659/3514/1256 2651/3506/1250 +f 2648/3490/1247 2658/3515/1257 2656/3516/1239 +f 2654/3494/1242 2663/3511/1254 2662/3517/1253 +f 2652/3497/1244 2661/3513/1255 2660/3518/1252 +f 2651/3506/1250 2658/3515/1257 2650/3500/1246 +f 2681/3519/1238 2688/3520/1239 2689/3521/1240 +f 2679/3522/1241 2686/3523/1242 2678/3524/1185 +f 2677/3525/1243 2684/3526/1244 2676/3527/1190 +f 2675/3528/1245 2682/3529/1246 2674/3530/1188 +f 2672/3531/1191 2680/3532/1247 2681/3519/1238 +f 2672/3531/1191 2687/3533/1248 2679/3522/1241 +f 2678/3534/1185 2685/3535/1249 2677/3525/1243 +f 2676/3527/1190 2683/3536/1250 2675/3528/1245 +f 2673/3537/1251 2682/3529/1246 2680/3532/1247 +f 2692/3538/1252 2694/3539/1253 2689/3540/1240 +f 2681/3519/1238 2695/3541/1254 2687/3533/1248 +f 2686/3542/1242 2693/3543/1255 2685/3535/1249 +f 2684/3526/1244 2691/3544/1256 2683/3536/1250 +f 2680/3532/1247 2690/3545/1257 2688/3520/1239 +f 2686/3523/1242 2695/3541/1254 2694/3546/1253 +f 2684/3526/1244 2693/3543/1255 2692/3547/1252 +f 2683/3536/1250 2690/3545/1257 2682/3529/1246 +f 2717/3548/1246 2708/3549/1256 2709/3550/1257 +f 2715/3551/1244 2706/3552/1255 2707/3553/1252 +f 2713/3554/1242 2704/3555/1254 2705/3556/1253 +f 2719/3557/1247 2709/3550/1257 2711/3558/1239 +f 2715/3551/1244 2708/3549/1256 2716/3559/1250 +f 2713/3560/1242 2706/3552/1255 2714/3561/1249 +f 2718/3562/1238 2704/3555/1254 2712/3563/1248 +f 2707/3564/1252 2705/3565/1253 2710/3566/1240 +f 2726/3567/1251 2717/3548/1246 2719/3557/1247 +f 2723/3568/1190 2716/3559/1250 2724/3569/1245 +f 2721/3570/1185 2714/3561/1249 2722/3571/1243 +f 2727/3572/1191 2712/3563/1248 2720/3573/1241 +f 2727/3572/1191 2719/3557/1247 2718/3562/1238 +f 2724/3569/1245 2717/3548/1246 2725/3574/1188 +f 2722/3571/1243 2715/3551/1244 2723/3568/1190 +f 2720/3573/1241 2713/3554/1242 2721/3575/1185 +f 2718/3562/1238 2711/3558/1239 2710/3576/1240 +f 2745/3577/1238 2752/3578/1239 2753/3579/1240 +f 2743/3580/1241 2750/3581/1242 2742/3582/1185 +f 2741/3583/1243 2748/3584/1244 2740/3585/1190 +f 2738/3586/1188 2747/3587/1250 2746/3588/1246 +f 2736/3589/1191 2744/3590/1247 2745/3577/1238 +f 2736/3589/1191 2751/3591/1248 2743/3580/1241 +f 2742/3592/1185 2749/3593/1249 2741/3583/1243 +f 2740/3585/1190 2747/3587/1250 2739/3594/1245 +f 2738/3586/1188 2744/3590/1247 2737/3595/1251 +f 2756/3596/1252 2758/3597/1253 2753/3598/1240 +f 2745/3577/1238 2759/3599/1254 2751/3591/1248 +f 2750/3600/1242 2757/3601/1255 2749/3593/1249 +f 2748/3584/1244 2755/3602/1256 2747/3587/1250 +f 2744/3590/1247 2754/3603/1257 2752/3578/1239 +f 2750/3581/1242 2759/3599/1254 2758/3604/1253 +f 2748/3584/1244 2757/3601/1255 2756/3605/1252 +f 2747/3587/1250 2754/3603/1257 2746/3588/1246 +f 2780/3606/1250 2773/3607/1257 2781/3608/1246 +f 2779/3609/1244 2770/3610/1255 2771/3611/1252 +f 2777/3612/1242 2768/3613/1254 2769/3614/1253 +f 2783/3615/1247 2773/3607/1257 2775/3616/1239 +f 2779/3609/1244 2772/3617/1256 2780/3606/1250 +f 2777/3618/1242 2770/3610/1255 2778/3619/1249 +f 2782/3620/1238 2768/3613/1254 2776/3621/1248 +f 2771/3622/1252 2769/3623/1253 2774/3624/1240 +f 2789/3625/1188 2783/3615/1247 2790/3626/1251 +f 2787/3627/1190 2780/3606/1250 2788/3628/1245 +f 2785/3629/1185 2778/3619/1249 2786/3630/1243 +f 2791/3631/1191 2776/3621/1248 2784/3632/1241 +f 2791/3631/1191 2783/3615/1247 2782/3620/1238 +f 2789/3625/1188 2780/3606/1250 2781/3608/1246 +f 2786/3630/1243 2779/3609/1244 2787/3627/1190 +f 2784/3632/1241 2777/3612/1242 2785/3633/1185 +f 2782/3620/1238 2775/3616/1239 2774/3634/1240 +f 2809/3635/1238 2816/3636/1239 2817/3637/1240 +f 2807/3638/1241 2814/3639/1242 2806/3640/1185 +f 2805/3641/1243 2812/3642/1244 2804/3643/1190 +f 2803/3644/1245 2810/3645/1246 2802/3646/1188 +f 2800/3647/1191 2808/3648/1247 2809/3635/1238 +f 2800/3647/1191 2815/3649/1248 2807/3638/1241 +f 2806/3650/1185 2813/3651/1249 2805/3641/1243 +f 2804/3643/1190 2811/3652/1250 2803/3644/1245 +f 2801/3653/1251 2810/3645/1246 2808/3648/1247 +f 2820/3654/1252 2822/3655/1253 2817/3656/1240 +f 2809/3635/1238 2823/3657/1254 2815/3649/1248 +f 2814/3658/1242 2821/3659/1255 2813/3651/1249 +f 2811/3652/1250 2820/3660/1252 2819/3661/1256 +f 2808/3648/1247 2818/3662/1257 2816/3636/1239 +f 2814/3639/1242 2823/3657/1254 2822/3663/1253 +f 2812/3642/1244 2821/3659/1255 2820/3660/1252 +f 2811/3652/1250 2818/3662/1257 2810/3645/1246 +f 2845/3664/1246 2836/3665/1256 2837/3666/1257 +f 2843/3667/1244 2834/3668/1255 2835/3669/1252 +f 2841/3670/1242 2832/3671/1254 2833/3672/1253 +f 2847/3673/1247 2837/3666/1257 2839/3674/1239 +f 2844/3675/1250 2835/3669/1252 2836/3665/1256 +f 2841/3676/1242 2834/3668/1255 2842/3677/1249 +f 2846/3678/1238 2832/3671/1254 2840/3679/1248 +f 2835/3680/1252 2833/3681/1253 2838/3682/1240 +f 2854/3683/1251 2845/3664/1246 2847/3673/1247 +f 2851/3684/1190 2844/3675/1250 2852/3685/1245 +f 2849/3686/1185 2842/3677/1249 2850/3687/1243 +f 2855/3688/1191 2840/3679/1248 2848/3689/1241 +f 2855/3688/1191 2847/3673/1247 2846/3678/1238 +f 2852/3685/1245 2845/3664/1246 2853/3690/1188 +f 2850/3687/1243 2843/3667/1244 2851/3684/1190 +f 2848/3689/1241 2841/3670/1242 2849/3691/1185 +f 2846/3678/1238 2839/3674/1239 2838/3692/1240 +f 2876/3693/1250 2869/3694/1257 2877/3695/1246 +f 2875/3696/1244 2866/3697/1255 2867/3698/1252 +f 2873/3699/1242 2864/3700/1254 2865/3701/1253 +f 2879/3702/1247 2869/3694/1257 2871/3703/1239 +f 2875/3696/1244 2868/3704/1256 2876/3693/1250 +f 2873/3705/1242 2866/3697/1255 2874/3706/1249 +f 2878/3707/1238 2864/3700/1254 2872/3708/1248 +f 2867/3709/1252 2865/3710/1253 2870/3711/1240 +f 2885/3712/1188 2879/3702/1247 2886/3713/1251 +f 2883/3714/1190 2876/3693/1250 2884/3715/1245 +f 2881/3716/1185 2874/3706/1249 2882/3717/1243 +f 2887/3718/1191 2872/3708/1248 2880/3719/1241 +f 2887/3718/1191 2879/3702/1247 2878/3707/1238 +f 2884/3715/1245 2877/3695/1246 2885/3712/1188 +f 2882/3717/1243 2875/3696/1244 2883/3714/1190 +f 2880/3719/1241 2873/3699/1242 2881/3720/1185 +f 2878/3707/1238 2871/3703/1239 2870/3721/1240 +f 2460/3397/1191 2472/3041/1223 2483/3037/1206 +f 2462/3399/1208 2474/3028/1217 2473/3039/1209 +f 2469/3401/1185 2481/3357/1219 2480/3042/1211 +f 2465/3403/1213 2466/3407/1190 2478/3032/1214 +f 2462/3399/1208 2463/3409/1188 2475/3026/1216 +f 2470/3404/1218 2482/3029/1222 2481/3031/1219 +f 2467/3406/1220 2479/3043/1224 2478/3032/1214 +f 2464/3408/1221 2476/3035/1225 2475/3026/1216 +f 2471/3398/1207 2483/3037/1206 2482/3029/1222 +f 2461/3400/1210 2473/3039/1209 2472/3041/1223 +f 2468/3402/1212 2480/3042/1211 2479/3043/1224 +f 2465/3403/1213 2477/3050/1215 2476/3035/1225 +f 2490/3034/1226 2502/3413/1191 2501/3410/1207 +f 2487/3036/1228 2499/3414/1185 2498/3411/1212 +f 2494/3038/1230 2506/3415/1221 2505/3412/1188 +f 2491/3033/1232 2503/3417/1210 2502/3413/1191 +f 2488/3045/1233 2500/3418/1218 2499/3414/1185 +f 2495/3046/1234 2507/3419/1213 2506/3415/1221 +f 2485/3047/1235 2497/3420/1220 2496/3416/1190 +f 2492/3049/1237 2504/3421/1208 2503/3417/1210 +f 2489/3044/1227 2501/3410/1207 2500/3418/1218 +f 2484/3040/1236 2496/3416/1190 2507/3419/1213 +f 2486/3027/1229 2498/3411/1212 2497/3420/1220 +f 2493/3048/1231 2505/3722/1188 2504/3421/1208 +f 2459/3422/1191 2508/3066/1223 2519/3062/1206 +f 2457/3424/1208 2510/3053/1217 2509/3064/1209 +f 2450/3426/1185 2517/3358/1219 2516/3067/1211 +f 2454/3428/1213 2453/3432/1190 2514/3057/1214 +f 2457/3424/1208 2456/3434/1188 2511/3051/1216 +f 2449/3429/1218 2518/3054/1222 2517/3056/1219 +f 2452/3431/1220 2515/3068/1224 2514/3057/1214 +f 2455/3433/1221 2512/3060/1225 2511/3051/1216 +f 2448/3423/1207 2519/3062/1206 2518/3054/1222 +f 2458/3425/1210 2509/3064/1209 2508/3066/1223 +f 2451/3427/1212 2516/3067/1211 2515/3068/1224 +f 2454/3428/1213 2513/3075/1215 2512/3060/1225 +f 2526/3059/1226 2538/3438/1191 2537/3435/1207 +f 2523/3061/1228 2535/3439/1185 2534/3436/1212 +f 2530/3063/1230 2542/3440/1221 2541/3437/1188 +f 2527/3058/1232 2539/3442/1210 2538/3438/1191 +f 2524/3070/1233 2536/3443/1218 2535/3439/1185 +f 2531/3071/1234 2543/3444/1213 2542/3440/1221 +f 2521/3072/1235 2533/3445/1220 2532/3441/1190 +f 2528/3074/1237 2540/3446/1208 2539/3442/1210 +f 2525/3069/1227 2537/3435/1207 2536/3443/1218 +f 2520/3065/1236 2532/3441/1190 2543/3444/1213 +f 2522/3052/1229 2534/3436/1212 2533/3445/1220 +f 2529/3073/1231 2541/3723/1188 2540/3446/1208 +f 2569/3447/1238 2568/3460/1247 2576/3448/1239 +f 2567/3450/1241 2575/3461/1248 2574/3451/1242 +f 2565/3453/1243 2573/3463/1249 2572/3454/1244 +f 2563/3456/1245 2571/3464/1250 2570/3457/1246 +f 2560/3459/1191 2561/3465/1251 2568/3460/1247 +f 2560/3459/1191 2569/3447/1238 2575/3461/1248 +f 2566/3462/1185 2574/3724/1242 2573/3463/1249 +f 2564/3455/1190 2572/3454/1244 2571/3464/1250 +f 2562/3458/1188 2570/3457/1246 2568/3460/1247 +f 2577/3468/1240 2576/3725/1239 2578/3726/1257 +f 2578/3726/1257 2579/3727/1256 2580/3466/1252 +f 2580/3466/1252 2581/3728/1255 2582/3467/1253 +f 2582/3467/1253 2583/3469/1254 2577/3468/1240 +f 2577/3468/1240 2578/3726/1257 2580/3466/1252 +f 2569/3447/1238 2577/3449/1240 2583/3469/1254 +f 2573/3463/1249 2574/3724/1242 2582/3470/1253 +f 2572/3454/1244 2580/3475/1252 2579/3472/1256 +f 2568/3460/1247 2570/3457/1246 2578/3473/1257 +f 2574/3451/1242 2575/3461/1248 2583/3469/1254 +f 2572/3454/1244 2573/3463/1249 2581/3471/1255 +f 2571/3464/1250 2579/3472/1256 2578/3473/1257 +f 2610/3476/1189 2620/3487/1267 2623/3477/1258 +f 2612/3479/1190 2618/3488/1268 2621/3480/1260 +f 2614/3482/1186 2616/3729/1269 2619/3483/1262 +f 2608/3485/1191 2622/3130/1266 2617/3129/1264 +f 2609/3478/1259 2623/3477/1258 2622/3130/1266 +f 2611/3481/1261 2621/3480/1260 2620/3487/1267 +f 2613/3484/1263 2619/3483/1262 2618/3488/1268 +f 2615/3486/1265 2617/3129/1264 2616/3370/1269 +f 2648/3490/1247 2656/3516/1239 2657/3491/1240 +f 2647/3493/1241 2655/3503/1248 2654/3494/1242 +f 2645/3496/1243 2653/3505/1249 2652/3497/1244 +f 2643/3499/1245 2651/3506/1250 2650/3500/1246 +f 2640/3502/1191 2641/3507/1251 2648/3490/1247 +f 2640/3502/1191 2649/3492/1238 2655/3503/1248 +f 2646/3504/1185 2654/3512/1242 2653/3505/1249 +f 2644/3498/1190 2652/3497/1244 2651/3506/1250 +f 2641/3507/1251 2642/3501/1188 2650/3500/1246 +f 2657/3510/1240 2656/3730/1239 2658/3731/1257 +f 2658/3731/1257 2659/3732/1256 2660/3508/1252 +f 2660/3508/1252 2661/3733/1255 2662/3509/1253 +f 2662/3509/1253 2663/3511/1254 2657/3510/1240 +f 2657/3510/1240 2658/3731/1257 2660/3508/1252 +f 2649/3492/1238 2657/3491/1240 2663/3511/1254 +f 2654/3512/1242 2662/3734/1253 2661/3513/1255 +f 2652/3497/1244 2660/3518/1252 2659/3514/1256 +f 2648/3490/1247 2650/3500/1246 2658/3515/1257 +f 2654/3494/1242 2655/3503/1248 2663/3511/1254 +f 2652/3497/1244 2653/3505/1249 2661/3513/1255 +f 2651/3506/1250 2659/3514/1256 2658/3515/1257 +f 2681/3519/1238 2680/3532/1247 2688/3520/1239 +f 2679/3522/1241 2687/3533/1248 2686/3523/1242 +f 2677/3525/1243 2685/3535/1249 2684/3526/1244 +f 2675/3528/1245 2683/3536/1250 2682/3529/1246 +f 2672/3531/1191 2673/3537/1251 2680/3532/1247 +f 2672/3531/1191 2681/3519/1238 2687/3533/1248 +f 2678/3534/1185 2686/3542/1242 2685/3535/1249 +f 2676/3527/1190 2684/3526/1244 2683/3536/1250 +f 2673/3537/1251 2674/3530/1188 2682/3529/1246 +f 2689/3540/1240 2688/3735/1239 2690/3736/1257 +f 2690/3736/1257 2691/3737/1256 2692/3538/1252 +f 2692/3538/1252 2693/3738/1255 2694/3539/1253 +f 2694/3539/1253 2695/3541/1254 2689/3540/1240 +f 2689/3540/1240 2690/3736/1257 2692/3538/1252 +f 2681/3519/1238 2689/3521/1240 2695/3541/1254 +f 2686/3542/1242 2694/3739/1253 2693/3543/1255 +f 2684/3526/1244 2692/3547/1252 2691/3544/1256 +f 2680/3532/1247 2682/3529/1246 2690/3545/1257 +f 2686/3523/1242 2687/3533/1248 2695/3541/1254 +f 2684/3526/1244 2685/3535/1249 2693/3543/1255 +f 2683/3536/1250 2691/3544/1256 2690/3545/1257 +f 2717/3548/1246 2716/3559/1250 2708/3549/1256 +f 2715/3551/1244 2714/3561/1249 2706/3552/1255 +f 2713/3554/1242 2712/3563/1248 2704/3555/1254 +f 2719/3557/1247 2717/3548/1246 2709/3550/1257 +f 2715/3551/1244 2707/3553/1252 2708/3549/1256 +f 2713/3560/1242 2705/3740/1253 2706/3552/1255 +f 2718/3562/1238 2710/3576/1240 2704/3555/1254 +f 2710/3566/1240 2711/3741/1239 2709/3742/1257 +f 2709/3742/1257 2708/3743/1256 2707/3564/1252 +f 2707/3564/1252 2706/3744/1255 2705/3565/1253 +f 2705/3565/1253 2704/3555/1254 2710/3566/1240 +f 2710/3566/1240 2709/3742/1257 2707/3564/1252 +f 2726/3567/1251 2725/3574/1188 2717/3548/1246 +f 2723/3568/1190 2715/3551/1244 2716/3559/1250 +f 2721/3570/1185 2713/3560/1242 2714/3561/1249 +f 2727/3572/1191 2718/3562/1238 2712/3563/1248 +f 2727/3572/1191 2726/3567/1251 2719/3557/1247 +f 2724/3569/1245 2716/3559/1250 2717/3548/1246 +f 2722/3571/1243 2714/3561/1249 2715/3551/1244 +f 2720/3573/1241 2712/3563/1248 2713/3554/1242 +f 2718/3562/1238 2719/3557/1247 2711/3558/1239 +f 2745/3577/1238 2744/3590/1247 2752/3578/1239 +f 2743/3580/1241 2751/3591/1248 2750/3581/1242 +f 2741/3583/1243 2749/3593/1249 2748/3584/1244 +f 2738/3586/1188 2739/3594/1245 2747/3587/1250 +f 2736/3589/1191 2737/3595/1251 2744/3590/1247 +f 2736/3589/1191 2745/3577/1238 2751/3591/1248 +f 2742/3592/1185 2750/3600/1242 2749/3593/1249 +f 2740/3585/1190 2748/3584/1244 2747/3587/1250 +f 2738/3586/1188 2746/3588/1246 2744/3590/1247 +f 2753/3598/1240 2752/3745/1239 2754/3746/1257 +f 2754/3746/1257 2755/3747/1256 2756/3596/1252 +f 2756/3596/1252 2757/3748/1255 2758/3597/1253 +f 2758/3597/1253 2759/3599/1254 2753/3598/1240 +f 2753/3598/1240 2754/3746/1257 2756/3596/1252 +f 2745/3577/1238 2753/3579/1240 2759/3599/1254 +f 2750/3600/1242 2758/3749/1253 2757/3601/1255 +f 2748/3584/1244 2756/3605/1252 2755/3602/1256 +f 2744/3590/1247 2746/3588/1246 2754/3603/1257 +f 2750/3581/1242 2751/3591/1248 2759/3599/1254 +f 2748/3584/1244 2749/3593/1249 2757/3601/1255 +f 2747/3587/1250 2755/3602/1256 2754/3603/1257 +f 2780/3606/1250 2772/3617/1256 2773/3607/1257 +f 2779/3609/1244 2778/3619/1249 2770/3610/1255 +f 2777/3612/1242 2776/3621/1248 2768/3613/1254 +f 2783/3615/1247 2781/3608/1246 2773/3607/1257 +f 2779/3609/1244 2771/3611/1252 2772/3617/1256 +f 2777/3618/1242 2769/3750/1253 2770/3610/1255 +f 2782/3620/1238 2774/3634/1240 2768/3613/1254 +f 2774/3624/1240 2775/3751/1239 2773/3752/1257 +f 2773/3752/1257 2772/3753/1256 2771/3622/1252 +f 2771/3622/1252 2770/3754/1255 2769/3623/1253 +f 2769/3623/1253 2768/3613/1254 2774/3624/1240 +f 2774/3624/1240 2773/3752/1257 2771/3622/1252 +f 2789/3625/1188 2781/3608/1246 2783/3615/1247 +f 2787/3627/1190 2779/3609/1244 2780/3606/1250 +f 2785/3629/1185 2777/3618/1242 2778/3619/1249 +f 2791/3631/1191 2782/3620/1238 2776/3621/1248 +f 2791/3631/1191 2790/3626/1251 2783/3615/1247 +f 2789/3625/1188 2788/3628/1245 2780/3606/1250 +f 2786/3630/1243 2778/3619/1249 2779/3609/1244 +f 2784/3632/1241 2776/3621/1248 2777/3612/1242 +f 2782/3620/1238 2783/3615/1247 2775/3616/1239 +f 2809/3635/1238 2808/3648/1247 2816/3636/1239 +f 2807/3638/1241 2815/3649/1248 2814/3639/1242 +f 2805/3641/1243 2813/3651/1249 2812/3642/1244 +f 2803/3644/1245 2811/3652/1250 2810/3645/1246 +f 2800/3647/1191 2801/3653/1251 2808/3648/1247 +f 2800/3647/1191 2809/3635/1238 2815/3649/1248 +f 2806/3650/1185 2814/3658/1242 2813/3651/1249 +f 2804/3643/1190 2812/3642/1244 2811/3652/1250 +f 2801/3653/1251 2802/3646/1188 2810/3645/1246 +f 2817/3656/1240 2816/3755/1239 2818/3756/1257 +f 2818/3756/1257 2819/3757/1256 2820/3654/1252 +f 2820/3654/1252 2821/3758/1255 2822/3655/1253 +f 2822/3655/1253 2823/3657/1254 2817/3656/1240 +f 2817/3656/1240 2818/3756/1257 2820/3654/1252 +f 2809/3635/1238 2817/3637/1240 2823/3657/1254 +f 2814/3658/1242 2822/3759/1253 2821/3659/1255 +f 2811/3652/1250 2812/3642/1244 2820/3660/1252 +f 2808/3648/1247 2810/3645/1246 2818/3662/1257 +f 2814/3639/1242 2815/3649/1248 2823/3657/1254 +f 2812/3642/1244 2813/3651/1249 2821/3659/1255 +f 2811/3652/1250 2819/3661/1256 2818/3662/1257 +f 2845/3664/1246 2844/3675/1250 2836/3665/1256 +f 2843/3667/1244 2842/3677/1249 2834/3668/1255 +f 2841/3670/1242 2840/3679/1248 2832/3671/1254 +f 2847/3673/1247 2845/3664/1246 2837/3666/1257 +f 2844/3675/1250 2843/3667/1244 2835/3669/1252 +f 2841/3676/1242 2833/3760/1253 2834/3668/1255 +f 2846/3678/1238 2838/3692/1240 2832/3671/1254 +f 2838/3682/1240 2839/3761/1239 2837/3762/1257 +f 2837/3762/1257 2836/3763/1256 2835/3680/1252 +f 2835/3680/1252 2834/3764/1255 2833/3681/1253 +f 2833/3681/1253 2832/3671/1254 2838/3682/1240 +f 2838/3682/1240 2837/3762/1257 2835/3680/1252 +f 2854/3683/1251 2853/3690/1188 2845/3664/1246 +f 2851/3684/1190 2843/3667/1244 2844/3675/1250 +f 2849/3686/1185 2841/3676/1242 2842/3677/1249 +f 2855/3688/1191 2846/3678/1238 2840/3679/1248 +f 2855/3688/1191 2854/3683/1251 2847/3673/1247 +f 2852/3685/1245 2844/3675/1250 2845/3664/1246 +f 2850/3687/1243 2842/3677/1249 2843/3667/1244 +f 2848/3689/1241 2840/3679/1248 2841/3670/1242 +f 2846/3678/1238 2847/3673/1247 2839/3674/1239 +f 2876/3693/1250 2868/3704/1256 2869/3694/1257 +f 2875/3696/1244 2874/3706/1249 2866/3697/1255 +f 2873/3699/1242 2872/3708/1248 2864/3700/1254 +f 2879/3702/1247 2877/3695/1246 2869/3694/1257 +f 2875/3696/1244 2867/3698/1252 2868/3704/1256 +f 2873/3705/1242 2865/3765/1253 2866/3697/1255 +f 2878/3707/1238 2870/3721/1240 2864/3700/1254 +f 2870/3711/1240 2871/3766/1239 2869/3767/1257 +f 2869/3767/1257 2868/3768/1256 2867/3709/1252 +f 2867/3709/1252 2866/3769/1255 2865/3710/1253 +f 2865/3710/1253 2864/3700/1254 2870/3711/1240 +f 2870/3711/1240 2869/3767/1257 2867/3709/1252 +f 2885/3712/1188 2877/3695/1246 2879/3702/1247 +f 2883/3714/1190 2875/3696/1244 2876/3693/1250 +f 2881/3716/1185 2873/3705/1242 2874/3706/1249 +f 2887/3718/1191 2878/3707/1238 2872/3708/1248 +f 2887/3718/1191 2886/3713/1251 2879/3702/1247 +f 2884/3715/1245 2876/3693/1250 2877/3695/1246 +f 2882/3717/1243 2874/3706/1249 2875/3696/1244 +f 2880/3719/1241 2872/3708/1248 2873/3699/1242 +f 2878/3707/1238 2879/3702/1247 2871/3703/1239 diff --git a/src/main/resources/assets/hbm/textures/gui/generators/gui_flare_stack.png b/src/main/resources/assets/hbm/textures/gui/generators/gui_flare_stack.png new file mode 100644 index 0000000000000000000000000000000000000000..3656afe84a479131a294b9180dae43d1056097b7 GIT binary patch literal 4187 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 V+WZzWcK;RtsEg(o$_?D&{|?2FuSEa= literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/machines/flare_stack.png b/src/main/resources/assets/hbm/textures/models/machines/flare_stack.png new file mode 100644 index 0000000000000000000000000000000000000000..cfa0358de78ee0a4f30cde6e032c030d2ee52e71 GIT binary patch literal 4682 zcmX|FcQ~8f|4vAas#>M0#HO{W)l#cP)#^x$BJtXL6g5LAt=BASH&oRMqBaSkwP}so zt6EediW-rM^-bUF`u)xy&+~ll>zwB~=f3XG=iKM{_ko!q>v_KO004m1=-%B&002;j z_T0wAK)W(G2S?Cupa4B12otSEFge8o0GvRhySk8&H=B#*@e+oMojZJcPFa}gNjLa})@H^ODO_1gnXI-{`nWEivvOsL% z3Qq8J!`~me?kRy?J~^Z#BEmlVoK~g2oT)#V7`L;Vgib;i$tODfpZ6eVSeK9kwaGys0_bQ35X`v*e22+-e+|KJnrHV3{Y0u+(jy@v6Dxc(Q=-Q!_q*QpC( zihCXYMJ7rBPY;&uECeU|;4NPmxshpZoZpwUkCU8ZDR1`ab#A>gLQbbfd{okF z0sZ;i#b%iTtFdjZyQ>kTA@rKoHJ@>)2sb+8ru+`2uThx8L!U_lziDe6ub(9nQE%^fKLvSLw`Ev z6*Q9;Y;0_dJC1v9lh zx(acXAgfV25V|qE`4}2A=`An$V4sDn2q>1wArxi`{y3S;bY-U`jzb9PM0N*Rk+V@9 zMCKK+5QG;rHCa45H1F!UtDr zSf(j#Di`zxEaVp*j*NdXT&HpXh&CQe0t7#MmbIIQ4E5GFTp9_S7nMPA2!ta$OWZi^ zYlYCZ{Ef-mMlm{JG)l{~1gRd!&%W<CO=6TjK@#*!#-N3Owl5><)QJ-9W>| z!He^V*fCkL&KQT?`ETFk!p}Yk7=5_9I^;A?QXn>uPNT-kjU#tAf<*NJJC2}h755{1 zD0^u_*s`r62GQ;Y1v=0x83W|K^P-xUtR;2k%UmXG=-Cs3=$tAzydY4-R0TuzxPe^y zpfc|ze`cAR2x`NwE)$#10vb)Nddxc4;LyM>rv8~GMp)FwlI}=Hdwct9bMK1#F+Hn& znmTHM7@@%I_J`tpr8MpoW#Te2?77q78mqAuncoBFfps*3i5&Kr98l#q-+JxqYF0yYIhSJQHj`H(&d5&EHo zrRmrWYN+Z?U`ok1L97H7#ET=7$%7QM!8?iK35jCs%R7V1dELQwBkaGUL2d(>_RUN%7vo=Xz-dF6?yI<4H@wAyyY0WNu zw=#W8>65wMI<*!^KA>#Y^yg6ofa69esE@|%q(tX{(^ms+fV|1Z*}$ez{E0@U=!7k!^75&>X0**A~Qhg?>yxbN`f<6R$ZzT~7MMxl!zxxRCy+U?gFcI^~X!rX1V zv{7a~-o>K8Zm|%$OYdf{$un4I{hP`tsCsM4a8nab{*%|6T%;v5-tg7|1+YVO*2x5L zma%sI`2BmM4Q!u54emKGmA0;=@#D_fECVCvAtBGB@Bc+-` zAX`AaIAePd^#5Why*qKB__u>D97GWPQI_wIg_-Nm9K06_ObiXZa@p@+}&oA(cF&LQzv-n0da z2MV%}di9C{-h2A3GG%wFCXlzhHkJ;noa}yXHZMJUQZN6452-&vA3JD2y9>4_34Wk) zfT=n~ZD7MO!%&{GfgR|MZTHh^A6Vgfn{J>Dgbcuyf1x67%~cr_MY6WTkh_HOKyL+V zvWEg7z2^ySVbC%Cvag9|8m+u~c0rd7;@yRTBIW1=xm%gAz`2L43{v#-FL|pPV_7Ys z@IdK)g->_Jkf0Y<>kx!u#RdBQ7LY+hAR0f>m{#ML!|+^$Qz&ec64jzfIqB`~wT-!& z+84k))^J+LZ!XbiX!~xKR{${Ad)H0O(fMaa(00ba`;46*V6LLHSk0RQ@L+MRVLR&_SB3>`vLX`nt@jg=qd~IXyA%lHk+=MGTWlv zw;9%pav(Uf63R?J%ee>_eUJDHk7o6x>gIDI#i(lW@i8xs}OS>Szq(w_0TsHpy z^Ct+^CP8LEOprY5w~A7$dHo1pPvvo;e-1Qgjn{R!V+a+~<2%G%fC|HhpDut(;kYo(jt|s z#hcjfddmSsxyj{tL*P4(S6 z84rH|A2j%}jXvW`x}Nn3$mDEK9gT5d*n?z`sge&OCP)Ds`;(EKOoHq?ebTzRM6((KQ$H^U7+iI>R41?$m zyZe3O3Zw8^?btdP^CL?D_k-)Fx`^GYaK%%{Kb6{e*x_L~Ey`{GeI~Dw?0P9FWUMc7 z4gB3tT^X~LUT;0E!GE#GO<4&oL9cE0M$=4lxslIT7?%h8G=~9&o=mFU(h&Hojk9e0 zf*apwDiym&6PhD6DZdZ@^ygqYyWa618`rB*DFugQX_i9AWe#)60y5L+v+Ij-0j{og zbC(1n7s5%g?0WIRm<}6iqX`)X)r4MH41szF!5{a~Y}>Tj%>uJ1uc)XXgwI#)j2Y<3 zjT3<%n48ljQ64*i*50+*GH^3CA>^Q<&vogj$2U7+i7Pea*3P?f z#+k{x>CU<8+*mFE9}A3Cfea0a7H9vj6PjT~sW!==xHYY0WX5gy;OUEy z?s{Dn-hG2#XEX7a;cepc##ZwsfxdS09OLT{C+juu*K5+xvYeO4DQ~=#`SukP_EnU~ zH?4fteR72ir)W2vIr7J3ZE86833#pJ1aoIE$FT z%wf7*~Y zYdQfw1fluI@!Q#ECX3UM9rRrOzG<^|Q%46@OD)-x&&J1*s$m;)o__=1p@VXbJQ+;? z!uN2wSBY^p z4-9T?ebeNrw6t{NCP%Nv^b)sTgwo@VKT)~IVb(ab>qmS1<ziKN#iop73&Hu7VcVmTpJKq54)!>t#v zAqp#PV)!piH3RYQN$xf48%-zu0~rW!&+S%>8Zk`inPNfWt>-~~c?DgBk@*JmAezsJ zD=?=WA_1`u2)5BlWnL7y-Pw2oU2u?x_nBuCj#ZC3ZQCJIjt}?hBX08U#Jh5_t-a9( z)#eh)a13geQ9M8Lm`^J-xzoQRm74|R`S#^$KD`el3?TTIW$@)l* zIO67F;!7dR8W=ZCCd>GvEsY4-s5uRAD$Ng|+p8rg0gyh<)DVfCr(Hiri5(MU5nvq; zuMXFkNvuyoV`ry;JS@`LsCkg;8%fdon%$unQqI6d=NX-bHtaYUmFakm*x8jlvOQi4 zmY1J#=1XC>#;ajaG%Zk^{*Ga45zx~uNMICLxpJ>ao<5&p8 z!wJPWY!m*73#W^J+7+nQY+LTF^!T*$T=@hyvVW=Ll%h7j{-C=mIIf;dt@L%tL!Z z#$y?5&qy4$OV6%UBrsQ8JN-D40Y44$-#xPv?;E@-H-J`sNJ8tvIvae%te`~YeJ0M% zw&%}DN7NpQR)CZLafa{1R|&((0LS70`LC`jMAZ=vV{L~+>%<6hg`Cf<_IJm=EzO*T znVB3MNDeQlg>Cfn^58CJ#EPmLg#ApQKp+X3hz%)8wamVK?hYfk$@;+}VPtxr;`%gc z;3i~q(B;l0UrJR?O=4qXW2?JDD`m;X1X|e#EfB15EhtgiH^+(fC zYec?~(TW^7tDM6nnX0jE{`ulI@I@Yjqs>K@P62EHV6SPnt~J~o<+oH3&l<>*L!BAr zM{4vmwqG7bp?>ZiZ*iU>zVD35?wp1tM;ST#eph>hp!pPcE z#k2}fsEaF*b`3ZkMfg^-X$}8#b}`|()%}0t|3^Yjc00L5`$*54CHg#_)K2%jqX2~<)7Gho$hw=ixm z*T2=1)t$MhXuv}Ofak@YdMusEGuYE@fF+1y_kD$5>bhdtgD*_a8QZBJg@ zPd*Zxr3y$_q_(fT8*$lNove?%hR2Agj0tb5b|(o_Muo3uDUT?J?%df8Tk+Hr&z>5a(Kc6(X~S*|chNPRn? zSYO+pGm2_eW?XC&6R)g{2Xk&qjXDLOO>(!Bhkp_W$jUW-Luj~3UD=RCvK|*AbuZ>r zfraF@PFqBad&2&dsGDLu3j8@!)~w?NCY@bGIz8FAP^Ol49S$j5e>3|Oz)P1eA{uVo zAhmf}y*^n4z!=hpmC^d!+SHy#%!5NU0=$X(Oc-aiksLYTwXJmvDmVl%2HV+#vrmNx z;C|{OjmV~4OzBf|E0Bk9A|rO~#L0q(YKgpF0vf0w91Tn|0k)5-u``YDqwe(dsqJVA z+{ga`w5w=E(p2t+A3NbZV(DO7^ugiFz2O{H`Q})$p1p7@2CerY70Q=8qZboF@fEoJ zXBgfIPTavu1`D5M%Eq!zh8SCQBJrURg~R8jK1;epB7url2yGN=^4%#jXlM{qb_5lb z^7a3+?r~KGdR2*r&8s(}n<}K}U{#JEQvT=X#zfe;{HR}#R}9j5xj|E<=)tBY++3$W z*E!Gpc#8ULzyEiO^+?XW?u4#29;W?*E$+gqE?x&gSiOj$&*)zKfEV&P(hvvpab*fD z>wUk6`esE61WfM{qs_z6_^U<34`e9rx49sxx{yZcuOId+(1eXW3{>iPO7ILCUF$6_ zb-dReGr7OpaqbI(V9End1iQ5Phyf4jNMThfW`QVv$If`so##u2oji~Q;>(~n-pMz< zGHWKYnhAG4ujedNkO&wuWJg07aE<0JZ&5mLM0I|2s;bcl1wwM35H|K2csK{-!n*qq zwwKK-ag&-^rr$yz6|eY8R3yMGlkN(ju`h*QPAHgHR`4RKS4gS`*Ep;y^JKjZB9m@s z*XNAT0S%jxW}QC5JMrxnZdZcG5O^$%^+fpV#Dr3Q?~hfyj6{9@7wFYa4rB;&zNv26 zHfpW%4m>a{Kng!tRU-$vUOm4>R;R+ zGg$xXT!2G6iwp@an51h;o-Xoz9S-GI(NPRRlnfa7!IE39OJw+tyH#0!eSFU9%&@t* zaTmvUi61AWpN5I^!_)fVzhhquy zg#!n1z+~uSv@1Z?9|MM=;l57qLrVuGX+ztx*cUeaLfU#DiU@)LK-&a0gLhL?hS_`E zMmD?p)|?NBM`l*aER@Z!aoX%6133x+bdI(LsEuiKHROusb!l0##E$>YWxMP}UCSNw z?G%XfPQvRFujRpgw1#g&R)G2Fbs_az=2;%S!&j1S+#I5Yxpa!6Ga>K4?+t)Kc%JW-|z}-e3Z>XOh(m5 zIK%W|y>Z0qhwRtS&TNnLp8t_>Pr}pB_b2ZA8~GSAhbk00!97ts?~6PK1Af9a^PhD8 zA)h-f%fprtAQ1$6K!g|ivD@dq8ieVtt6V?C$qTJ~2;KdgpCoMb3gmO=@rRcP_cZuZ zgv2i{D*_Lz{oe~^f_MWQR2A#n_#u}Kgo#|YY8<8FHw(q8T2UUrvF5))Qy1x|ThZ81 z=yW$XcnN#_-B&-h^w^D_slq=i##71?!-Wx&{A*Rq2S?{C++dLT0`59k-<8zkQ)T|k zXrw5OWOYAC#d4%Hk^k@f4;$g>Uk%v0#N>vO4b{Qzx1`hCyjjMpWfLJ)NRV(g^H8U{ zYaQ*GJyrU7F@*uB819^CXy!d!8)1UIP#o*R-?q)RppLax%-Bt&n=gkIZH%DWc<)x* z($H50c`0r`ZnB>tt#grP5o{+`usdO4+pa-TR2V=WD_2`?8swk04bT7dUH}TV8Ny^0 zK||vBI-C56Tt0OyWr`*&6Y;m61Eh_z0k(d{_C$I_4*#>C79Ndl?I>Ef!^K7pg7e48 z&TpKyUXH1-$CvP)nS&Ta%piMlqBSURpCImc|G~_e@p(9~RWHOB=zg}fy55HC(I{(u z7;q#XKtsDV0sCga5zye`V`NpqW$)2Wzk)SY47-IhpK0|kK`{Az+Rcq&o!)zF!r_Me z7^7C=#Ovo}vJW$V%|%B#85kxKzKWN&?yK_C;7@X@E^Y$IBCsXGPB6SsCH{{hw&Go~ zWK-56?fkC(RnBZe{@}k(cxwKC7xhy8^}_3aG&Y|dh)=n1hzI62=*ak#{*uog^nYeL zO}%ezbbeT#h9$4$?8Bann?i#7bm~Yl%)Gd~J8q}Po?;2>l@*v<++DF@B=7>CxI4$i zKQABZJpNd>f4Q5r^_!K>ch1_yx-Rfd!0zAmKVw1fg15Z3B@;JAE=yo^i?;}>8%Mc; z)a(58>vk07+HPTuZ-WRZi)fpfL>ro&Dls!VOUR-GRUX1dVND(XhK+TU-enpxh`=Ls zM>0ypw;eE+%=~1_KV)aBr1~xc=Bb!!)#KppRZARb_>7*G>S&ac>hC%rVw}=E!U)1J zJVE;TkO@;ybPfs1;oI9s8jJ`P1BfI606h_5t_L4~w}hQGKIYGe#ALGOR9^|!!^)j4Av>J`m!sS7 z!oVXnA3i-7_H0+4iCU{*PX2ONKp(CdUtSBX6l`O^5Kdq+j%6xBBuh^0$_h!4b;{vVsi;J~+e$E?-Wj}mu+WYVHzTZ*PDGX>!RLt!b?@>wln_ZX zpc8%g1uqy|TWMEpB8(`3jBW=4d8)QL+?((BoLXJH(Yu^gM5im`O?EL`hS^Sch;mid zU;Tudtpt`sCDl2&Ol9Ato7p+tGhc=O{#`aJeFSbq(&9@n4nlWH?y&*qP>ikH*Z22W zue(IX)}8v=###gp)6Bd3q^|dW#wb^>)xmEs?&&XbRX0_5RKi4SB7$sI`1=*>I@i9G zC%G>NnTSL5{nb6-)}ZAckmgo-%F!*nbp@|vbEn|Bl=+DUY#>eYmej_4O)!8A7W!X$!AsK{^#}1YMB&PZ@b`XJ$=gdiZf2Qq!xQd%WRAnT{a}hFS$q^)`u;i zP(<+ZpRPv&Mb!!x^&{^#+f`LSujWZV*XEObYlqfN3vEWt@_Z$x7xPMYjK)!4xDxq)$F9PqoP0k8*e`~x$KSt)pT!RxBKtL%Z78|Ov{ei zxE>SnzB-fgdJHk#&HPycqmHKmQ)OR?dwM|)ADdA&CLPi8ab&NzvU6wItfC~Yq41HI zGas@(=VO&w_V~5qia zsHb6pfuhpU7s}6y0bojdNQ-=p^$~5@vINGgG4MESkeo~CNV)pE05I0OG?gAotu}8v_86}p zqULrhAs@&zUb&08^-3EvmD>Q+za9TDV}^=;4LQGbDxc*5qmdH5PLakDUXqPJq8A>I zDB@v)Jh-%;K>f=4yq;Kq2H4}R%VgP0iomd;P!mf;d7RIZQ*ksh z%a1uxLy-aGNa=-|RJWcB6S_{ZyWqk}2wTHyk<;T9kK$;m)A>(ocjCx<7&$uSxJ;bS z{pa>A`#4~@PyZ9E!w#tA5+P;rH-<2a5YZhKZZM)$Eh8!oqWI}Q9bm=~)r<+if_I(B z?P-An55i5G#W={X1Sa$g13-3bplhx(j97gyqKX*bDsj`#gQrsjOo*(wUE$uYuICNO!e zyb-zq%k6_!_u(1Btc_cMMABCX$-ac6o~<*%5@$4)5$lJa6-jP<8og!c|JHhOHN1UB zNXaxr%uzxR8Q}x;EH2)skM#hC(2>kRY4dmer%?rgc^vUv;#`MJ){5ZaZuItSC)eWo zW^u?!t;KY1_vggqM%Qqp+GIl86A>u&$)HFvhFy8-w2Osf?R69s)R*vgu)sFxMDZ~j zdfHv)U|;{uW2NrS$0nnCD(;2+#SXd@Cj3+>K3Zzv@PQnd%>f>N44B$@dRT8hc#*3U zn@VI%wgbI&rZ&{-p1PE*xR(_tyum;%M=y+6(rFN%PGZvUGV|bl8+y z#!^+}rxAmw9EaNb{`$g8y=axNj14>`NQ}kW(>hnP1s&cuK xiyu0*ri42$iW*^-vi^jIe!pYB<>CBS^>^FKg3^-4l>=e}u3Xa9C{?FL{2!^vuF?Pi From 54d0394fa0884f864ce40df0e9dd27a9e7adefab Mon Sep 17 00:00:00 2001 From: Vaern <90118520+Vaern@users.noreply.github.com> Date: Sat, 14 May 2022 15:24:21 -0700 Subject: [PATCH 07/80] RBMK rebalancing (#602) * stuff * Reverted HEP241 and americium fuels to their original value * Changed plutonium pile rod's output + radiation values The plutonium pile rod now outputs 2 RGP, 1 uranium billets instead of 3 RGP billets, with the change in radioactivity to reflect that. Considering the recent additions to the pile - and planned ones that allow for sophistication akin to Windscale and X-10 - it feels like a natural balancing change. * Added adjustable segment sizes to seven segment displays, made research reactor's control rod entry more noticeable and responsive * Gave higher plutonium production to NU and MEU Every other U-238 containing fuel has a fissile:fertile ratio of about 1:3, whilst NU and MEU have 1:12 and 1:6 respectively; as a result, there's going to be a higher chance of U-238 interacting with neutrons, meaning more plutonium. Since NU has a lower enrichment and therefore reactivity as well, its burnup will always be lower, leading to more weapons-grade Pu-239 overall compared to enriched fuels * Deuterium + Tritium * Added check to prevent constant power drain when a deuterium machine cannot produce more heavy water, but still has enough input water and energy to process * sorry, i'm clowning * Fixed shadowed fields for deuterium machines Deuterium towers did not consume the correct amount of energy, as a final called maxPower was used in the superclass instead of getMaxPower() directly * Update ChemplantRecipes.java --- .../hbm/blocks/machine/DeuteriumTower.java | 2 +- .../machine/MachineDeuteriumExtractor.java | 2 +- .../java/com/hbm/hazard/HazardRegistry.java | 2 +- .../hbm/inventory/gui/GUIReactorResearch.java | 5 ++ .../hbm/inventory/gui/GuiInfoContainer.java | 33 +++++--- .../inventory/recipes/AssemblerRecipes.java | 10 +-- .../hbm/inventory/recipes/SILEXRecipes.java | 63 +++++++++------ .../inventory/recipes/anvil/AnvilRecipes.java | 5 +- src/main/java/com/hbm/items/ModItems.java | 28 +++++-- .../com/hbm/items/machine/ItemRBMKRod.java | 67 ++++++++++------ .../machine/TileEntityDeuteriumExtractor.java | 75 +++++++----------- .../machine/TileEntityDeuteriumTower.java | 4 +- .../machine/TileEntityReactorZirnox.java | 12 ++- .../pile/TileEntityPileBreedingFuel.java | 2 +- .../gui/reactors/gui_research_reactor.png | Bin 3739 -> 3733 bytes 15 files changed, 176 insertions(+), 134 deletions(-) diff --git a/src/main/java/com/hbm/blocks/machine/DeuteriumTower.java b/src/main/java/com/hbm/blocks/machine/DeuteriumTower.java index 1f50fcfc3..e3e706707 100644 --- a/src/main/java/com/hbm/blocks/machine/DeuteriumTower.java +++ b/src/main/java/com/hbm/blocks/machine/DeuteriumTower.java @@ -74,7 +74,7 @@ public class DeuteriumTower extends BlockDummyable implements ILookOverlay { TileEntityDeuteriumTower tower = (TileEntityDeuteriumTower) te; List text = new ArrayList(); - text.add((tower.power < tower.maxPower / 10 ? EnumChatFormatting.RED : EnumChatFormatting.GREEN) + "Power: " + BobMathUtil.getShortNumber(tower.power) + "HE"); + text.add((tower.power < tower.getMaxPower() / 20 ? EnumChatFormatting.RED : EnumChatFormatting.GREEN) + "Power: " + BobMathUtil.getShortNumber(tower.power) + "HE"); for(int i = 0; i < tower.tanks.length; i++) text.add((i < 1 ? (EnumChatFormatting.GREEN + "-> ") : (EnumChatFormatting.RED + "<- ")) + EnumChatFormatting.RESET + I18nUtil.resolveKey("hbmfluid." + tower.tanks[i].getTankType().getName().toLowerCase()) + ": " + tower.tanks[i].getFill() + "/" + tower.tanks[i].getMaxFill() + "mB"); diff --git a/src/main/java/com/hbm/blocks/machine/MachineDeuteriumExtractor.java b/src/main/java/com/hbm/blocks/machine/MachineDeuteriumExtractor.java index a8e6f18bf..f0d3d2d43 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineDeuteriumExtractor.java +++ b/src/main/java/com/hbm/blocks/machine/MachineDeuteriumExtractor.java @@ -63,7 +63,7 @@ public class MachineDeuteriumExtractor extends BlockContainer implements ILookOv TileEntityDeuteriumExtractor extractor = (TileEntityDeuteriumExtractor) te; List text = new ArrayList(); - text.add((extractor.power < extractor.maxPower / 10 ? EnumChatFormatting.RED : EnumChatFormatting.GREEN) + "Power: " + BobMathUtil.getShortNumber(extractor.power) + "HE"); + text.add((extractor.power < extractor.getMaxPower() / 20 ? EnumChatFormatting.RED : EnumChatFormatting.GREEN) + "Power: " + BobMathUtil.getShortNumber(extractor.power) + "HE"); for(int i = 0; i < extractor.tanks.length; i++) text.add((i < 1 ? (EnumChatFormatting.GREEN + "-> ") : (EnumChatFormatting.RED + "<- ")) + EnumChatFormatting.RESET + I18nUtil.resolveKey("hbmfluid." + extractor.tanks[i].getTankType().getName().toLowerCase()) + ": " + extractor.tanks[i].getFill() + "/" + extractor.tanks[i].getMaxFill() + "mB"); diff --git a/src/main/java/com/hbm/hazard/HazardRegistry.java b/src/main/java/com/hbm/hazard/HazardRegistry.java index eb48756dc..c1c0f1ffb 100644 --- a/src/main/java/com/hbm/hazard/HazardRegistry.java +++ b/src/main/java/com/hbm/hazard/HazardRegistry.java @@ -336,7 +336,7 @@ public class HazardRegistry { HazardSystem.register(pile_rod_uranium, makeData(RADIATION, u * billet * 3)); HazardSystem.register(pile_rod_pu239, makeData(RADIATION, !GeneralConfig.enable528 ? purg * billet + pu239 * billet + u * billet : purg * billet + pu239 * billet + wst * billet)); - HazardSystem.register(pile_rod_plutonium, makeData(RADIATION, !GeneralConfig.enable528 ? purg * billet * 3 : purg * billet * 2 + wst * billet)); + HazardSystem.register(pile_rod_plutonium, makeData(RADIATION, !GeneralConfig.enable528 ? purg * billet * 2 + u * billet : purg * billet * 2 + wst * billet)); HazardSystem.register(pile_rod_source, makeData(RADIATION, rabe * billet * 3)); registerBreedingRodRadiation(BreedingRodType.TRITIUM, 0.001F); diff --git a/src/main/java/com/hbm/inventory/gui/GUIReactorResearch.java b/src/main/java/com/hbm/inventory/gui/GUIReactorResearch.java index 56393d796..62af22c8f 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIReactorResearch.java +++ b/src/main/java/com/hbm/inventory/gui/GUIReactorResearch.java @@ -90,6 +90,11 @@ public class GUIReactorResearch extends GuiInfoContainer { super.mouseClicked(mouseX, mouseY, i); this.field.mouseClicked(mouseX, mouseY, i); + if(guiLeft + 8 <= mouseX && guiLeft + 8 + 33 > mouseX && guiTop + 99 < mouseY && guiTop + 99 + 16 >= mouseY) + displays[2].setBlinks(true); + else + displays[2].setBlinks(false); + if(guiLeft + 44 <= mouseX && guiLeft + 44 + 11 > mouseX && guiTop + 97 < mouseY && guiTop + 97 + 20 >= mouseY) { double level; diff --git a/src/main/java/com/hbm/inventory/gui/GuiInfoContainer.java b/src/main/java/com/hbm/inventory/gui/GuiInfoContainer.java index c5792a307..01f234849 100644 --- a/src/main/java/com/hbm/inventory/gui/GuiInfoContainer.java +++ b/src/main/java/com/hbm/inventory/gui/GuiInfoContainer.java @@ -129,6 +129,10 @@ public abstract class GuiInfoContainer extends GuiContainer { private char[] toDisp = {'0', '0', '0'}; @Nonnegative private short dispOffset = 0; + /** Length and thickness of segments. **/ + private int verticalLength = 5; + private int horizontalLength = 4; + private int thickness = 1; /** * Construct a new number display * @param dX X coordinate of the display @@ -229,7 +233,7 @@ public abstract class GuiInfoContainer extends GuiContainer { { if (num[i] == '.') gap--; - dispOffset = (short) ((padding + 6) * (i + gap)); + dispOffset = (short) ((padding + horizontalLength + 2 * thickness) * (i + gap)); drawChar(num[i]); } if (pads) @@ -253,7 +257,7 @@ public abstract class GuiInfoContainer extends GuiContainer { return; for (int i = 0; i < gap; i++) { - dispOffset = (short) ((padding + 6) * i); + dispOffset = (short) ((padding + horizontalLength + 2 * thickness) * i); drawChar('0'); } } @@ -351,20 +355,21 @@ public abstract class GuiInfoContainer extends GuiContainer { private void drawHorizontal(int pos) { - byte offset = (byte) (pos * 6); - renderSegment(guiLeft + displayX + dispOffset + 1, guiTop + displayY + offset, 4, 1); + byte offset = (byte) (pos * (verticalLength + thickness)); + renderSegment(guiLeft + displayX + dispOffset + thickness, guiTop + displayY + offset, horizontalLength, thickness); } private void drawPeriod() { - renderSegment(guiLeft + displayX + dispOffset + padding - (int) Math.ceil(padding / 2) + 5, guiTop + displayY + 12, 1, 1); + renderSegment(guiLeft + displayX + dispOffset + padding - (int) Math.ceil(padding / 2) + (horizontalLength + thickness), + guiTop + displayY + 2 * (verticalLength + thickness), thickness, thickness); } private void drawVertical(int posX, int posY) { - byte offsetX = (byte) (posX * 5); - byte offsetY = (byte) (posY * 6); - renderSegment(guiLeft + displayX + offsetX + dispOffset, guiTop + displayY + offsetY + 1, 1, 5); + byte offsetX = (byte) (posX * (horizontalLength + thickness)); + byte offsetY = (byte) (posY * (verticalLength + thickness)); + renderSegment(guiLeft + displayX + offsetX + dispOffset, guiTop + displayY + offsetY + thickness, thickness, verticalLength); } /** * drawTexturedModalRect() for cool kids @@ -413,9 +418,9 @@ public abstract class GuiInfoContainer extends GuiContainer { return toDisp.clone(); } /** Make the display blink **/ - public NumberDisplay setBlinks() + public NumberDisplay setBlinks(boolean doesBlink) { - blink = true; + blink = doesBlink; return this; } /** Padding between digits, default 3 **/ @@ -431,6 +436,14 @@ public abstract class GuiInfoContainer extends GuiContainer { toDisp = truncOrExpand(); return this; } + /** Set sizes and thickness of horizontal and vertical segments. **/ + public NumberDisplay setSegmentSize(int vertical, int horizontal, int thickness) + { + this.verticalLength = vertical; + this.horizontalLength = horizontal; + this.thickness = thickness; + return this; + } /** Set custom number bounds **/ public NumberDisplay setMaxMin(float max, float min) { diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java index 277967664..03af91116 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java @@ -780,12 +780,12 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModBlocks.machine_deuterium_extractor, 1), new AStack[] { new ComparableStack(ModItems.deuterium_filter, 1), new ComparableStack(ModItems.sulfur, 12), - new OreDictStack(STEEL.plate(), 8), - new OreDictStack(AL.plate(), 4), - new ComparableStack(ModItems.pipes_steel), - new ComparableStack(ModItems.board_copper, 2), + new OreDictStack(STEEL.plate(), 4), + new OreDictStack(AL.plate(), 2), + new ComparableStack(ModBlocks.deco_pipe_quad, 4), + new ComparableStack(ModItems.board_copper, 1), new ComparableStack(ModItems.turbine_titanium, 2), - new ComparableStack(ModItems.circuit_aluminium, 3) + new ComparableStack(ModItems.circuit_aluminium, 2) }, 100); makeRecipe(new ComparableStack(ModBlocks.machine_chemfac, 1), new AStack[] { diff --git a/src/main/java/com/hbm/inventory/recipes/SILEXRecipes.java b/src/main/java/com/hbm/inventory/recipes/SILEXRecipes.java index 40a4711da..59a6e50e2 100644 --- a/src/main/java/com/hbm/inventory/recipes/SILEXRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/SILEXRecipes.java @@ -84,28 +84,30 @@ public class SILEXRecipes { for(int i = 0; i < 5; i++) { // UEU // - recipes.put(new ComparableStack(ModItems.rbmk_pellet_ueu, 1, i), new SILEXRecipe(600, 100, 1) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_u238), 88 - i * 6)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_u235), 8 - i * 2)) + recipes.put(new ComparableStack(ModItems.rbmk_pellet_ueu, 1, i), new SILEXRecipe(600, 100, 1) //NU and MEU will breed more plutonium due to their higher concentrations of U-238 + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_uranium), 86 - i * 11)) //NU is unenriched to the point where it'll always be lower burnup; so more Pu239 for longer + .addOut(new WeightedRandomObject(i < 2 ? new ItemStack(ModItems.nugget_pu239) : new ItemStack(ModItems.nugget_pu_mix), 10 + i * 3)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.URANIUM235.ordinal()), 2 + 3 * i)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.URANIUM235.ordinal()), 2 + 5 * i)) ); recipes.put(new ComparableStack(ModItems.rbmk_pellet_ueu, 1, i + 5), new SILEXRecipe(600, 100, 1) .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_xe135_tiny), 1)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_u238), 88 - i * 6)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_u235), 8 - i * 2)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_uranium), 86 - i * 11)) + .addOut(new WeightedRandomObject(i < 2 ? new ItemStack(ModItems.nugget_pu239) : new ItemStack(ModItems.nugget_pu_mix), 10 + i * 3)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.URANIUM235.ordinal()), 2 + 3 * i)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.URANIUM235.ordinal()), 1 + 5 * i)) ); // MEU // recipes.put(new ComparableStack(ModItems.rbmk_pellet_meu, 1, i), new SILEXRecipe(600, 100, 1) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_uranium_fuel), 90 - i * 12)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_uranium_fuel), 84 - i * 16)) + .addOut(new WeightedRandomObject(i < 1 ? new ItemStack(ModItems.nugget_pu239) : new ItemStack(ModItems.nugget_pu_mix), 6 + i * 4)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.URANIUM235.ordinal()), 4 + 5 * i)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.URANIUM235.ordinal()), 6 + 7 * i)) ); recipes.put(new ComparableStack(ModItems.rbmk_pellet_meu, 1, i + 5), new SILEXRecipe(600, 100, 1) .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_xe135_tiny), 1)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_uranium_fuel), 89 - i * 12)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_uranium_fuel), 83 - i * 16)) + .addOut(new WeightedRandomObject(i < 1 ? new ItemStack(ModItems.nugget_pu239) : new ItemStack(ModItems.nugget_pu_mix), 6 + i * 4)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.URANIUM235.ordinal()), 4 + 5 * i)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.URANIUM235.ordinal()), 6 + 7 * i)) ); @@ -135,23 +137,27 @@ public class SILEXRecipes { // TH232 // recipes.put(new ComparableStack(ModItems.rbmk_pellet_thmeu, 1, i), new SILEXRecipe(600, 100, 1) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_thorium_fuel), 90 - i * 20)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.THORIUM.ordinal()), 10 + 20 * i)) ); + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_thorium_fuel), 84 - i * 20)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_u233), 6 + i * 4)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.THORIUM.ordinal()), 10 + 16 * i)) ); recipes.put(new ComparableStack(ModItems.rbmk_pellet_thmeu, 1, i + 5), new SILEXRecipe(600, 100, 1) .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_xe135_tiny), 1)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_thorium_fuel), 89 - i * 20)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.THORIUM.ordinal()), 10 + 20 * i)) ); + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_thorium_fuel), 83 - i * 20)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_u233), 6 + i * 4)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.THORIUM.ordinal()), 10 + 16 * i)) ); // LEP // recipes.put(new ComparableStack(ModItems.rbmk_pellet_lep, 1, i), new SILEXRecipe(600, 100, 1) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_plutonium_fuel), 90 - i * 12)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_plutonium_fuel), 84 - i * 14)) + .addOut(new WeightedRandomObject(i < 1 ? new ItemStack(ModItems.nugget_pu239) : new ItemStack(ModItems.nugget_pu_mix), 6 + i * 2)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.PLUTONIUM239.ordinal()), 7 + 8 * i)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.PLUTONIUM240.ordinal()), 3 + 4 * i)) ); recipes.put(new ComparableStack(ModItems.rbmk_pellet_lep, 1, i + 5), new SILEXRecipe(600, 100, 1) .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_xe135_tiny), 1)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_plutonium_fuel), 89 - i * 12)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_plutonium_fuel), 83 - i * 14)) + .addOut(new WeightedRandomObject(i < 1 ? new ItemStack(ModItems.nugget_pu239) : new ItemStack(ModItems.nugget_pu_mix), 6 + i * 2)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.PLUTONIUM239.ordinal()), 7 + 8 * i)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.PLUTONIUM240.ordinal()), 3 + 4 * i)) ); @@ -189,13 +195,15 @@ public class SILEXRecipes { // MEN // recipes.put(new ComparableStack(ModItems.rbmk_pellet_men, 1, i), new SILEXRecipe(600, 100, 1) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_neptunium_fuel), 90 - i * 12)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_neptunium_fuel), 84 - i * 14)) + .addOut(new WeightedRandomObject(i < 1 ? new ItemStack(ModItems.nugget_pu239) : new ItemStack(ModItems.nugget_pu_mix), 6 + i * 2)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.NEPTUNIUM.ordinal()), 4 + 5 * i)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.NEPTUNIUM.ordinal()), 6 + 7 * i)) ); recipes.put(new ComparableStack(ModItems.rbmk_pellet_men, 1, i + 5), new SILEXRecipe(600, 100, 1) .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_xe135_tiny), 1)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_neptunium_fuel), 89 - i * 12)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_neptunium_fuel), 83 - i * 14)) + .addOut(new WeightedRandomObject(i < 1 ? new ItemStack(ModItems.nugget_pu239) : new ItemStack(ModItems.nugget_pu_mix), 6 + i * 2)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.NEPTUNIUM.ordinal()), 4 + 5 * i)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.NEPTUNIUM.ordinal()), 6 + 7 * i)) ); @@ -213,18 +221,20 @@ public class SILEXRecipes { // MOX // recipes.put(new ComparableStack(ModItems.rbmk_pellet_mox, 1, i), new SILEXRecipe(600, 100, 1) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_mox_fuel), 90 - i * 20)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.URANIUM235.ordinal()), 2 + 4 * i)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.URANIUM235.ordinal()), 3 + 6 * i)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.PLUTONIUM239.ordinal()), 3 + 7 * i)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_mox_fuel), 84 - i * 20)) + .addOut(new WeightedRandomObject(i < 1 ? new ItemStack(ModItems.nugget_pu239) : new ItemStack(ModItems.nugget_pu_mix), 6 + i * 4)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.URANIUM235.ordinal()), 2 + 3 * i)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.URANIUM235.ordinal()), 3 + 5 * i)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.PLUTONIUM239.ordinal()), 3 + 5 * i)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.PLUTONIUM240.ordinal()), 2 + 3 * i)) ); - recipes.put(new ComparableStack(ModItems.rbmk_pellet_mox, 1, i + 5), new SILEXRecipe(600, 100, 1) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_xe135_tiny), 1)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_mox_fuel), 89 - i * 20)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.URANIUM235.ordinal()), 2 + 4 * i)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.URANIUM235.ordinal()), 3 + 6 * i)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.PLUTONIUM239.ordinal()), 3 + 7 * i)) + //TODO: Readd xenon processing if/when the NEI handler can display more than 6 outputs properly + recipes.put(new ComparableStack(ModItems.rbmk_pellet_mox, 1, i + 5), new SILEXRecipe(600, 100, 1) //Plutonium processing isn't possible w/o fucking up the NEI handler or removing xenon + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_mox_fuel), 84 - i * 20)) //To prevent people from taking advantage of differing waste types, conform to the latter + .addOut(new WeightedRandomObject(i < 1 ? new ItemStack(ModItems.nugget_pu239) : new ItemStack(ModItems.nugget_pu_mix), 6 + i * 4)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.URANIUM235.ordinal()), 2 + 3 * i)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.URANIUM235.ordinal()), 3 + 5 * i)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.PLUTONIUM239.ordinal()), 3 + 5 * i)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.PLUTONIUM240.ordinal()), 2 + 3 * i)) ); // LEAUS // @@ -262,6 +272,7 @@ public class SILEXRecipes { .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.SCHRABIDIUM.ordinal()), 1 + 2 * i)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_coal_tiny), 4 + 8 * i)) ); + //TODO: Readd xenon processing if/when the NEI handler can display more than 6 outputs properly recipes.put(new ComparableStack(ModItems.rbmk_pellet_les, 1, i + 5), new SILEXRecipe(600, 100, 2) //I'd rather not fuck up the NEI handler, so six items it is .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_les), 90 - i * 20)) //Just bullshit something about "not enough np237 for extractable amounts of xe135" .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.NEPTUNIUM.ordinal()), 2 + 3 * i)) @@ -279,6 +290,7 @@ public class SILEXRecipes { .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.SCHRABIDIUM.ordinal()), 2 + 4 * i)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_coal_tiny), 4 + 7 * i)) ); + //TODO: Readd xenon processing if/when the NEI handler can display more than 6 outputs properly recipes.put(new ComparableStack(ModItems.rbmk_pellet_mes, 1, i + 5), new SILEXRecipe(600, 100, 2) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_schrabidium_fuel), 90 - i * 20)) //ditto .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.NEPTUNIUM.ordinal()), 1 + 2 * i)) @@ -296,6 +308,7 @@ public class SILEXRecipes { .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.SCHRABIDIUM.ordinal()), 4 + 6 * i)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_coal_tiny), 2 + 4 * i)) ); + //TODO: Readd xenon processing if/when the NEI handler can display more than 6 outputs properly recipes.put(new ComparableStack(ModItems.rbmk_pellet_hes, 1, i + 5), new SILEXRecipe(600, 100, 2) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_hes), 90 - i * 20)) //ditto .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.NEPTUNIUM.ordinal()), 1 + 2 * i)) 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 030292ee1..507f3280b 100644 --- a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java @@ -204,7 +204,7 @@ public class AnvilRecipes { constructionRecipes.add(new AnvilConstructionRecipe( new AStack[] { - new ComparableStack(ModItems.deuterium_filter, 3), + new ComparableStack(ModItems.deuterium_filter, 2), new ComparableStack(ModItems.hull_big_steel, 5), new ComparableStack(ModBlocks.concrete_smooth, 8), new ComparableStack(ModBlocks.concrete_asbestos, 4), @@ -666,7 +666,8 @@ public class AnvilRecipes { }).setTier(4)); constructionRecipes.add(new AnvilConstructionRecipe( new ComparableStack(ModItems.pile_rod_plutonium), new AnvilOutput[] { - new AnvilOutput(new ItemStack(ModItems.billet_pu_mix, 3)), + new AnvilOutput(new ItemStack(ModItems.billet_pu_mix, 2)), + new AnvilOutput(new ItemStack(ModItems.billet_uranium, 1)), new AnvilOutput(new ItemStack(ModItems.plate_iron, 2)) }).setTier(2)); constructionRecipes.add(new AnvilConstructionRecipe( diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 7fcdb262d..6ca190d5c 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -19,6 +19,7 @@ import com.hbm.items.machine.ItemFELCrystal.EnumWavelengths; import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import com.hbm.items.machine.ItemPlateFuel.FunctionEnum; import com.hbm.items.machine.ItemRBMKRod.EnumBurnFunc; +import com.hbm.items.machine.ItemRBMKRod.EnumDepleteFunc; import com.hbm.items.machine.ItemRTGPelletDepleted.DepletedRTGMaterial; import com.hbm.items.machine.ItemStamp.StampType; import com.hbm.items.special.*; @@ -3584,7 +3585,7 @@ public class ModItems { rod_zirnox_u233_fuel = new ItemZirnoxRod(87500, 80).setUnlocalizedName("rod_zirnox_u233_fuel").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":rod_zirnox_u233_fuel"); rod_zirnox_u235_fuel = new ItemZirnoxRod(85000, 85).setUnlocalizedName("rod_zirnox_u235_fuel").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":rod_zirnox_u235_fuel"); rod_zirnox_les_fuel = new ItemZirnoxRod(150000, 150).setUnlocalizedName("rod_zirnox_les_fuel").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":rod_zirnox_les_fuel"); - rod_zirnox_lithium = new ItemZirnoxBreedingRod(10000, 0).setUnlocalizedName("rod_zirnox_lithium").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":rod_zirnox_lithium"); + rod_zirnox_lithium = new ItemZirnoxBreedingRod(20000, 0).setUnlocalizedName("rod_zirnox_lithium").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":rod_zirnox_lithium"); rod_zirnox_tritium = new Item().setUnlocalizedName("rod_zirnox_tritium").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_zirnox_empty).setTextureName(RefStrings.MODID + ":rod_zirnox_tritium"); rod_zirnox_natural_uranium_fuel_depleted = new Item().setUnlocalizedName("rod_zirnox_natural_uranium_fuel_depleted").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_zirnox_empty).setTextureName(RefStrings.MODID + ":rod_zirnox_uranium_fuel_depleted"); @@ -3669,12 +3670,16 @@ public class ModItems { .setYield(100000000D) .setStats(15) .setFunction(EnumBurnFunc.LOG_TEN) + .setDepletionFunction(EnumDepleteFunc.RAISING_SLOPE) + .setHeat(0.5) .setMeltingPoint(2865) .setUnlocalizedName("rbmk_fuel_ueu").setTextureName(RefStrings.MODID + ":rbmk_fuel_ueu"); rbmk_fuel_meu = (ItemRBMKRod) new ItemRBMKRod(rbmk_pellet_meu) .setYield(100000000D) .setStats(20) .setFunction(EnumBurnFunc.LOG_TEN) + .setDepletionFunction(EnumDepleteFunc.RAISING_SLOPE) + .setHeat(0.65) //0.75 was a bit too much .setMeltingPoint(2865) .setUnlocalizedName("rbmk_fuel_meu").setTextureName(RefStrings.MODID + ":rbmk_fuel_meu"); rbmk_fuel_heu233 = (ItemRBMKRod) new ItemRBMKRod(rbmk_pellet_heu233) @@ -3694,26 +3699,29 @@ public class ModItems { .setYield(100000000D) .setStats(12) .setFunction(EnumBurnFunc.PLATEU) + .setDepletionFunction(EnumDepleteFunc.BOOSTED_SLOPE) + .setHeat(0.75D) .setMeltingPoint(3350) .setUnlocalizedName("rbmk_fuel_thmeu").setTextureName(RefStrings.MODID + ":rbmk_fuel_thmeu"); rbmk_fuel_lep = (ItemRBMKRod) new ItemRBMKRod(rbmk_pellet_lep) .setYield(100000000D) .setStats(35) .setFunction(EnumBurnFunc.LOG_TEN) + .setDepletionFunction(EnumDepleteFunc.RAISING_SLOPE) + .setHeat(0.75D) .setMeltingPoint(2744) .setUnlocalizedName("rbmk_fuel_lep").setTextureName(RefStrings.MODID + ":rbmk_fuel_lep"); rbmk_fuel_mep = (ItemRBMKRod) new ItemRBMKRod(rbmk_pellet_mep) .setYield(100000000D) .setStats(35, 20) .setFunction(EnumBurnFunc.SQUARE_ROOT) - .setHeat(1.25D) .setMeltingPoint(2744) .setUnlocalizedName("rbmk_fuel_mep").setTextureName(RefStrings.MODID + ":rbmk_fuel_mep"); rbmk_fuel_hep239 = (ItemRBMKRod) new ItemRBMKRod(rbmk_pellet_hep239) .setYield(100000000D) .setStats(30) .setFunction(EnumBurnFunc.LINEAR) - .setHeat(1.5D) + .setHeat(1.25D) .setMeltingPoint(2744) .setUnlocalizedName("rbmk_fuel_hep").setTextureName(RefStrings.MODID + ":rbmk_fuel_hep"); rbmk_fuel_hep241 = (ItemRBMKRod) new ItemRBMKRod(rbmk_pellet_hep241) @@ -3727,6 +3735,7 @@ public class ModItems { .setYield(100000000D) .setStats(60, 10) .setFunction(EnumBurnFunc.SQUARE_ROOT) + .setDepletionFunction(EnumDepleteFunc.RAISING_SLOPE) .setHeat(1.5D) .setMeltingPoint(2386) .setUnlocalizedName("rbmk_fuel_lea").setTextureName(RefStrings.MODID + ":rbmk_fuel_lea"); @@ -3741,7 +3750,7 @@ public class ModItems { .setYield(100000000D) .setStats(65, 15) .setFunction(EnumBurnFunc.SQUARE_ROOT) - .setHeat(1.75D) + .setHeat(1.85D) .setMeltingPoint(2386) .setNeutronTypes(NType.FAST, NType.FAST) .setUnlocalizedName("rbmk_fuel_hea241").setTextureName(RefStrings.MODID + ":rbmk_fuel_hea241"); @@ -3756,6 +3765,8 @@ public class ModItems { .setYield(100000000D) .setStats(30) .setFunction(EnumBurnFunc.SQUARE_ROOT) + .setDepletionFunction(EnumDepleteFunc.RAISING_SLOPE) + .setHeat(0.75) .setMeltingPoint(2800) .setNeutronTypes(NType.FAST, NType.FAST) .setUnlocalizedName("rbmk_fuel_men").setTextureName(RefStrings.MODID + ":rbmk_fuel_men"); @@ -3770,13 +3781,14 @@ public class ModItems { .setYield(100000000D) .setStats(40) .setFunction(EnumBurnFunc.LOG_TEN) - .setHeat(1.5D) + .setDepletionFunction(EnumDepleteFunc.RAISING_SLOPE) .setMeltingPoint(2815) .setUnlocalizedName("rbmk_fuel_mox").setTextureName(RefStrings.MODID + ":rbmk_fuel_mox"); rbmk_fuel_les = (ItemRBMKRod) new ItemRBMKRod(rbmk_pellet_les) .setYield(100000000D) .setStats(50) .setFunction(EnumBurnFunc.SQUARE_ROOT) + .setDepletionFunction(EnumDepleteFunc.RAISING_SLOPE) .setHeat(1.25D) .setMeltingPoint(2500) .setUnlocalizedName("rbmk_fuel_les").setTextureName(RefStrings.MODID + ":rbmk_fuel_les"); @@ -3791,6 +3803,7 @@ public class ModItems { .setYield(100000000D) .setStats(90) .setFunction(EnumBurnFunc.LINEAR) + .setDepletionFunction(EnumDepleteFunc.LINEAR) .setHeat(1.75D) .setMeltingPoint(3000) .setUnlocalizedName("rbmk_fuel_hes").setTextureName(RefStrings.MODID + ":rbmk_fuel_hes"); @@ -3798,6 +3811,7 @@ public class ModItems { .setYield(100000000D) .setStats(30) .setFunction(EnumBurnFunc.SIGMOID) + .setDepletionFunction(EnumDepleteFunc.LINEAR) .setXenon(0.05D, 50D) .setHeat(1.5D) .setMeltingPoint(7029).setUnlocalizedName("rbmk_fuel_leaus").setTextureName(RefStrings.MODID + ":rbmk_fuel_leaus"); @@ -3812,6 +3826,7 @@ public class ModItems { .setYield(25000000D) .setStats(15, 40) .setFunction(EnumBurnFunc.SQUARE_ROOT) + .setDepletionFunction(EnumDepleteFunc.LINEAR) .setXenon(0.0D, 50D) .setHeat(0.1D) .setDiffusion(0.05D) @@ -3821,6 +3836,7 @@ public class ModItems { .setYield(100000000D) .setStats(0D, 20) .setFunction(EnumBurnFunc.PASSIVE) + .setDepletionFunction(EnumDepleteFunc.LINEAR) .setXenon(0.0D, 50D) .setHeat(0.035D) .setDiffusion(0.5D) @@ -3838,6 +3854,7 @@ public class ModItems { .setYield(100000000D) .setStats(50, 10) .setFunction(EnumBurnFunc.ARCH) + .setDepletionFunction(EnumDepleteFunc.LINEAR) .setXenon(0.0D, 50D) .setMeltingPoint(2000) .setUnlocalizedName("rbmk_fuel_balefire_gold").setTextureName(RefStrings.MODID + ":rbmk_fuel_balefire_gold"); @@ -3845,6 +3862,7 @@ public class ModItems { .setYield(250000000D) .setStats(40, 50) .setFunction(EnumBurnFunc.ARCH) + .setDepletionFunction(EnumDepleteFunc.LINEAR) .setXenon(0.0D, 50D) .setMeltingPoint(2050) .setUnlocalizedName("rbmk_fuel_flashlead").setTextureName(RefStrings.MODID + ":rbmk_fuel_flashlead"); diff --git a/src/main/java/com/hbm/items/machine/ItemRBMKRod.java b/src/main/java/com/hbm/items/machine/ItemRBMKRod.java index f1c21471b..6f0c7a72e 100644 --- a/src/main/java/com/hbm/items/machine/ItemRBMKRod.java +++ b/src/main/java/com/hbm/items/machine/ItemRBMKRod.java @@ -25,7 +25,7 @@ public class ItemRBMKRod extends Item { public double reactivity; //endpoint of the function public double selfRate; //self-inflicted flux from self-igniting fuels public EnumBurnFunc function = EnumBurnFunc.LOG_TEN; - public EnumDepleteFunction depFunc = EnumDepleteFunction.LINEAR; + public EnumDepleteFunc depFunc = EnumDepleteFunc.GENTLE_SLOPE; public double xGen = 0.5D; //multiplier for xenon production public double xBurn = 50D; //divider for xenon burnup public double heat = 1D; //heat produced per outFlux @@ -88,7 +88,7 @@ public class ItemRBMKRod extends Item { return this; } - public ItemRBMKRod setDepletionFunction(EnumDepleteFunction func) { + public ItemRBMKRod setDepletionFunction(EnumDepleteFunc func) { this.depFunc = func; return this; } @@ -239,7 +239,7 @@ public class ItemRBMKRod extends Item { */ public double reactivityFunc(double in, double enrichment) { - double flux = in * reativityModByEnrichment(enrichment); + double flux = in * reactivityModByEnrichment(enrichment); switch(this.function) { case PASSIVE: return selfRate * enrichment; @@ -256,29 +256,46 @@ public class ItemRBMKRod extends Item { return 0; } - public String getFuncDescription() { + public String getFuncDescription(ItemStack stack) { - String x = "x"; - - if(selfRate > 0) - x = "(x" + EnumChatFormatting.RED + " + " + selfRate + "" + EnumChatFormatting.WHITE + ")"; + String function; switch(this.function) { - case PASSIVE: return EnumChatFormatting.RED + "" + selfRate; - case LOG_TEN: return "log10(x + 1" + (selfRate > 0 ? (EnumChatFormatting.RED + " + " + selfRate) : "") + EnumChatFormatting.WHITE + ") * 0.5 * " + reactivity; - case PLATEU: return "(1 - e^-" + x + " / 25)) * " + reactivity; - case ARCH: return "(" + x + " - " + x + "² / 10000) / 100 * " + reactivity + " [0;∞]"; - case SIGMOID: return reactivity + " / (1 + e^(-(" + x + " - 50) / 10)"; - case SQUARE_ROOT: return "sqrt(" + x + ") * " + reactivity + " / 10"; - case LINEAR: return x + " / 100 * " + reactivity; - case QUADRATIC: return x + "² / 10000 * " + reactivity; - case EXPERIMENTAL: return x + " * (sin(" + x + ") + 1) * " + reactivity; + case PASSIVE: function = EnumChatFormatting.RED + "" + selfRate; + break; + case LOG_TEN: function = "log10(%1$s + 1) * 0.5 * %2$s"; + break; + case PLATEU: function = "(1 - e^-%1$s / 25)) * %2$s"; + break; + case ARCH: function = "(%1$s - %1$s² / 10000) / 100 * %2$s [0;∞]"; + break; + case SIGMOID: function = "%2$s / (1 + e^(-(%1$s - 50) / 10)"; + break; + case SQUARE_ROOT: function = "sqrt(%1$s) * %2$s / 10"; + break; + case LINEAR: function = "%1$s / 100 * %2$s"; + break; + case QUADRATIC: function = "%1$s² / 10000 * %2$s"; + break; + case EXPERIMENTAL: function = "%1$s * (sin(%1$s) + 1) * %2$s"; + break; + default: function = "ERROR"; } - return "ERROR"; + double enrichment = getEnrichment(stack); + + if(enrichment < 1) { + enrichment = reactivityModByEnrichment(enrichment); + String reactivity = EnumChatFormatting.YELLOW + "" + ((int)(this.reactivity * enrichment * 1000D) / 1000D) + EnumChatFormatting.WHITE; + String enrichmentPer = EnumChatFormatting.GOLD + " (" + ((int)(enrichment * 1000D) / 1000D) + "%)"; + + return String.format(function, selfRate > 0 ? "(x" + EnumChatFormatting.RED + " + " + selfRate + "" + EnumChatFormatting.WHITE + ")" : "x", reactivity).concat(enrichmentPer); + } + + return String.format(function, selfRate > 0 ? "(x" + EnumChatFormatting.RED + " + " + selfRate + "" + EnumChatFormatting.WHITE + ")" : "x", reactivity); } - public static enum EnumDepleteFunction { + public static enum EnumDepleteFunc { LINEAR, //old function RAISING_SLOPE, //for breeding fuels such as MEU, maximum of 110% at 28% depletion BOOSTED_SLOPE, //for strong breeding fuels such Th232, maximum of 132% at 64% depletion @@ -286,15 +303,15 @@ public class ItemRBMKRod extends Item { STATIC; //for arcade-style neutron sources } - public double reativityModByEnrichment(double enrichment) { + public double reactivityModByEnrichment(double enrichment) { switch(this.depFunc) { default: case LINEAR: return enrichment; case STATIC: return 1D; - case BOOSTED_SLOPE: return -enrichment + 1 + Math.sin(enrichment * enrichment * Math.PI); - case RAISING_SLOPE: return -enrichment + 1 + (Math.sin(enrichment * Math.PI) / 2D); - case GENTLE_SLOPE: return -enrichment + 1 + (Math.sin(enrichment * Math.PI) / 3D); + case BOOSTED_SLOPE: return enrichment + Math.sin((enrichment - 1) * (enrichment - 1) * Math.PI); //x + sin([x - 1]^2 * pi) works + case RAISING_SLOPE: return enrichment + (Math.sin(enrichment * Math.PI) / 2D); //x + (sin(x * pi) / 2) actually works + case GENTLE_SLOPE: return enrichment + (Math.sin(enrichment * Math.PI) / 3D); //x + (sin(x * pi) / 3) also works } } @@ -347,7 +364,7 @@ public class ItemRBMKRod extends Item { list.add(EnumChatFormatting.DARK_PURPLE + I18nUtil.resolveKey("trait.rbmx.xenon", ((int)(getPoison(stack) * 1000D) / 1000D) + "%")); list.add(EnumChatFormatting.BLUE + I18nUtil.resolveKey("trait.rbmx.splitsWith", I18nUtil.resolveKey(nType.unlocalized + ".x"))); list.add(EnumChatFormatting.BLUE + I18nUtil.resolveKey("trait.rbmx.splitsInto", I18nUtil.resolveKey(rType.unlocalized + ".x"))); - list.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKey("trait.rbmx.fluxFunc", EnumChatFormatting.WHITE + getFuncDescription())); + list.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKey("trait.rbmx.fluxFunc", EnumChatFormatting.WHITE + getFuncDescription(stack))); list.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKey("trait.rbmx.funcType", this.function.title)); list.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKey("trait.rbmx.xenonGen", EnumChatFormatting.WHITE + "x * " + xGen)); list.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKey("trait.rbmx.xenonBurn", EnumChatFormatting.WHITE + "x² * " + xBurn)); @@ -367,7 +384,7 @@ public class ItemRBMKRod extends Item { list.add(EnumChatFormatting.DARK_PURPLE + I18nUtil.resolveKey("trait.rbmk.xenon", ((int)(getPoison(stack) * 1000D) / 1000D) + "%")); list.add(EnumChatFormatting.BLUE + I18nUtil.resolveKey("trait.rbmk.splitsWith", I18nUtil.resolveKey(nType.unlocalized))); list.add(EnumChatFormatting.BLUE + I18nUtil.resolveKey("trait.rbmk.splitsInto", I18nUtil.resolveKey(rType.unlocalized))); - list.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKey("trait.rbmk.fluxFunc", EnumChatFormatting.WHITE + getFuncDescription())); + list.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKey("trait.rbmk.fluxFunc", EnumChatFormatting.WHITE + getFuncDescription(stack))); list.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKey("trait.rbmk.funcType", this.function.title)); list.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKey("trait.rbmk.xenonGen", EnumChatFormatting.WHITE + "x * " + xGen)); list.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKey("trait.rbmk.xenonBurn", EnumChatFormatting.WHITE + "x² * " + xBurn)); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityDeuteriumExtractor.java b/src/main/java/com/hbm/tileentity/machine/TileEntityDeuteriumExtractor.java index 1493b203f..1e9386e0a 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityDeuteriumExtractor.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityDeuteriumExtractor.java @@ -9,7 +9,6 @@ import com.hbm.inventory.FluidTank; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.lib.Library; -import com.hbm.packet.AuxElectricityPacket; import com.hbm.packet.PacketDispatcher; import com.hbm.tileentity.TileEntityMachineBase; @@ -20,10 +19,8 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraftforge.common.util.ForgeDirection; public class TileEntityDeuteriumExtractor extends TileEntityMachineBase implements IFluidAcceptor, IFluidSource, IEnergyUser, IFluidStandardTransceiver { - - public int age = 0; + public long power = 0; - public static final long maxPower = 100000; public FluidTank[] tanks; public List list = new ArrayList(); @@ -45,33 +42,28 @@ public class TileEntityDeuteriumExtractor extends TileEntityMachineBase implemen if(!worldObj.isRemote) { this.updateConnections(); - - this.tanks[0].updateTank(this, 25); - this.tanks[1].updateTank(this, 25); - - age++; - if(age >= 10) { - age = 0; - if(hasPower() && hasEnoughWater()) { - int convert = Math.min(tanks[0].getFill(), tanks[1].getMaxFill() - tanks[1].getFill()); - tanks[0].setFill(tanks[0].getFill() - convert); - tanks[1].setFill(tanks[1].getFill() + Math.round(convert / 50)); - power -= maxPower / 10; + + if(worldObj.getTotalWorldTime() % 10 == 0) { + if(hasPower() && hasEnoughWater() && tanks[1].getMaxFill() > tanks[1].getFill()) { + int convert = Math.min(tanks[1].getMaxFill(), tanks[0].getFill()) / 50; + convert = Math.min(convert, tanks[1].getMaxFill() - tanks[1].getFill()); + + tanks[0].setFill(tanks[0].getFill() - convert * 50); //dividing first, then multiplying, will remove any rounding issues + tanks[1].setFill(tanks[1].getFill() + convert); + power -= this.getMaxPower() / 20; } - NBTTagCompound data = new NBTTagCompound(); - data.setLong("power", power); - this.networkPack(data, 25); } this.subscribeToAllAround(tanks[0].getTankType(), this); this.sendFluidToAll(tanks[1].getTankType(), this); - - if(power < 0) - power = 0; - fillFluidInit(tanks[1].getTankType()); - PacketDispatcher.wrapper.sendToAllAround(new AuxElectricityPacket(xCoord, yCoord, zCoord, power), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50)); + NBTTagCompound data = new NBTTagCompound(); + data.setLong("power", power); + tanks[0].writeToNBT(data, "water"); + tanks[1].writeToNBT(data, "heavyWater"); + + this.networkPack(data, 50); } } @@ -83,14 +75,12 @@ public class TileEntityDeuteriumExtractor extends TileEntityMachineBase implemen public void networkUnpack(NBTTagCompound data) { this.power = data.getLong("power"); - } - - public long getPowerRemainingScaled(long i) { - return (power * i) / maxPower; + tanks[0].readFromNBT(data, "water"); + tanks[1].readFromNBT(data, "heavyWater"); } public boolean hasPower() { - return power >= maxPower / 10; + return power >= this.getMaxPower() / 20; } public boolean hasEnoughWater() { @@ -125,17 +115,12 @@ public class TileEntityDeuteriumExtractor extends TileEntityMachineBase implemen public void fillFluid(int x, int y, int z, boolean newTact, FluidType type) { Library.transmitFluid(x, y, z, newTact, this, worldObj, type); } - + @Override public boolean getTact() { - if(age == 0) - { - return true; - } - - return false; + return worldObj.getTotalWorldTime() % 20 < 10; } - + @Override public void setFluidFill(int i, FluidType type) { if(type == tanks[0].getTankType()) @@ -163,16 +148,10 @@ public class TileEntityDeuteriumExtractor extends TileEntityMachineBase implemen } @Override - public void setFillForSync(int fill, int index) { - if(index < 2 && tanks[index] != null) - tanks[index].setFill(fill); - } + public void setFillForSync(int fill, int index) { } @Override - public void setTypeForSync(FluidType type, int index) { - if(index < 2 && tanks[index] != null) - tanks[index].setTankType(type); - } + public void setTypeForSync(FluidType type, int index) { } @Override public List getFluidList(FluidType type) { @@ -196,16 +175,16 @@ public class TileEntityDeuteriumExtractor extends TileEntityMachineBase implemen @Override public long getMaxPower() { - return maxPower; + return 100000; } @Override public FluidTank[] getSendingTanks() { - return new FluidTank[] {tanks [1]}; + return new FluidTank[] { tanks[1] }; } @Override public FluidTank[] getReceivingTanks() { - return new FluidTank[] {tanks [0]}; + return new FluidTank[] { tanks[0] }; } } \ No newline at end of file diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityDeuteriumTower.java b/src/main/java/com/hbm/tileentity/machine/TileEntityDeuteriumTower.java index 84d98b241..68c6dab6d 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityDeuteriumTower.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityDeuteriumTower.java @@ -16,8 +16,6 @@ import net.minecraftforge.common.util.ForgeDirection; public class TileEntityDeuteriumTower extends TileEntityDeuteriumExtractor { - public static final long maxPower = 1000000; - public TileEntityDeuteriumTower() { super(); tanks[0] = new FluidTank(Fluids.WATER, 50000, 0); @@ -149,6 +147,6 @@ public class TileEntityDeuteriumTower extends TileEntityDeuteriumExtractor { @Override public long getMaxPower() { - return maxPower; + return 1000000; } } \ No newline at end of file diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityReactorZirnox.java b/src/main/java/com/hbm/tileentity/machine/TileEntityReactorZirnox.java index ec45881d5..f5885f311 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityReactorZirnox.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityReactorZirnox.java @@ -235,7 +235,7 @@ public class TileEntityReactorZirnox extends TileEntityMachineBase implements IF private void generateSteam() { // function of SHS produced per tick - // heat - 10256/100000 * pressure / 50,000 * 25 * 5 (should get rid of any rounding errors) + // (heat - 10256)/100000 * steamFill (max efficiency at 14b) * 25 * 5 (should get rid of any rounding errors) if(this.heat > 10256) { int Water = (int)((((float)heat - 10256F) / (float)maxHeat) * Math.min(((float)carbonDioxide.getFill() / 14000F), 1F) * 25F * 5F); int Steam = Water * 1; @@ -366,17 +366,14 @@ public class TileEntityReactorZirnox extends TileEntityMachineBase implements IF ExplosionNukeGeneric.waste(worldObj, this.xCoord, this.yCoord, this.zCoord, 35); List players = worldObj.getEntitiesWithinAABB(EntityPlayer.class, - AxisAlignedBB.getBoundingBox(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, xCoord + 0.5, yCoord + 0.5, zCoord + 0.5).expand(50, 50, 50)); + AxisAlignedBB.getBoundingBox(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, xCoord + 0.5, yCoord + 0.5, zCoord + 0.5).expand(100, 100, 100)); for(EntityPlayer player : players) { player.triggerAchievement(MainRegistry.achZIRNOXBoom); } if(MobConfig.enableElementals) { - @SuppressWarnings("unchecked") - List players2 = worldObj.getEntitiesWithinAABB(EntityPlayer.class, AxisAlignedBB.getBoundingBox(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, xCoord + 0.5, yCoord + 0.5, zCoord + 0.5).expand(100, 100, 100)); - - for(EntityPlayer player : players2) { + for(EntityPlayer player : players) { player.getEntityData().getCompoundTag(EntityPlayer.PERSISTED_NBT_TAG).setBoolean("radMark", true); } } @@ -408,9 +405,10 @@ public class TileEntityReactorZirnox extends TileEntityMachineBase implements IF } public int getMaxFluidFill(FluidType type) { - if(type == Fluids.SUPERHOTSTEAM) return steam.getMaxFill(); + if(type == Fluids.SUPERHOTSTEAM) return 0; if(type == Fluids.CARBONDIOXIDE) return carbonDioxide.getMaxFill(); if(type == Fluids.WATER) return water.getMaxFill(); + return 0; } diff --git a/src/main/java/com/hbm/tileentity/machine/pile/TileEntityPileBreedingFuel.java b/src/main/java/com/hbm/tileentity/machine/pile/TileEntityPileBreedingFuel.java index 117ecf27e..1bbe94acb 100644 --- a/src/main/java/com/hbm/tileentity/machine/pile/TileEntityPileBreedingFuel.java +++ b/src/main/java/com/hbm/tileentity/machine/pile/TileEntityPileBreedingFuel.java @@ -11,7 +11,7 @@ public class TileEntityPileBreedingFuel extends TileEntityPileBase implements IP public int neutrons; public int lastNeutrons; public int progress; - public static final int maxProgress = GeneralConfig.enable528 ? 37500 : 25000; + public static final int maxProgress = GeneralConfig.enable528 ? 50000 : 30000; @Override public void updateEntity() { diff --git a/src/main/resources/assets/hbm/textures/gui/reactors/gui_research_reactor.png b/src/main/resources/assets/hbm/textures/gui/reactors/gui_research_reactor.png index 5046aa3af523a82abbeab4a7cd50d63be6c0f999..3e69c565f2ac46e2d272479278be0fa64d8f8910 100644 GIT binary patch literal 3733 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 b=>;EU8WE;C?{8i4?d&OYyA!3R?!W#GXO^l9 From 7d2227ff4b3b93253ec3c58ced1c28eeaf2f8cb4 Mon Sep 17 00:00:00 2001 From: Bob Date: Sun, 15 May 2022 20:00:34 +0200 Subject: [PATCH 08/80] FUCKING BNUUY --- src/main/java/com/hbm/blocks/ModBlocks.java | 4 +- .../machine/MachineCatalyticCracker.java | 7 +- .../blocks/machine/MachineFractionTower.java | 7 +- .../hbm/blocks/machine/MachineGasFlare.java | 8 +- src/main/java/com/hbm/handler/GUIHandler.java | 1 + .../container/ContainerAssemfac.java | 22 + .../com/hbm/inventory/fluid/FluidType.java | 7 +- .../java/com/hbm/inventory/fluid/Fluids.java | 4 +- .../fluid/types/RadioactiveFluid.java | 27 + .../inventory/fluid/types/RadioactiveGas.java | 3 +- .../fluid/types/RadioactiveLiquid.java | 3 +- .../hbm/inventory/gui/GUIMachineGasFlare.java | 2 +- .../inventory/recipes/AssemblerRecipes.java | 4 +- src/main/java/com/hbm/items/ModItems.java | 15 +- .../com/hbm/items/armor/ArmorAsbestos.java | 90 +- .../java/com/hbm/items/armor/ArmorDiesel.java | 27 +- .../java/com/hbm/items/armor/ArmorFSB.java | 1 + .../com/hbm/items/armor/ArmorGasMask.java | 3 +- .../java/com/hbm/items/armor/ArmorHEV.java | 188 +- .../java/com/hbm/items/armor/ArmorHazmat.java | 1 + .../com/hbm/items/armor/ArmorLiquidator.java | 1 + .../java/com/hbm/items/armor/ArmorModel.java | 94 +- src/main/java/com/hbm/main/ClientProxy.java | 53 +- .../java/com/hbm/main/ResourceManager.java | 6 + .../hbm/render/model/ModelArmorDiesel.java | 58 + .../com/hbm/render/util/RenderInfoSystem.java | 4 +- src/main/java/com/hbm/sound/AudioDynamic.java | 4 + src/main/java/com/hbm/sound/AudioWrapper.java | 3 +- .../com/hbm/sound/AudioWrapperClient.java | 23 +- .../hbm/tileentity/TileEntityMachineBase.java | 10 + .../machine/TileEntityCondenser.java | 3 +- ...eEntityMachineSchrabidiumTransmutator.java | 8 +- .../machine/TileEntityStorageDrum.java | 3 +- .../oil/TileEntityMachineGasFlare.java | 58 +- src/main/resources/assets/hbm/lang/de_DE.lang | 4 + src/main/resources/assets/hbm/lang/en_US.lang | 4 + .../assets/hbm/models/armor/bnuuy.obj | 4153 +++++++++++++++++ .../assets/hbm/textures/armor/bnuuy_arm.png | Bin 0 -> 2118 bytes .../assets/hbm/textures/armor/bnuuy_chest.png | Bin 0 -> 4764 bytes .../hbm/textures/armor/bnuuy_helmet.png | Bin 0 -> 1688 bytes .../assets/hbm/textures/armor/bnuuy_leg.png | Bin 0 -> 2167 bytes .../hbm/textures/items/dieselsuit_boots.png | Bin 0 -> 182 bytes .../hbm/textures/items/dieselsuit_helmet.png | Bin 0 -> 380 bytes .../hbm/textures/items/dieselsuit_legs.png | Bin 0 -> 202 bytes .../hbm/textures/items/dieselsuit_plate.png | Bin 0 -> 374 bytes .../textures/models/machines/flare_stack.png | Bin 4682 -> 4698 bytes 46 files changed, 4664 insertions(+), 249 deletions(-) create mode 100644 src/main/java/com/hbm/inventory/container/ContainerAssemfac.java create mode 100644 src/main/java/com/hbm/inventory/fluid/types/RadioactiveFluid.java create mode 100644 src/main/java/com/hbm/render/model/ModelArmorDiesel.java create mode 100644 src/main/resources/assets/hbm/models/armor/bnuuy.obj create mode 100644 src/main/resources/assets/hbm/textures/armor/bnuuy_arm.png create mode 100644 src/main/resources/assets/hbm/textures/armor/bnuuy_chest.png create mode 100644 src/main/resources/assets/hbm/textures/armor/bnuuy_helmet.png create mode 100644 src/main/resources/assets/hbm/textures/armor/bnuuy_leg.png create mode 100644 src/main/resources/assets/hbm/textures/items/dieselsuit_boots.png create mode 100644 src/main/resources/assets/hbm/textures/items/dieselsuit_helmet.png create mode 100644 src/main/resources/assets/hbm/textures/items/dieselsuit_legs.png create mode 100644 src/main/resources/assets/hbm/textures/items/dieselsuit_plate.png diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index ab66cda75..fd1402995 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -2123,7 +2123,7 @@ public class ModBlocks { machine_pumpjack = new MachinePumpjack().setBlockName("machine_pumpjack").setHardness(5.0F).setResistance(60.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_pumpjack"); machine_fracking_tower = new MachineFrackingTower().setBlockName("machine_fracking_tower").setHardness(5.0F).setResistance(60.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); oil_pipe = new BlockNoDrop(Material.iron).setBlockName("oil_pipe").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":oil_pipe"); - machine_flare = new MachineGasFlare(Material.iron).setBlockName("machine_flare").setHardness(5.0F).setResistance(100.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_flare"); + machine_flare = new MachineGasFlare(Material.iron).setBlockName("machine_flare").setHardness(5.0F).setResistance(100.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); machine_refinery = new MachineRefinery(Material.iron).setBlockName("machine_refinery").setHardness(5.0F).setResistance(100.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_refinery"); machine_fraction_tower = new MachineFractionTower(Material.iron).setBlockName("machine_fraction_tower").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); fraction_spacer = new FractionSpacer(Material.iron).setBlockName("fraction_spacer").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); @@ -3111,7 +3111,7 @@ public class ModBlocks { GameRegistry.registerBlock(machine_well, machine_well.getUnlocalizedName()); GameRegistry.registerBlock(machine_pumpjack, machine_pumpjack.getUnlocalizedName()); GameRegistry.registerBlock(machine_fracking_tower, machine_fracking_tower.getUnlocalizedName()); - GameRegistry.registerBlock(machine_flare, machine_flare.getUnlocalizedName()); + GameRegistry.registerBlock(machine_flare, ItemBlockBase.class, machine_flare.getUnlocalizedName()); GameRegistry.registerBlock(machine_refinery, machine_refinery.getUnlocalizedName()); GameRegistry.registerBlock(machine_fraction_tower, machine_fraction_tower.getUnlocalizedName()); GameRegistry.registerBlock(fraction_spacer, fraction_spacer.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/machine/MachineCatalyticCracker.java b/src/main/java/com/hbm/blocks/machine/MachineCatalyticCracker.java index ca0a23746..648f9a3b6 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineCatalyticCracker.java +++ b/src/main/java/com/hbm/blocks/machine/MachineCatalyticCracker.java @@ -7,8 +7,7 @@ import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ILookOverlay; import com.hbm.handler.MultiblockHandlerXR; import com.hbm.inventory.fluid.FluidType; -import com.hbm.inventory.fluid.Fluids; -import com.hbm.items.ModItems; +import com.hbm.items.machine.IItemFluidIdentifier; import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.oil.TileEntityMachineCatalyticCracker; import com.hbm.util.I18nUtil; @@ -56,7 +55,7 @@ public class MachineCatalyticCracker extends BlockDummyable implements ILookOver if(!world.isRemote && !player.isSneaking()) { - if(player.getHeldItem() != null && player.getHeldItem().getItem() == ModItems.fluid_identifier) { + if(player.getHeldItem() != null && player.getHeldItem().getItem() instanceof IItemFluidIdentifier) { int[] pos = this.findCore(world, x, y, z); if(pos == null) @@ -68,7 +67,7 @@ public class MachineCatalyticCracker extends BlockDummyable implements ILookOver return false; TileEntityMachineCatalyticCracker cracker = (TileEntityMachineCatalyticCracker) te; - FluidType type = Fluids.fromID(player.getHeldItem().getItemDamage()); + FluidType type = ((IItemFluidIdentifier) player.getHeldItem().getItem()).getType(world, pos[0], pos[1], pos[2], player.getHeldItem()); cracker.tanks[0].setTankType(type); cracker.markDirty(); player.addChatComponentMessage(new ChatComponentText("Changed type to ").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.YELLOW)).appendSibling(new ChatComponentTranslation("hbmfluid." + type.getName().toLowerCase())).appendSibling(new ChatComponentText("!"))); diff --git a/src/main/java/com/hbm/blocks/machine/MachineFractionTower.java b/src/main/java/com/hbm/blocks/machine/MachineFractionTower.java index 10aaaa6aa..b8705ead5 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineFractionTower.java +++ b/src/main/java/com/hbm/blocks/machine/MachineFractionTower.java @@ -6,8 +6,7 @@ import java.util.List; import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ILookOverlay; import com.hbm.inventory.fluid.FluidType; -import com.hbm.inventory.fluid.Fluids; -import com.hbm.items.ModItems; +import com.hbm.items.machine.IItemFluidIdentifier; import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.oil.TileEntityMachineFractionTower; import com.hbm.util.I18nUtil; @@ -55,7 +54,7 @@ public class MachineFractionTower extends BlockDummyable implements ILookOverlay if(!world.isRemote && !player.isSneaking()) { - if(player.getHeldItem() != null && player.getHeldItem().getItem() == ModItems.fluid_identifier) { + if(player.getHeldItem() != null && player.getHeldItem().getItem() instanceof IItemFluidIdentifier) { int[] pos = this.findCore(world, x, y, z); if(pos == null) @@ -71,7 +70,7 @@ public class MachineFractionTower extends BlockDummyable implements ILookOverlay if(world.getTileEntity(pos[0], pos[1] - 3, pos[2]) instanceof TileEntityMachineFractionTower) { player.addChatComponentMessage(new ChatComponentText(EnumChatFormatting.RED + "You can only change the type in the bottom segment!")); } else { - FluidType type = Fluids.fromID(player.getHeldItem().getItemDamage()); + FluidType type = ((IItemFluidIdentifier) player.getHeldItem().getItem()).getType(world, pos[0], pos[1], pos[2], player.getHeldItem()); frac.tanks[0].setTankType(type); frac.markDirty(); player.addChatComponentMessage(new ChatComponentText("Changed type to ").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.YELLOW)).appendSibling(new ChatComponentTranslation("hbmfluid." + type.getName().toLowerCase())).appendSibling(new ChatComponentText("!"))); diff --git a/src/main/java/com/hbm/blocks/machine/MachineGasFlare.java b/src/main/java/com/hbm/blocks/machine/MachineGasFlare.java index a7bc46a26..31e5a3e07 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineGasFlare.java +++ b/src/main/java/com/hbm/blocks/machine/MachineGasFlare.java @@ -56,8 +56,12 @@ public class MachineGasFlare extends BlockDummyable implements ITooltipProvider @Override public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { - + + list.add(EnumChatFormatting.GOLD + "Can burn or vent gasses"); + list.add(EnumChatFormatting.GOLD + "Burns up to " + EnumChatFormatting.RED + "10mB/t"); + list.add(EnumChatFormatting.GOLD + "Vents up to " + EnumChatFormatting.RED + "50mB/t"); + list.add(""); list.add(EnumChatFormatting.YELLOW + "Fuel efficiency:"); - list.add(EnumChatFormatting.YELLOW + "-Flammable Gasses: 50%"); + list.add(EnumChatFormatting.YELLOW + "-Flammable Gasses: " + EnumChatFormatting.RED + "50%"); } } diff --git a/src/main/java/com/hbm/handler/GUIHandler.java b/src/main/java/com/hbm/handler/GUIHandler.java index 37f742247..47860bd27 100644 --- a/src/main/java/com/hbm/handler/GUIHandler.java +++ b/src/main/java/com/hbm/handler/GUIHandler.java @@ -32,6 +32,7 @@ public class GUIHandler implements IGuiHandler { if(entity instanceof TileEntityMachineLiquefactor) { return new ContainerLiquefactor(player.inventory, (TileEntityMachineLiquefactor) entity); } if(entity instanceof TileEntityMachineSolidifier) { return new ContainerSolidifier(player.inventory, (TileEntityMachineSolidifier) entity); } if(entity instanceof TileEntityMachineRadiolysis) { return new ContainerRadiolysis(player.inventory, (TileEntityMachineRadiolysis) entity); } + if(entity instanceof TileEntityMachineAssemfac) { return new ContainerAssemfac(player.inventory, (TileEntityMachineAssemfac) entity); } if(entity instanceof TileEntityMachineChemfac) { return new ContainerChemfac(player.inventory, (TileEntityMachineChemfac) entity); } if(entity instanceof TileEntityElectrolyser) { return new ContainerElectrolyser(player.inventory, (TileEntityElectrolyser) entity); } diff --git a/src/main/java/com/hbm/inventory/container/ContainerAssemfac.java b/src/main/java/com/hbm/inventory/container/ContainerAssemfac.java new file mode 100644 index 000000000..2b70861d2 --- /dev/null +++ b/src/main/java/com/hbm/inventory/container/ContainerAssemfac.java @@ -0,0 +1,22 @@ +package com.hbm.inventory.container; + +import com.hbm.tileentity.machine.TileEntityMachineAssemfac; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Container; + +public class ContainerAssemfac extends Container { + + private TileEntityMachineAssemfac assemfac; + + public ContainerAssemfac(InventoryPlayer playerInv, TileEntityMachineAssemfac tile) { + assemfac = tile; + } + + @Override + public boolean canInteractWith(EntityPlayer p_75145_1_) { + return false; + } + +} diff --git a/src/main/java/com/hbm/inventory/fluid/FluidType.java b/src/main/java/com/hbm/inventory/fluid/FluidType.java index 57d838824..2527ee2f6 100644 --- a/src/main/java/com/hbm/inventory/fluid/FluidType.java +++ b/src/main/java/com/hbm/inventory/fluid/FluidType.java @@ -13,6 +13,7 @@ import com.hbm.render.util.EnumSymbol; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.ResourceLocation; +import net.minecraft.world.World; public class FluidType { @@ -157,7 +158,11 @@ public class FluidType { * @param tank * @param overflowAmount */ - public void onFluidRelease(TileEntity te, FluidTank tank, int overflowAmount) { } + public void onFluidRelease(TileEntity te, FluidTank tank, int overflowAmount) { + this.onFluidRelease(te.getWorldObj(), te.xCoord, te.yCoord, te.zCoord, tank, overflowAmount); + } + + public void onFluidRelease(World world, int x, int y, int z, FluidTank tank, int overflowAmount) { } //public void onFluidTransmit(FluidNetwork net) { } public void addInfo(List info) { diff --git a/src/main/java/com/hbm/inventory/fluid/Fluids.java b/src/main/java/com/hbm/inventory/fluid/Fluids.java index 5e4693e50..36fbaaf62 100644 --- a/src/main/java/com/hbm/inventory/fluid/Fluids.java +++ b/src/main/java/com/hbm/inventory/fluid/Fluids.java @@ -155,8 +155,8 @@ public class Fluids { BALEFIRE = new FluidType( "BALEFIRE", 0x28e02e, 4, 4, 3, EnumSymbol.RADIATION).setTemp(1500).addTraits(FluidTrait.CORROSIVE); MERCURY = new FluidType( "MERCURY", 0x808080, 2, 0, 0, EnumSymbol.NONE); PAIN = new FluidType( "PAIN", 0x938541, 2, 0, 1, EnumSymbol.ACID).setTemp(300).addTraits(FluidTrait.CORROSIVE); - WASTEFLUID = new RadioactiveLiquid( "WASTEFLUID", 0x544400, 2, 0, 1, EnumSymbol.RADIATION).addTraits(FluidTrait.NO_CONTAINER); - WASTEGAS = new RadioactiveGas( "WASTEGAS", 0xB8B8B8, 2, 0, 1, EnumSymbol.RADIATION).addTraits(FluidTrait.NO_CONTAINER); + WASTEFLUID = new RadioactiveLiquid( "WASTEFLUID", 0x544400, 2, 0, 1, EnumSymbol.RADIATION).setRadiation(0.5F).addTraits(FluidTrait.NO_CONTAINER); + WASTEGAS = new RadioactiveGas( "WASTEGAS", 0xB8B8B8, 2, 0, 1, EnumSymbol.RADIATION).setRadiation(0.5F).addTraits(FluidTrait.NO_CONTAINER); GASOLINE = new Fuel( "GASOLINE", 0x445772, 1, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.HIGH, 1_000_000).setHeatEnergy(400_000).addContainers(0x2F7747, ExtContainer.CANISTER); COALGAS = new Fuel( "COALGAS", 0x445772, 1, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.MEDIUM, 150_000).setHeatEnergy(75_000); SPENTSTEAM = new Gas( "SPENTSTEAM", 0x445772, 2, 0, 0, EnumSymbol.NONE).addTraits(FluidTrait.NO_CONTAINER).setCompression(1D); diff --git a/src/main/java/com/hbm/inventory/fluid/types/RadioactiveFluid.java b/src/main/java/com/hbm/inventory/fluid/types/RadioactiveFluid.java new file mode 100644 index 000000000..e8610c54e --- /dev/null +++ b/src/main/java/com/hbm/inventory/fluid/types/RadioactiveFluid.java @@ -0,0 +1,27 @@ +package com.hbm.inventory.fluid.types; + +import com.hbm.handler.radiation.ChunkRadiationManager; +import com.hbm.inventory.FluidTank; +import com.hbm.inventory.fluid.FluidType; +import com.hbm.render.util.EnumSymbol; + +import net.minecraft.world.World; + +public class RadioactiveFluid extends FluidType { + + float radPerMB = 0; + + public RadioactiveFluid(String name, int color, int p, int f, int r, EnumSymbol symbol) { + super(name, color, p, f, r, symbol); + } + + public RadioactiveFluid setRadiation(float rad) { + this.radPerMB = rad; + return this; + } + + @Override + public void onFluidRelease(World world, int x, int y, int z, FluidTank tank, int overflowAmount) { + ChunkRadiationManager.proxy.incrementRad(world, x, y, z, overflowAmount * radPerMB); + } +} diff --git a/src/main/java/com/hbm/inventory/fluid/types/RadioactiveGas.java b/src/main/java/com/hbm/inventory/fluid/types/RadioactiveGas.java index 9e7127205..e3b29124b 100644 --- a/src/main/java/com/hbm/inventory/fluid/types/RadioactiveGas.java +++ b/src/main/java/com/hbm/inventory/fluid/types/RadioactiveGas.java @@ -1,9 +1,8 @@ package com.hbm.inventory.fluid.types; -import com.hbm.inventory.fluid.FluidType; import com.hbm.render.util.EnumSymbol; -public class RadioactiveGas extends FluidType { +public class RadioactiveGas extends RadioactiveFluid { public RadioactiveGas(String name, int color, int p, int f, int r, EnumSymbol symbol) { super(name, color, p, f, r, symbol); diff --git a/src/main/java/com/hbm/inventory/fluid/types/RadioactiveLiquid.java b/src/main/java/com/hbm/inventory/fluid/types/RadioactiveLiquid.java index a5fa99234..f867ab9f0 100644 --- a/src/main/java/com/hbm/inventory/fluid/types/RadioactiveLiquid.java +++ b/src/main/java/com/hbm/inventory/fluid/types/RadioactiveLiquid.java @@ -1,9 +1,8 @@ package com.hbm.inventory.fluid.types; -import com.hbm.inventory.fluid.FluidType; import com.hbm.render.util.EnumSymbol; -public class RadioactiveLiquid extends FluidType { +public class RadioactiveLiquid extends RadioactiveFluid { public RadioactiveLiquid(String name, int color, int p, int f, int r, EnumSymbol symbol) { super(name, color, p, f, r, symbol); diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineGasFlare.java b/src/main/java/com/hbm/inventory/gui/GUIMachineGasFlare.java index 13e5012c8..e99ec94ec 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineGasFlare.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineGasFlare.java @@ -80,7 +80,7 @@ public class GUIMachineGasFlare extends GuiInfoContainer { if(flare.isOn) drawTexturedModalRect(guiLeft + 79, guiTop + 20, 176, 0, 35, 10); if(flare.doesBurn) drawTexturedModalRect(guiLeft + 79, guiTop + 54, 176, 10, 35, 14); - if(flare.isOn && flare.doesBurn && flare.tank.getTankType().traits.contains(FluidTrait.GASEOUS) && flare.tank.getTankType() instanceof FluidTypeFlammable) + if(flare.isOn && flare.doesBurn && flare.tank.getFill() > 0 && flare.tank.getTankType().traits.contains(FluidTrait.GASEOUS) && flare.tank.getTankType() instanceof FluidTypeFlammable) drawTexturedModalRect(guiLeft + 88, guiTop + 34, 176, 24, 18, 18); flare.tank.renderTank(guiLeft + 35, guiTop + 69, this.zLevel, 16, 52); diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java index 03af91116..faae99cec 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java @@ -265,7 +265,7 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModItems.part_carbon, 1), new AStack[] {new ComparableStack(ModItems.plate_polymer, 1), new OreDictStack(COAL.dust(), 1), },50); makeRecipe(new ComparableStack(ModItems.part_copper, 1), new AStack[] {new ComparableStack(ModItems.plate_polymer, 1), new OreDictStack(CU.dust(), 1), },50); makeRecipe(new ComparableStack(ModItems.part_plutonium, 1), new AStack[] {new ComparableStack(ModItems.plate_polymer, 1), new ComparableStack(ModItems.powder_plutonium, 1), },50); - makeRecipe(new ComparableStack(ModItems.thermo_element, 1), new AStack[] {new OreDictStack(STEEL.plate(), 2), new OreDictStack(IRON.plate(), 1), new OreDictStack(CU.plate(), 2), new ComparableStack(ModItems.wire_red_copper, 2), new ComparableStack(ModItems.wire_aluminium, 2), new OreDictStack(NETHERQUARTZ.dust(), 2), },150); + makeRecipe(new ComparableStack(ModItems.thermo_element, 1), new AStack[] {new OreDictStack(STEEL.plate(), 1), new ComparableStack(ModItems.wire_red_copper, 2), new ComparableStack(ModItems.wire_aluminium, 2), new OreDictStack(NETHERQUARTZ.dust(), 2), },150); makeRecipe(new ComparableStack(ModItems.limiter, 1), new AStack[] {new OreDictStack(STEEL.plate(), 3), new OreDictStack(IRON.plate(), 1), new ComparableStack(ModItems.circuit_copper, 2), new ComparableStack(ModItems.wire_copper, 4), },150); makeRecipe(new ComparableStack(ModItems.plate_dalekanium, 1), new AStack[] {new ComparableStack(ModBlocks.block_meteor, 1), },50); makeRecipe(new ComparableStack(ModBlocks.block_meteor, 1), new AStack[] {new ComparableStack(ModItems.fragment_meteorite, 100), },500); @@ -286,7 +286,7 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModBlocks.machine_shredder, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 2), new OreDictStack(STEEL.plate(), 4), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.wire_red_copper, 2), new ComparableStack(ModBlocks.steel_beam, 2), new ComparableStack(Blocks.iron_bars, 2), new ComparableStack(ModBlocks.red_wire_coated, 1), },200); makeRecipe(new ComparableStack(ModBlocks.machine_well, 1), new AStack[] {new ComparableStack(ModBlocks.steel_scaffold, 20), new ComparableStack(ModBlocks.steel_beam, 8), new ComparableStack(ModItems.tank_steel, 2), new ComparableStack(ModItems.motor, 1), new ComparableStack(ModItems.pipes_steel, 3), new ComparableStack(ModItems.drill_titanium, 1), new ComparableStack(ModItems.wire_red_copper, 6), },250); makeRecipe(new ComparableStack(ModBlocks.machine_pumpjack, 1), new AStack[] {new ComparableStack(ModBlocks.steel_scaffold, 8), new OreDictStack(STEEL.block(), 8), new ComparableStack(ModItems.pipes_steel, 4), new ComparableStack(ModItems.tank_steel, 4), new OreDictStack(STEEL.ingot(), 24), new OreDictStack(STEEL.plate(), 16), new OreDictStack(AL.plate(), 6), new ComparableStack(ModItems.drill_titanium, 1), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.wire_red_copper, 8), },400); - makeRecipe(new ComparableStack(ModBlocks.machine_flare, 1), new AStack[] {new ComparableStack(ModBlocks.steel_scaffold, 28), new ComparableStack(ModItems.tank_steel, 2), new ComparableStack(ModItems.pipes_steel, 2), new ComparableStack(ModItems.hull_small_steel, 1), new ComparableStack(ModItems.thermo_element, 3), },200); + makeRecipe(new ComparableStack(ModBlocks.machine_flare, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 8), new OreDictStack(CU.plate(), 4), new ComparableStack(ModItems.tank_steel, 1), new ComparableStack(ModBlocks.deco_pipe_quad, 8), new ComparableStack(ModItems.hull_small_steel, 4), new ComparableStack(ModItems.thermo_element, 3), },200); makeRecipe(new ComparableStack(ModBlocks.machine_refinery, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 16), new OreDictStack(STEEL.plate(), 20), new OreDictStack(CU.plate(), 16), new ComparableStack(ModItems.hull_big_steel, 6), new ComparableStack(ModItems.pipes_steel, 2), new ComparableStack(ModItems.coil_tungsten, 8), new ComparableStack(ModItems.wire_red_copper, 8), new ComparableStack(ModItems.circuit_copper, 2), new ComparableStack(ModItems.circuit_red_copper, 1), new ComparableStack(ModItems.plate_polymer, 8), },350); makeRecipe(new ComparableStack(ModBlocks.machine_epress, 1), new AStack[] {new OreDictStack(STEEL.plate(), 8), new ComparableStack(ModItems.plate_polymer, 4), new ComparableStack(ModItems.pipes_steel, 1), new ComparableStack(ModItems.bolt_tungsten, 4), new ComparableStack(ModItems.coil_copper, 2), new ComparableStack(ModItems.motor, 1), new ComparableStack(ModItems.circuit_copper, 1), new ComparableStack(ModItems.canister_full, 1, Fluids.LUBRICANT.getID()), },160); makeRecipe(new ComparableStack(ModBlocks.machine_chemplant, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 8), new OreDictStack(CU.plate(), 6), new ComparableStack(ModItems.tank_steel, 4), new ComparableStack(ModItems.hull_big_steel, 1), new ComparableStack(ModItems.coil_tungsten, 3), new ComparableStack(ModItems.circuit_copper, 2), new ComparableStack(ModItems.circuit_red_copper, 1), new ComparableStack(ModItems.plate_polymer, 8), },200); diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 6ca190d5c..a345169e1 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -4980,13 +4980,12 @@ public class ModItems { ArmorMaterial aMatDiesel = EnumHelper.addArmorMaterial("HBM_BNUUY", 150, new int[] { 3, 8, 6, 3 }, 0); aMatDiesel.customCraftingMaterial = ModItems.plate_copper; - dieselsuit_helmet = new ArmorDiesel(aMatDiesel, 2, 0, RefStrings.MODID + ":textures/armor/starmetal_1.png", Fluids.DIESEL, 360000, 500, 50, 1).setThreshold(5F).setMod(0.8F) - .setHasHardLanding(true) - .addEffect(new PotionEffect(Potion.digSpeed.id, 20, 4)) - .setBlastProtection(0.5F) - .addResistance("monoxide", 0F) + dieselsuit_helmet = new ArmorDiesel(aMatDiesel, 2, 0, RefStrings.MODID + ":textures/armor/starmetal_1.png", Fluids.DIESEL, 360000, 500, 50, 1).setThreshold(2F).setMod(0.7F) + .addEffect(new PotionEffect(Potion.moveSpeed.id, 20, 2)) + .addEffect(new PotionEffect(Potion.jump.id, 20, 2)) + .enableThermalSight(true) + .enableVATS(true) .addResistance("fall", 0) - .hides(EnumPlayerPart.HAT) .setUnlocalizedName("dieselsuit_helmet").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":dieselsuit_helmet"); dieselsuit_plate = new ArmorDiesel(aMatDiesel, 2, 1, RefStrings.MODID + ":textures/armor/starmetal_1.png", Fluids.DIESEL, 360000, 500, 50, 1).cloneStats((ArmorFSB) dieselsuit_helmet).setUnlocalizedName("dieselsuit_plate").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":dieselsuit_plate"); dieselsuit_legs = new ArmorDiesel(aMatDiesel, 2, 2, RefStrings.MODID + ":textures/armor/starmetal_2.png", Fluids.DIESEL, 360000, 500, 50, 1).cloneStats((ArmorFSB) dieselsuit_helmet).setUnlocalizedName("dieselsuit_legs").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":dieselsuit_legs"); @@ -7916,6 +7915,10 @@ public class ModItems { GameRegistry.registerItem(steamsuit_plate, steamsuit_plate.getUnlocalizedName()); GameRegistry.registerItem(steamsuit_legs, steamsuit_legs.getUnlocalizedName()); GameRegistry.registerItem(steamsuit_boots, steamsuit_boots.getUnlocalizedName()); + GameRegistry.registerItem(dieselsuit_helmet, dieselsuit_helmet.getUnlocalizedName()); + GameRegistry.registerItem(dieselsuit_plate, dieselsuit_plate.getUnlocalizedName()); + GameRegistry.registerItem(dieselsuit_legs, dieselsuit_legs.getUnlocalizedName()); + GameRegistry.registerItem(dieselsuit_boots, dieselsuit_boots.getUnlocalizedName()); GameRegistry.registerItem(t45_helmet, t45_helmet.getUnlocalizedName()); GameRegistry.registerItem(t45_plate, t45_plate.getUnlocalizedName()); GameRegistry.registerItem(t45_legs, t45_legs.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/armor/ArmorAsbestos.java b/src/main/java/com/hbm/items/armor/ArmorAsbestos.java index b0933fdd2..f2b750cec 100644 --- a/src/main/java/com/hbm/items/armor/ArmorAsbestos.java +++ b/src/main/java/com/hbm/items/armor/ArmorAsbestos.java @@ -24,29 +24,29 @@ import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; public class ArmorAsbestos extends ItemArmor implements ISpecialArmor { - + private ResourceLocation asbestosBlur = new ResourceLocation(RefStrings.MODID + ":textures/misc/overlay_asbestos.png"); - + public ArmorAsbestos(ArmorMaterial armorMaterial, int renderIndex, int armorType) { super(armorMaterial, renderIndex, armorType); } - + @Override public String getArmorTexture(ItemStack stack, Entity entity, int slot, String layer) { if(stack.getItem().equals(ModItems.asbestos_helmet) || stack.getItem().equals(ModItems.asbestos_plate) || stack.getItem().equals(ModItems.asbestos_boots)) { - return (RefStrings.MODID + ":textures/armor/asbestos_1.png"); + return(RefStrings.MODID + ":textures/armor/asbestos_1.png"); } if(stack.getItem().equals(ModItems.asbestos_legs)) { - return (RefStrings.MODID + ":textures/armor/asbestos_2.png"); + return(RefStrings.MODID + ":textures/armor/asbestos_2.png"); } - - else return null; + + else + return null; } @Override public ArmorProperties getProperties(EntityLivingBase player, ItemStack armor, DamageSource source, double damage, int slot) { - if(source.isFireDamage()) - { + if(source.isFireDamage()) { return new ArmorProperties(1, 1, MathHelper.floor_double(999999999)); } return new ArmorProperties(0, 0, 0); @@ -54,20 +54,16 @@ public class ArmorAsbestos extends ItemArmor implements ISpecialArmor { @Override public int getArmorDisplay(EntityPlayer player, ItemStack armor, int slot) { - if(slot == 0) - { + if(slot == 0) { return 3; } - if(slot == 1) - { + if(slot == 1) { return 8; } - if(slot == 2) - { + if(slot == 2) { return 6; } - if(slot == 3) - { + if(slot == 3) { return 3; } return 0; @@ -76,39 +72,39 @@ public class ArmorAsbestos extends ItemArmor implements ISpecialArmor { @Override public void damageArmor(EntityLivingBase entity, ItemStack stack, DamageSource source, int damage, int slot) { stack.damageItem(damage * 1, entity); - + } - + @Override public void onArmorTick(World world, EntityPlayer player, ItemStack armor) { - - player.extinguish(); - } - - @SideOnly(Side.CLIENT) - public void renderHelmetOverlay(ItemStack stack, EntityPlayer player, ScaledResolution resolution, float partialTicks, boolean hasScreen, int mouseX, int mouseY){ - - if(this != ModItems.asbestos_helmet) - return; - - GL11.glDisable(GL11.GL_DEPTH_TEST); - GL11.glDepthMask(false); - OpenGlHelper.glBlendFunc(770, 771, 1, 0); - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - GL11.glDisable(GL11.GL_ALPHA_TEST); - Minecraft.getMinecraft().getTextureManager().bindTexture(asbestosBlur); - Tessellator tessellator = Tessellator.instance; - tessellator.startDrawingQuads(); - tessellator.addVertexWithUV(0.0D, (double)resolution.getScaledHeight(), -90.0D, 0.0D, 1.0D); - tessellator.addVertexWithUV((double)resolution.getScaledWidth(), (double)resolution.getScaledHeight(), -90.0D, 1.0D, 1.0D); - tessellator.addVertexWithUV((double)resolution.getScaledWidth(), 0.0D, -90.0D, 1.0D, 0.0D); - tessellator.addVertexWithUV(0.0D, 0.0D, -90.0D, 0.0D, 0.0D); - tessellator.draw(); - GL11.glDepthMask(true); - GL11.glEnable(GL11.GL_DEPTH_TEST); - GL11.glEnable(GL11.GL_ALPHA_TEST); - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - } + player.extinguish(); + } + + @SideOnly(Side.CLIENT) + public void renderHelmetOverlay(ItemStack stack, EntityPlayer player, ScaledResolution resolution, float partialTicks, boolean hasScreen, int mouseX, int mouseY) { + + if(this != ModItems.asbestos_helmet) + return; + + GL11.glEnable(GL11.GL_BLEND); + GL11.glDisable(GL11.GL_DEPTH_TEST); + GL11.glDepthMask(false); + OpenGlHelper.glBlendFunc(770, 771, 1, 0); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + GL11.glDisable(GL11.GL_ALPHA_TEST); + Minecraft.getMinecraft().getTextureManager().bindTexture(asbestosBlur); + Tessellator tessellator = Tessellator.instance; + tessellator.startDrawingQuads(); + tessellator.addVertexWithUV(0.0D, (double) resolution.getScaledHeight(), -90.0D, 0.0D, 1.0D); + tessellator.addVertexWithUV((double) resolution.getScaledWidth(), (double) resolution.getScaledHeight(), -90.0D, 1.0D, 1.0D); + tessellator.addVertexWithUV((double) resolution.getScaledWidth(), 0.0D, -90.0D, 1.0D, 0.0D); + tessellator.addVertexWithUV(0.0D, 0.0D, -90.0D, 0.0D, 0.0D); + tessellator.draw(); + GL11.glDepthMask(true); + GL11.glEnable(GL11.GL_DEPTH_TEST); + GL11.glEnable(GL11.GL_ALPHA_TEST); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + } } diff --git a/src/main/java/com/hbm/items/armor/ArmorDiesel.java b/src/main/java/com/hbm/items/armor/ArmorDiesel.java index 46aa0bb0f..63d57cfc2 100644 --- a/src/main/java/com/hbm/items/armor/ArmorDiesel.java +++ b/src/main/java/com/hbm/items/armor/ArmorDiesel.java @@ -4,15 +4,22 @@ import com.google.common.collect.HashMultimap; import com.google.common.collect.Multimap; import com.hbm.handler.ArmorModHandler; import com.hbm.inventory.fluid.FluidType; -import com.hbm.render.model.ModelArmorDesh; +import com.hbm.items.ModItems; +import com.hbm.packet.AuxParticlePacketNT; +import com.hbm.packet.PacketDispatcher; +import com.hbm.render.model.ModelArmorDiesel; +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.model.ModelBiped; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.SharedMonsterAttributes; import net.minecraft.entity.ai.attributes.AttributeModifier; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.world.World; public class ArmorDiesel extends ArmorFSBFueled { @@ -29,19 +36,31 @@ public class ArmorDiesel extends ArmorFSBFueled { } @SideOnly(Side.CLIENT) - ModelArmorDesh[] models; + ModelArmorDiesel[] models; @Override @SideOnly(Side.CLIENT) public ModelBiped getArmorModel(EntityLivingBase entityLiving, ItemStack itemStack, int armorSlot) { if(models == null) { - models = new ModelArmorDesh[4]; + models = new ModelArmorDiesel[4]; for(int i = 0; i < 4; i++) - models[i] = new ModelArmorDesh(i); + models[i] = new ModelArmorDiesel(i); } return models[armorSlot]; } + + @Override + public void onArmorTick(World world, EntityPlayer player, ItemStack stack) { + super.onArmorTick(world, player, stack); + + if(this == ModItems.dieselsuit_legs && this.hasFSBArmor(player) && world.getTotalWorldTime() % 3 == 0) { + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "bnuuy"); + data.setInteger("player", player.getEntityId()); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, player.posX, player.posY, player.posZ), new TargetPoint(world.provider.dimensionId, player.posX, player.posY, player.posZ, 100)); + } + } } diff --git a/src/main/java/com/hbm/items/armor/ArmorFSB.java b/src/main/java/com/hbm/items/armor/ArmorFSB.java index 95d5e5604..b6d38e212 100644 --- a/src/main/java/com/hbm/items/armor/ArmorFSB.java +++ b/src/main/java/com/hbm/items/armor/ArmorFSB.java @@ -614,6 +614,7 @@ public class ArmorFSB extends ItemArmor implements IArmorDisableModel { if(overlay == null) return; + GL11.glEnable(GL11.GL_BLEND); GL11.glDisable(GL11.GL_DEPTH_TEST); GL11.glDepthMask(false); OpenGlHelper.glBlendFunc(770, 771, 1, 0); diff --git a/src/main/java/com/hbm/items/armor/ArmorGasMask.java b/src/main/java/com/hbm/items/armor/ArmorGasMask.java index ea7021df9..7e0b7e20b 100644 --- a/src/main/java/com/hbm/items/armor/ArmorGasMask.java +++ b/src/main/java/com/hbm/items/armor/ArmorGasMask.java @@ -123,7 +123,8 @@ public class ArmorGasMask extends ItemArmor implements IGasMask { return; Minecraft.getMinecraft().getTextureManager().bindTexture(tex); - + + GL11.glEnable(GL11.GL_BLEND); GL11.glDisable(GL11.GL_DEPTH_TEST); GL11.glDepthMask(false); OpenGlHelper.glBlendFunc(770, 771, 1, 0); diff --git a/src/main/java/com/hbm/items/armor/ArmorHEV.java b/src/main/java/com/hbm/items/armor/ArmorHEV.java index 86b76f419..f0c3dfddf 100644 --- a/src/main/java/com/hbm/items/armor/ArmorHEV.java +++ b/src/main/java/com/hbm/items/armor/ArmorHEV.java @@ -30,101 +30,101 @@ public class ArmorHEV extends ArmorFSBPowered { @Override @SideOnly(Side.CLIENT) public ModelBiped getArmorModel(EntityLivingBase entityLiving, ItemStack itemStack, int armorSlot) { - + if(models == null) { models = new ModelArmorHEV[4]; - + for(int i = 0; i < 4; i++) models[i] = new ModelArmorHEV(i); } - + return models[armorSlot]; } - - @SideOnly(Side.CLIENT) - @Override + + @SideOnly(Side.CLIENT) + @Override public void handleOverlay(RenderGameOverlayEvent.Pre event, EntityPlayer player) { - - if(this.hasFSBArmorIgnoreCharge(player)) { - - if(event.type == ElementType.ARMOR) { - event.setCanceled(true); - return; - } - - if(event.type == ElementType.HEALTH) { - event.setCanceled(true); - renderOverlay(event, player); - return; - } - } - } - + + if(this.hasFSBArmorIgnoreCharge(player)) { + + if(event.type == ElementType.ARMOR) { + event.setCanceled(true); + return; + } + + if(event.type == ElementType.HEALTH) { + event.setCanceled(true); + renderOverlay(event, player); + return; + } + } + } + private static long lastSurvey; private static float prevResult; private static float lastResult; - - private void renderOverlay(RenderGameOverlayEvent.Pre event, EntityPlayer player) { - + + private void renderOverlay(RenderGameOverlayEvent.Pre event, EntityPlayer player) { + float in = HbmLivingProps.getRadiation(player); - - float radiation = 0; - - radiation = lastResult - prevResult; - - if(System.currentTimeMillis() >= lastSurvey + 1000) { - lastSurvey = System.currentTimeMillis(); - prevResult = lastResult; - lastResult = in; - } + + float radiation = 0; + + radiation = lastResult - prevResult; + + if(System.currentTimeMillis() >= lastSurvey + 1000) { + lastSurvey = System.currentTimeMillis(); + prevResult = lastResult; + lastResult = in; + } GL11.glPushMatrix(); GL11.glEnable(GL11.GL_BLEND); - GL11.glDisable(GL11.GL_DEPTH_TEST); - GL11.glDepthMask(false); - OpenGlHelper.glBlendFunc(770, 771, 1, 0); - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - GL11.glDisable(GL11.GL_ALPHA_TEST); - - ScaledResolution res = event.resolution; - - double scale = 2D; - - GL11.glScaled(scale, scale, scale); - - int hX = (int)(8 / scale); - int hY = (int)((res.getScaledHeight() - 18 - 2) / scale); - + GL11.glDisable(GL11.GL_DEPTH_TEST); + GL11.glDepthMask(false); + OpenGlHelper.glBlendFunc(770, 771, 1, 0); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + GL11.glDisable(GL11.GL_ALPHA_TEST); + + ScaledResolution res = event.resolution; + + double scale = 2D; + + GL11.glScaled(scale, scale, scale); + + int hX = (int) (8 / scale); + int hY = (int) ((res.getScaledHeight() - 18 - 2) / scale); + int healthColor = player.getHealth() * 5 > 15 ? 0xff8000 : 0xff0000; - Minecraft.getMinecraft().fontRenderer.drawString("+" + (int)(player.getHealth() * 5), hX, hY, healthColor); - + Minecraft.getMinecraft().fontRenderer.drawString("+" + (int) (player.getHealth() * 5), hX, hY, healthColor); + double c = 0D; - + for(int i = 0; i < 4; i++) { - + ItemStack armor = player.inventory.armorInventory[i]; - ArmorFSBPowered item = ((ArmorFSBPowered)player.inventory.armorInventory[i].getItem()); - - c += (double)item.getCharge(armor) / (double)item.getMaxCharge(); + ArmorFSBPowered item = ((ArmorFSBPowered) player.inventory.armorInventory[i].getItem()); + + c += (double) item.getCharge(armor) / (double) item.getMaxCharge(); } - - int aX = (int)(70 / scale); - int aY = (int)((res.getScaledHeight() - 18 - 2) / scale); - + + int aX = (int) (70 / scale); + int aY = (int) ((res.getScaledHeight() - 18 - 2) / scale); + int armorColor = c * 25 > 15 ? 0xff8000 : 0xff0000; - Minecraft.getMinecraft().fontRenderer.drawString("||" + (int)(c * 25), aX, aY, armorColor); - + Minecraft.getMinecraft().fontRenderer.drawString("||" + (int) (c * 25), aX, aY, armorColor); + String rad = "☢ ["; - + for(int i = 0; i < 10; i++) { - + if(in / 100 > i) { - - int mid = (int)(in - i * 100); - + + int mid = (int) (in - i * 100); + if(mid < 33) rad += ".."; else if(mid < 67) @@ -135,43 +135,43 @@ public class ArmorHEV extends ArmorFSBPowered { rad += " "; } } - + rad += "]"; - - int rX = (int)(8 / scale); - int rY = (int)((res.getScaledHeight() - 40) / scale); - + + int rX = (int) (8 / scale); + int rY = (int) ((res.getScaledHeight() - 40) / scale); + int radColor = in < 800 ? 0xff8000 : 0xff0000; Minecraft.getMinecraft().fontRenderer.drawString(rad, rX, rY, radColor); - - GL11.glScaled(1/scale, 1/scale, 1/scale); - - scale = 1D; - - GL11.glScaled(scale, scale, scale); - - if(radiation > 0) { - - int dX = (int)(32 / scale); - int dY = (int)((res.getScaledHeight() - 55) / scale); - + + GL11.glScaled(1 / scale, 1 / scale, 1 / scale); + + scale = 1D; + + GL11.glScaled(scale, scale, scale); + + if(radiation > 0) { + + int dX = (int) (32 / scale); + int dY = (int) ((res.getScaledHeight() - 55) / scale); + String delta = "" + Math.round(radiation); - + if(radiation > 1000) delta = ">1000"; else if(radiation < 1) delta = "<1"; - + Minecraft.getMinecraft().fontRenderer.drawString(delta + " RAD/s", dX, dY, 0xFF0000); - } - + } + GL11.glColor4f(1F, 1F, 1F, 1F); - GL11.glEnable(GL11.GL_DEPTH_TEST); - GL11.glDepthMask(true); - GL11.glPopMatrix(); - + GL11.glEnable(GL11.GL_DEPTH_TEST); + GL11.glDepthMask(true); + GL11.glPopMatrix(); + Minecraft.getMinecraft().renderEngine.bindTexture(Gui.icons); - } + } } diff --git a/src/main/java/com/hbm/items/armor/ArmorHazmat.java b/src/main/java/com/hbm/items/armor/ArmorHazmat.java index 345223b8f..5ef7f722f 100644 --- a/src/main/java/com/hbm/items/armor/ArmorHazmat.java +++ b/src/main/java/com/hbm/items/armor/ArmorHazmat.java @@ -29,6 +29,7 @@ public class ArmorHazmat extends ArmorFSB { if(this != ModItems.hazmat_helmet && this != ModItems.hazmat_paa_helmet) return; + GL11.glEnable(GL11.GL_BLEND); GL11.glDisable(GL11.GL_DEPTH_TEST); GL11.glDepthMask(false); OpenGlHelper.glBlendFunc(770, 771, 1, 0); diff --git a/src/main/java/com/hbm/items/armor/ArmorLiquidator.java b/src/main/java/com/hbm/items/armor/ArmorLiquidator.java index bc321981e..6fa2b3ffe 100644 --- a/src/main/java/com/hbm/items/armor/ArmorLiquidator.java +++ b/src/main/java/com/hbm/items/armor/ArmorLiquidator.java @@ -60,6 +60,7 @@ public class ArmorLiquidator extends ArmorFSB { @SideOnly(Side.CLIENT) public void renderHelmetOverlay(ItemStack stack, EntityPlayer player, ScaledResolution resolution, float partialTicks, boolean hasScreen, int mouseX, int mouseY) { + GL11.glEnable(GL11.GL_BLEND); GL11.glDisable(GL11.GL_DEPTH_TEST); GL11.glDepthMask(false); OpenGlHelper.glBlendFunc(770, 771, 1, 0); diff --git a/src/main/java/com/hbm/items/armor/ArmorModel.java b/src/main/java/com/hbm/items/armor/ArmorModel.java index 8e06c78b9..64625fc77 100644 --- a/src/main/java/com/hbm/items/armor/ArmorModel.java +++ b/src/main/java/com/hbm/items/armor/ArmorModel.java @@ -28,9 +28,10 @@ import net.minecraft.item.ItemStack; import net.minecraft.util.ResourceLocation; @Spaghetti("more ctor stuff, less if/else bullshittery") -//turns out you can't actually pass a model in the ctor because ModelBiped is clientonly... +// turns out you can't actually pass a model in the ctor because ModelBiped is +// clientonly... public class ArmorModel extends ItemArmor { - + @SideOnly(Side.CLIENT) private ModelGoggles modelGoggles; @SideOnly(Side.CLIENT) @@ -56,33 +57,33 @@ public class ArmorModel extends ItemArmor { @Override @SideOnly(Side.CLIENT) public ModelBiped getArmorModel(EntityLivingBase entityLiving, ItemStack itemStack, int armorSlot) { - if (this == ModItems.goggles) { - if (armorSlot == 0) { - if (this.modelGoggles == null) { + if(this == ModItems.goggles) { + if(armorSlot == 0) { + if(this.modelGoggles == null) { this.modelGoggles = new ModelGoggles(); } return this.modelGoggles; } } - if (this == ModItems.oxy_mask) { - if (armorSlot == 0) { - if (this.modelOxy == null) { + if(this == ModItems.oxy_mask) { + if(armorSlot == 0) { + if(this.modelOxy == null) { this.modelOxy = new ModelOxygenMask(); } return this.modelOxy; } } - if (this == ModItems.hat) { - if (armorSlot == 0) { - if (this.modelHat == null) { + if(this == ModItems.hat) { + if(armorSlot == 0) { + if(this.modelHat == null) { this.modelHat = new ModelHat(0); } return this.modelHat; } } - if (this == ModItems.cape_test || this == ModItems.cape_radiation || this == ModItems.cape_gasmask || this == ModItems.cape_schrabidium || this == ModItems.cape_hidden) { - if (armorSlot == 1) { - if (this.modelCloak == null) { + if(this == ModItems.cape_test || this == ModItems.cape_radiation || this == ModItems.cape_gasmask || this == ModItems.cape_schrabidium || this == ModItems.cape_hidden) { + if(armorSlot == 1) { + if(this.modelCloak == null) { this.modelCloak = new ModelCloak(); } return this.modelCloak; @@ -93,42 +94,43 @@ public class ArmorModel extends ItemArmor { @Override public String getArmorTexture(ItemStack stack, Entity entity, int slot, String type) { - if (stack.getItem() == ModItems.goggles) { + if(stack.getItem() == ModItems.goggles) { return "hbm:textures/models/Goggles.png"; } - if (stack.getItem() == ModItems.oxy_mask) { + if(stack.getItem() == ModItems.oxy_mask) { return null; } - if (stack.getItem() == ModItems.cape_test) { + if(stack.getItem() == ModItems.cape_test) { return "hbm:textures/models/TestCape.png"; } - if (stack.getItem() == ModItems.cape_radiation) { + if(stack.getItem() == ModItems.cape_radiation) { return "hbm:textures/models/capes/CapeRadiation.png"; } - if (stack.getItem() == ModItems.cape_gasmask) { + if(stack.getItem() == ModItems.cape_gasmask) { return "hbm:textures/models/capes/CapeGasMask.png"; } - if (stack.getItem() == ModItems.cape_schrabidium) { + if(stack.getItem() == ModItems.cape_schrabidium) { return "hbm:textures/models/capes/CapeSchrabidium.png"; } - if (stack.getItem() == ModItems.cape_hidden) { + if(stack.getItem() == ModItems.cape_hidden) { return "hbm:textures/models/capes/CapeHidden.png"; } - + return "hbm:textures/models/capes/CapeUnknown.png"; } - - @SideOnly(Side.CLIENT) - public void renderHelmetOverlay(ItemStack stack, EntityPlayer player, ScaledResolution resolution, float partialTicks, boolean hasScreen, int mouseX, int mouseY){ - - if(this != ModItems.goggles && this != ModItems.hazmat_helmet_red && this != ModItems.hazmat_helmet_grey) - return; - GL11.glDisable(GL11.GL_DEPTH_TEST); - GL11.glDepthMask(false); - OpenGlHelper.glBlendFunc(770, 771, 1, 0); - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - GL11.glDisable(GL11.GL_ALPHA_TEST); + @SideOnly(Side.CLIENT) + public void renderHelmetOverlay(ItemStack stack, EntityPlayer player, ScaledResolution resolution, float partialTicks, boolean hasScreen, int mouseX, int mouseY) { + + if(this != ModItems.goggles && this != ModItems.hazmat_helmet_red && this != ModItems.hazmat_helmet_grey) + return; + + GL11.glEnable(GL11.GL_BLEND); + GL11.glDisable(GL11.GL_DEPTH_TEST); + GL11.glDepthMask(false); + OpenGlHelper.glBlendFunc(770, 771, 1, 0); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + GL11.glDisable(GL11.GL_ALPHA_TEST); switch((int) ((double) stack.getItemDamage() / (double) stack.getMaxDamage() * 6D)) { case 0: Minecraft.getMinecraft().getTextureManager().bindTexture(goggleBlur0); @@ -152,19 +154,19 @@ public class ArmorModel extends ItemArmor { Minecraft.getMinecraft().getTextureManager().bindTexture(goggleBlur5); break; } - - Tessellator tessellator = Tessellator.instance; - tessellator.startDrawingQuads(); - tessellator.addVertexWithUV(0.0D, (double)resolution.getScaledHeight(), -90.0D, 0.0D, 1.0D); - tessellator.addVertexWithUV((double)resolution.getScaledWidth(), (double)resolution.getScaledHeight(), -90.0D, 1.0D, 1.0D); - tessellator.addVertexWithUV((double)resolution.getScaledWidth(), 0.0D, -90.0D, 1.0D, 0.0D); - tessellator.addVertexWithUV(0.0D, 0.0D, -90.0D, 0.0D, 0.0D); - tessellator.draw(); - GL11.glDepthMask(true); - GL11.glEnable(GL11.GL_DEPTH_TEST); - GL11.glEnable(GL11.GL_ALPHA_TEST); - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - } + + Tessellator tessellator = Tessellator.instance; + tessellator.startDrawingQuads(); + tessellator.addVertexWithUV(0.0D, (double) resolution.getScaledHeight(), -90.0D, 0.0D, 1.0D); + tessellator.addVertexWithUV((double) resolution.getScaledWidth(), (double) resolution.getScaledHeight(), -90.0D, 1.0D, 1.0D); + tessellator.addVertexWithUV((double) resolution.getScaledWidth(), 0.0D, -90.0D, 1.0D, 0.0D); + tessellator.addVertexWithUV(0.0D, 0.0D, -90.0D, 0.0D, 0.0D); + tessellator.draw(); + GL11.glDepthMask(true); + GL11.glEnable(GL11.GL_DEPTH_TEST); + GL11.glEnable(GL11.GL_ALPHA_TEST); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + } @Override public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index 6bdd8b90e..89bfb0072 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -1106,8 +1106,18 @@ public class ClientProxy extends ServerProxy { ReflectionHelper.setPrivateValue(EntityFX.class, fx, 10 + rand.nextInt(20), "particleMaxAge", "field_70547_e"); } - if(fx != null) + if(fx != null) { + + if(data.getBoolean("noclip")) { + fx.noClip = true; + } + + if(data.getInteger("overrideAge") > 0) { + ReflectionHelper.setPrivateValue(EntityFX.class, fx, data.getInteger("overrideAge"), "particleMaxAge", "field_70547_e"); + } + Minecraft.getMinecraft().effectRenderer.addEffect(fx); + } } if("vanilla".equals(type)) { @@ -1199,6 +1209,47 @@ public class ClientProxy extends ServerProxy { } } + if("bnuuy".equals(type)) { + + if(particleSetting == 2) + return; + + Entity ent = world.getEntityByID(data.getInteger("player")); + + if(ent instanceof EntityPlayer) { + + EntityPlayer p = (EntityPlayer)ent; + + Vec3 vec = Vec3.createVectorHelper(0, 0, -0.6); + Vec3 offset = Vec3.createVectorHelper(0.275, 0, 0); + float angle = (float) -Math.toRadians(p.rotationYawHead - (p.rotationYawHead - p.renderYawOffset)); + + vec.rotateAroundY(angle); + offset.rotateAroundY(angle); + + double ix = p.posX + vec.xCoord; + double iy = p.posY + p.eyeHeight - 1 + 0.4; + double iz = p.posZ + vec.zCoord; + double ox = offset.xCoord; + double oz = offset.zCoord; + + vec = vec.normalize(); + double mult = 0.025D; + double mX = vec.xCoord * mult; + double mZ = vec.zCoord * mult; + + //Minecraft.getMinecraft().effectRenderer.addEffect(new EntityFlameFX(world, ix + ox, iy, iz + oz, 0, 0, 0)); + //Minecraft.getMinecraft().effectRenderer.addEffect(new EntityFlameFX(world, ix - ox, iy, iz - oz, 0, 0, 0)); + + for(int i = 0; i < 2; i++) { + net.minecraft.client.particle.EntitySmokeFX fx = new net.minecraft.client.particle.EntitySmokeFX(world, ix + ox * (i == 0 ? -1 : 1), iy, iz + oz * (i == 0 ? -1 : 1), mX, 0, mZ); + float scale = 0.5F; + ReflectionHelper.setPrivateValue(net.minecraft.client.particle.EntitySmokeFX.class, (net.minecraft.client.particle.EntitySmokeFX)fx, scale, "smokeParticleScale", "field_70587_a"); + Minecraft.getMinecraft().effectRenderer.addEffect(fx); + } + } + } + if("jetpack_bj".equals(type)) { if(particleSetting == 2) diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index d286cd492..bb63159dc 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -661,6 +661,7 @@ public class ResourceManager { public static final IModelCustom armor_fau = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/armor/fau.obj")); public static final IModelCustom armor_dnt = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/armor/dnt.obj")); public static final IModelCustom armor_steamsuit = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/armor/steamsuit.obj")); + public static final IModelCustom armor_dieselsuit = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/armor/bnuuy.obj")); public static final IModelCustom armor_remnant = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/armor/remnant.obj")); public static final IModelCustom armor_bismuth = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/armor/bismuth.obj")); public static final IModelCustom armor_mod_tesla = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/armor/mod_tesla.obj")); @@ -778,6 +779,11 @@ public class ResourceManager { public static final ResourceLocation steamsuit_chest = new ResourceLocation(RefStrings.MODID, "textures/armor/steamsuit_chest.png"); public static final ResourceLocation steamsuit_arm = new ResourceLocation(RefStrings.MODID, "textures/armor/steamsuit_arm.png"); + public static final ResourceLocation dieselsuit_helmet = new ResourceLocation(RefStrings.MODID, "textures/armor/bnuuy_helmet.png"); + public static final ResourceLocation dieselsuit_leg = new ResourceLocation(RefStrings.MODID, "textures/armor/bnuuy_leg.png"); + public static final ResourceLocation dieselsuit_chest = new ResourceLocation(RefStrings.MODID, "textures/armor/bnuuy_chest.png"); + public static final ResourceLocation dieselsuit_arm = new ResourceLocation(RefStrings.MODID, "textures/armor/bnuuy_arm.png"); + public static final ResourceLocation rpa_helmet = new ResourceLocation(RefStrings.MODID, "textures/armor/rpa_helmet.png"); public static final ResourceLocation rpa_leg = new ResourceLocation(RefStrings.MODID, "textures/armor/rpa_leg.png"); public static final ResourceLocation rpa_chest = new ResourceLocation(RefStrings.MODID, "textures/armor/rpa_chest.png"); diff --git a/src/main/java/com/hbm/render/model/ModelArmorDiesel.java b/src/main/java/com/hbm/render/model/ModelArmorDiesel.java new file mode 100644 index 000000000..9ccb36b65 --- /dev/null +++ b/src/main/java/com/hbm/render/model/ModelArmorDiesel.java @@ -0,0 +1,58 @@ +package com.hbm.render.model; + +import org.lwjgl.opengl.GL11; + +import com.hbm.main.ResourceManager; +import com.hbm.render.loader.ModelRendererObj; + +import net.minecraft.entity.Entity; + +public class ModelArmorDiesel extends ModelArmorBase { + + public ModelArmorDiesel(int type) { + super(type); + + head = new ModelRendererObj(ResourceManager.armor_dieselsuit, "Head"); + body = new ModelRendererObj(ResourceManager.armor_dieselsuit, "Body"); + leftArm = new ModelRendererObj(ResourceManager.armor_dieselsuit, "LeftArm").setRotationPoint(-5.0F, 2.0F, 0.0F); + rightArm = new ModelRendererObj(ResourceManager.armor_dieselsuit, "RightArm").setRotationPoint(5.0F, 2.0F, 0.0F); + leftLeg = new ModelRendererObj(ResourceManager.armor_dieselsuit, "LeftLeg").setRotationPoint(1.9F, 12.0F, 0.0F); + rightLeg = new ModelRendererObj(ResourceManager.armor_dieselsuit, "RightLeg").setRotationPoint(-1.9F, 12.0F, 0.0F); + leftFoot = new ModelRendererObj(ResourceManager.armor_dieselsuit, "LeftBoot").setRotationPoint(1.9F, 12.0F, 0.0F); + rightFoot = new ModelRendererObj(ResourceManager.armor_dieselsuit, "RightBoot").setRotationPoint(-1.9F, 12.0F, 0.0F); + } + + @Override + public void render(Entity par1Entity, float par2, float par3, float par4, float par5, float par6, float par7) { + + setRotationAngles(par2, par3, par4, par5, par6, par7, par1Entity); + + GL11.glPushMatrix(); + GL11.glShadeModel(GL11.GL_SMOOTH); + + if(type == 0) { + bindTexture(ResourceManager.dieselsuit_helmet); + head.render(par7); + } + if(type == 1) { + bindTexture(ResourceManager.dieselsuit_chest); + body.render(par7); + bindTexture(ResourceManager.dieselsuit_arm); + leftArm.render(par7); + rightArm.render(par7); + } + if(type == 2) { + bindTexture(ResourceManager.dieselsuit_leg); + leftLeg.render(par7); + rightLeg.render(par7); + } + if(type == 3) { + bindTexture(ResourceManager.dieselsuit_leg); + leftFoot.render(par7); + rightFoot.render(par7); + } + + GL11.glShadeModel(GL11.GL_FLAT); + GL11.glPopMatrix(); + } +} diff --git a/src/main/java/com/hbm/render/util/RenderInfoSystem.java b/src/main/java/com/hbm/render/util/RenderInfoSystem.java index 97182475b..cf82bcebf 100644 --- a/src/main/java/com/hbm/render/util/RenderInfoSystem.java +++ b/src/main/java/com/hbm/render/util/RenderInfoSystem.java @@ -81,14 +81,16 @@ public class RenderInfoSystem { int height = messages.size() * 10 + pZ + 2; int z = 0; + GL11.glDisable(GL11.GL_TEXTURE_2D); Tessellator tess = Tessellator.instance; tess.startDrawingQuads(); - tess.setColorRGBA_F(0.5F, 0.5F, 0.5F, 0.5F); + tess.setColorRGBA_F(0.25F, 0.25F, 0.25F, 0.5F); tess.addVertex(pX - 5, pZ - 5, z); tess.addVertex(pX - 5, height, z); tess.addVertex(side, height, z); tess.addVertex(side, pZ - 5, z); tess.draw(); + GL11.glEnable(GL11.GL_TEXTURE_2D); int off = 0; long now = System.currentTimeMillis(); diff --git a/src/main/java/com/hbm/sound/AudioDynamic.java b/src/main/java/com/hbm/sound/AudioDynamic.java index 6666ee9e5..8bc976d0d 100644 --- a/src/main/java/com/hbm/sound/AudioDynamic.java +++ b/src/main/java/com/hbm/sound/AudioDynamic.java @@ -59,4 +59,8 @@ public class AudioDynamic extends MovingSound { public float func(float f, float v) { return (f / v) * -2 + 2; } + + public boolean isPlaying() { + return Minecraft.getMinecraft().getSoundHandler().isSoundPlaying(this); + } } diff --git a/src/main/java/com/hbm/sound/AudioWrapper.java b/src/main/java/com/hbm/sound/AudioWrapper.java index 0028c8239..9c99bf096 100644 --- a/src/main/java/com/hbm/sound/AudioWrapper.java +++ b/src/main/java/com/hbm/sound/AudioWrapper.java @@ -17,5 +17,6 @@ public class AudioWrapper { public void startSound() { } public void stopSound() { } - + + public boolean isPlaying() { return false; } } diff --git a/src/main/java/com/hbm/sound/AudioWrapperClient.java b/src/main/java/com/hbm/sound/AudioWrapperClient.java index 91a989799..34a72dc06 100644 --- a/src/main/java/com/hbm/sound/AudioWrapperClient.java +++ b/src/main/java/com/hbm/sound/AudioWrapperClient.java @@ -14,41 +14,52 @@ public class AudioWrapperClient extends AudioWrapper { sound = new AudioDynamic(source); } + @Override public void updatePosition(float x, float y, float z) { if(sound != null) sound.setPosition(x, y, z); } - + + @Override public void updateVolume(float volume) { if(sound != null) sound.setVolume(volume); } - + + @Override public void updatePitch(float pitch) { if(sound != null) sound.setPitch(pitch); } - + + @Override public float getVolume() { if(sound != null) return sound.getVolume(); return 1; } - + + @Override public float getPitch() { if(sound != null) return sound.getPitch(); return 1; } - + + @Override public void startSound() { if(sound != null) sound.start(); } - + + @Override public void stopSound() { if(sound != null) sound.stop(); } + @Override + public boolean isPlaying() { + return sound.isPlaying(); + } } diff --git a/src/main/java/com/hbm/tileentity/TileEntityMachineBase.java b/src/main/java/com/hbm/tileentity/TileEntityMachineBase.java index 1801c52b5..8a18ae3fe 100644 --- a/src/main/java/com/hbm/tileentity/TileEntityMachineBase.java +++ b/src/main/java/com/hbm/tileentity/TileEntityMachineBase.java @@ -4,6 +4,7 @@ import com.hbm.blocks.ModBlocks; import com.hbm.packet.AuxGaugePacket; import com.hbm.packet.NBTPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.sound.AudioWrapper; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.entity.player.EntityPlayer; @@ -216,4 +217,13 @@ public abstract class TileEntityMachineBase extends TileEntityLoadedBase impleme return Math.max(volume, 0); } + + public AudioWrapper createAudioLoop() { return null; } + + public AudioWrapper rebootAudio(AudioWrapper wrapper) { + wrapper.stopSound(); + AudioWrapper audio = createAudioLoop(); + audio.startSound(); + return audio; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCondenser.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCondenser.java index f47981b5c..71df52462 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCondenser.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCondenser.java @@ -40,8 +40,9 @@ public class TileEntityCondenser extends TileEntity implements IFluidAcceptor, I if(age >= 2) { age = 0; } - + this.tanks[0].updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); + this.tanks[1].updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); int convert = Math.min(tanks[0].getFill(), tanks[1].getMaxFill() - tanks[1].getFill()); tanks[0].setFill(tanks[0].getFill() - convert); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSchrabidiumTransmutator.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSchrabidiumTransmutator.java index 15fd0c992..d9118650f 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSchrabidiumTransmutator.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSchrabidiumTransmutator.java @@ -170,8 +170,10 @@ public class TileEntityMachineSchrabidiumTransmutator extends TileEntityMachineB if(process > 0) { if(audio == null) { - audio = MainRegistry.proxy.getLoopedSound("hbm:weapon.tauChargeLoop", xCoord, yCoord, zCoord, 1.0F, 1.0F); + audio = createAudioLoop(); audio.startSound(); + } else if(!audio.isPlaying()) { + audio = rebootAudio(audio); } } else { @@ -183,6 +185,10 @@ public class TileEntityMachineSchrabidiumTransmutator extends TileEntityMachineB } } + public AudioWrapper createAudioLoop() { + return MainRegistry.proxy.getLoopedSound("hbm:weapon.tauChargeLoop", xCoord, yCoord, zCoord, 1.0F, 1.0F); + } + private void updateConnections() { for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityStorageDrum.java b/src/main/java/com/hbm/tileentity/machine/TileEntityStorageDrum.java index 47c501437..dba776359 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityStorageDrum.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityStorageDrum.java @@ -4,7 +4,6 @@ import java.util.ArrayList; import java.util.List; import com.hbm.config.VersatileConfig; -import com.hbm.handler.radiation.ChunkRadiationManager; import com.hbm.hazard.HazardRegistry; import com.hbm.hazard.HazardSystem; import com.hbm.interfaces.IFluidAcceptor; @@ -124,7 +123,7 @@ public class TileEntityStorageDrum extends TileEntityMachineBase implements IFlu if(overflow > 0) { this.tanks[i].setFill(this.tanks[i].getFill() - overflow); - ChunkRadiationManager.proxy.incrementRad(worldObj, xCoord, yCoord, zCoord, overflow * 0.5F); + this.tanks[i].getTankType().onFluidRelease(this, this.tanks[i], overflow); } } diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineGasFlare.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineGasFlare.java index e039d7d51..705cca046 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineGasFlare.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineGasFlare.java @@ -49,6 +49,8 @@ public class TileEntityMachineGasFlare extends TileEntityMachineBase implements super.readFromNBT(nbt); this.power = nbt.getLong("powerTime"); tank.readFromNBT(nbt, "gas"); + isOn = nbt.getBoolean("isOn"); + doesBurn = nbt.getBoolean("doesBurn"); } @Override @@ -56,6 +58,8 @@ public class TileEntityMachineGasFlare extends TileEntityMachineBase implements super.writeToNBT(nbt); nbt.setLong("powerTime", power); tank.writeToNBT(nbt, "gas"); + nbt.setBoolean("isOn", isOn); + nbt.setBoolean("doesBurn", doesBurn); } public long getPowerScaled(long i) { @@ -93,12 +97,15 @@ public class TileEntityMachineGasFlare extends TileEntityMachineBase implements tank.loadTank(1, 2, slots); tank.updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); + int maxVent = 50; + int maxBurn = 10; + if(isOn && tank.getFill() > 0) { if(!doesBurn || !(tank.getTankType() instanceof FluidTypeFlammable)) { if(tank.getTankType().traits.contains(FluidTrait.GASEOUS)) { - int eject = Math.min(10, tank.getFill()); + int eject = Math.min(maxVent, tank.getFill()); tank.setFill(tank.getFill() - eject); tank.getTankType().onFluidRelease(this, tank, eject); @@ -108,7 +115,7 @@ public class TileEntityMachineGasFlare extends TileEntityMachineBase implements } else { if(tank.getTankType().traits.contains(FluidTrait.GASEOUS) && tank.getTankType() instanceof FluidTypeFlammable) { - int eject = Math.min(10, tank.getFill()); + int eject = Math.min(maxBurn, tank.getFill()); tank.setFill(tank.getFill() - eject); power += ((FluidTypeFlammable) tank.getTankType()).getHeatEnergy() * eject / 2_000; // divided by 1000 per mB and 2 for the 50% penalty @@ -140,26 +147,45 @@ public class TileEntityMachineGasFlare extends TileEntityMachineBase implements } else { - if(isOn && tank.getFill() > 0) { + if(isOn && tank.getFill() > 0 && tank.getTankType().traits.contains(FluidTrait.GASEOUS)) { if(!doesBurn || !(tank.getTankType() instanceof FluidTypeFlammable)) { - - if(tank.getTankType().traits.contains(FluidTrait.GASEOUS)) { - NBTTagCompound data = new NBTTagCompound(); - data.setString("type", "tower"); - data.setFloat("lift", 1F); - data.setFloat("base", 0.25F); - data.setFloat("max", 3F); - data.setInteger("life", 150 + worldObj.rand.nextInt(20)); - data.setInteger("color", tank.getTankType().getColor()); + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "tower"); + data.setFloat("lift", 1F); + data.setFloat("base", 0.25F); + data.setFloat("max", 3F); + data.setInteger("life", 150 + worldObj.rand.nextInt(20)); + data.setInteger("color", tank.getTankType().getColor()); - data.setDouble("posX", xCoord + 0.5); - data.setDouble("posZ", zCoord + 0.5); - data.setDouble("posY", yCoord + 11); + data.setDouble("posX", xCoord + 0.5); + data.setDouble("posZ", zCoord + 0.5); + data.setDouble("posY", yCoord + 11); - MainRegistry.proxy.effectNT(data); + MainRegistry.proxy.effectNT(data); + + } + + if(doesBurn && tank.getTankType() instanceof FluidTypeFlammable && MainRegistry.proxy.me().getDistanceSq(xCoord, yCoord + 10, zCoord) <= 1024) { + + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "vanillaExt"); + data.setString("mode", "smoke"); + data.setBoolean("noclip", true); + data.setInteger("overrideAge", 50); + + if(worldObj.getTotalWorldTime() % 2 == 0) { + data.setDouble("posX", xCoord + 1.5); + data.setDouble("posZ", zCoord + 1.5); + data.setDouble("posY", yCoord + 10.75); + } else { + data.setDouble("posX", xCoord + 1.125); + data.setDouble("posZ", zCoord - 0.5); + data.setDouble("posY", yCoord + 11.75); } + + MainRegistry.proxy.effectNT(data); } } } diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 31249fea5..ba794b528 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -1282,6 +1282,10 @@ item.detonator_laser.name=Laserzünder item.detonator_multi.name=Mehrfach-Fernzünder item.deuterium_filter.name=Deuteriumfilter item.diamond_gavel.name=Diamantener Richterhammer +item.dieselsuit_boots.name=Dieselgetriebene High Heels +item.dieselsuit_helmet.name=Dieselgetriebene Umgebungssensoren +item.dieselsuit_legs.name=Dieselgetriebene Beinservos +item.dieselsuit_plate.name=Dieselgetriebene Kybernetik item.digamma_diagnostic.name=Digamma-Diagnosegerät item.dns_boots.name=DNT-Nanoanzug Stiefel item.dns_legs.name=DNT-Nanoanzug Beinschützer diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 62123447b..68bcb559f 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -1506,6 +1506,10 @@ item.detonator_laser.name=Laser Detonator item.detonator_multi.name=Multi Detonator item.deuterium_filter.name=Deuterium Filter item.diamond_gavel.name=Diamond Gavel +item.dieselsuit_boots.name=Diesel-Powered High Heels +item.dieselsuit_helmet.name=Diesel-Powered Head-Mounted Environmental Sensor +item.dieselsuit_legs.name=Diesel-Powered Leg Servos +item.dieselsuit_plate.name=Diesel-Powered Cybernetics item.digamma_diagnostic.name=Digamma Diagnostic item.dns_boots.name=DNT Nano Suit Boots item.dns_legs.name=DNT Nano Suit Leggings diff --git a/src/main/resources/assets/hbm/models/armor/bnuuy.obj b/src/main/resources/assets/hbm/models/armor/bnuuy.obj new file mode 100644 index 000000000..5e4272c5f --- /dev/null +++ b/src/main/resources/assets/hbm/models/armor/bnuuy.obj @@ -0,0 +1,4153 @@ +# Blender v2.79 (sub 0) OBJ File: 'OOOOOW.blend' +# www.blender.org +o RightLeg +v -3.484292 16.187889 -2.138402 +v -3.221341 16.574892 -2.693598 +v -3.221341 16.344923 -2.138402 +v -3.484292 16.463854 -2.804636 +v -3.221342 17.130089 -2.923568 +v -3.484293 17.130089 -3.080601 +v -3.221342 17.685284 -2.693598 +v -3.484293 17.796324 -2.804637 +v -3.221342 17.915255 -2.138402 +v -3.484293 18.072287 -2.138402 +v -3.221341 17.685284 -1.583206 +v -3.484293 17.796324 -1.472167 +v -3.221341 17.130089 -1.353237 +v -3.484293 17.130089 -1.196203 +v -3.484292 16.463854 -1.472167 +v -3.221340 16.574892 -1.583206 +v -0.410679 17.130089 -1.196205 +v -0.410679 16.463854 -1.472168 +v -0.410681 17.796324 -2.804638 +v -0.673631 16.574894 -1.583207 +v -0.410680 16.187891 -2.138402 +v -0.673631 16.344923 -2.138402 +v -0.673630 17.130089 -1.353238 +v -0.673632 17.685286 -1.583207 +v -0.410680 17.796324 -1.472168 +v -0.410681 18.072289 -2.138403 +v -0.673632 17.915255 -2.138402 +v -0.673632 17.685286 -2.693599 +v -0.673631 17.130089 -2.923568 +v -0.410680 17.130089 -3.080602 +v -0.673631 16.574894 -2.693599 +v -0.410680 16.463854 -2.804637 +v -2.584136 23.893938 -2.775110 +v -1.259086 17.076845 -2.775109 +v -2.584134 17.076845 -2.775109 +v -3.051306 21.491409 -1.833182 +v -3.051305 17.642982 -2.479549 +v -3.051305 17.891409 -1.833182 +v -0.791916 21.491411 -1.833183 +v -0.791915 17.642982 -2.479549 +v -0.791916 22.492836 -2.479551 +v -1.259087 23.893938 -2.775111 +v -3.051307 22.492836 -2.479550 +v -0.791915 17.891409 -1.833182 +vt 0.333333 1.000000 +vt 0.277778 0.976744 +vt 0.333333 0.976744 +vt 0.277778 1.000000 +vt 0.222222 0.976744 +vt 0.222222 1.000000 +vt 0.166667 0.976744 +vt 0.166667 1.000000 +vt 0.111111 0.976744 +vt 0.111111 1.000000 +vt 0.055556 0.976744 +vt 0.055556 1.000000 +vt 0.000000 0.976744 +vt 0.065440 0.765336 +vt 0.001821 0.637956 +vt 0.155411 0.585194 +vt 0.444444 0.976744 +vt 0.388889 1.000000 +vt 0.388889 0.976744 +vt 0.155411 0.585578 +vt 0.219031 0.638340 +vt 0.001821 0.712958 +vt 0.388889 0.790698 +vt 0.333333 0.767442 +vt 0.388889 0.767442 +vt 0.333333 0.790698 +vt 0.444444 0.790698 +vt 0.444444 0.767442 +vt 0.055556 0.790698 +vt 0.000000 0.767442 +vt 0.055556 0.767442 +vt 0.000000 0.790698 +vt 0.111111 0.767442 +vt 0.111111 0.790698 +vt 0.166667 0.790698 +vt 0.166667 0.767442 +vt 0.222222 0.790698 +vt 0.222222 0.767442 +vt 0.277778 0.790698 +vt 0.277778 0.767442 +vt 0.138889 0.302326 +vt 0.222222 0.581395 +vt 0.138889 0.581395 +vt 0.083333 0.418605 +vt 0.111111 0.558140 +vt 0.083333 0.558140 +vt 0.277778 0.418605 +vt 0.250000 0.558140 +vt 0.250000 0.372093 +vt 0.222222 0.302326 +vt 0.111111 0.372093 +vt 0.000000 1.000000 +vt 0.219031 0.637956 +vt 0.219031 0.712574 +vt 0.155411 0.765336 +vt 0.001821 0.712574 +vt 0.065441 0.585194 +vt 0.444444 1.000000 +vt 0.219031 0.712958 +vt 0.155411 0.765720 +vt 0.065440 0.765720 +vt 0.001821 0.638340 +vt 0.065441 0.585578 +vt 0.277778 0.558140 +vn 0.4831 -0.8089 -0.3351 +vn 0.4831 -0.3351 -0.8089 +vn 0.4831 0.3351 -0.8089 +vn 0.4831 0.8089 -0.3351 +vn 0.4831 0.8089 0.3351 +vn 0.4831 0.3351 0.8089 +vn -1.0000 -0.0000 0.0000 +vn 0.4831 -0.3351 0.8089 +vn 0.4831 -0.8089 0.3351 +vn 1.0000 0.0000 -0.0000 +vn -0.4831 -0.8089 0.3351 +vn 0.0000 -0.9239 0.3827 +vn -0.4831 -0.3351 0.8089 +vn 0.0000 -0.3827 0.9239 +vn -0.4831 0.3351 0.8089 +vn 0.0000 0.3827 0.9239 +vn -0.4831 0.8089 0.3351 +vn -0.0000 0.9239 0.3827 +vn -0.4831 0.8089 -0.3351 +vn -0.0000 0.9239 -0.3827 +vn -0.4831 0.3351 -0.8089 +vn -0.0000 0.3827 -0.9239 +vn -0.4831 -0.3351 -0.8089 +vn -0.0000 -0.3827 -0.9239 +vn -0.4831 -0.8089 -0.3351 +vn 0.0000 -0.9239 -0.3827 +vn -0.0000 -0.0000 -1.0000 +vn 0.5346 -0.0000 -0.8451 +vn -0.5346 -0.0000 -0.8451 +s 1 +f 1/1/1 2/2/1 3/3/1 +f 4/4/2 5/5/2 2/2/2 +f 6/6/3 7/7/3 5/5/3 +f 8/8/4 9/9/4 7/7/4 +f 10/10/5 11/11/5 9/9/5 +f 12/12/6 13/13/6 11/11/6 +f 14/14/7 10/15/7 6/16/7 +f 13/17/8 15/18/8 16/19/8 +f 16/19/9 1/1/9 3/3/9 +f 17/20/10 18/21/10 19/22/10 +f 20/23/11 21/24/11 18/25/11 +f 16/19/12 22/26/12 20/23/12 +f 23/27/13 18/25/13 17/28/13 +f 13/17/14 20/23/14 23/27/14 +f 24/29/15 17/30/15 25/31/15 +f 11/11/16 23/32/16 24/29/16 +f 26/33/17 24/29/17 25/31/17 +f 9/9/18 24/29/18 27/34/18 +f 28/35/19 26/33/19 19/36/19 +f 7/7/20 27/34/20 28/35/20 +f 29/37/21 19/36/21 30/38/21 +f 5/5/22 28/35/22 29/37/22 +f 31/39/23 30/38/23 32/40/23 +f 2/2/24 29/37/24 31/39/24 +f 22/26/25 32/40/25 21/24/25 +f 3/3/26 31/39/26 22/26/26 +f 33/41/27 34/42/27 35/43/27 +f 36/44/7 37/45/7 38/46/7 +f 39/47/10 40/48/10 41/49/10 +f 41/49/28 34/42/28 42/50/28 +f 43/51/29 35/43/29 37/45/29 +f 1/1/1 4/4/1 2/2/1 +f 4/4/2 6/6/2 5/5/2 +f 6/6/3 8/8/3 7/7/3 +f 8/8/4 10/10/4 9/9/4 +f 10/10/5 12/12/5 11/11/5 +f 12/12/6 14/52/6 13/13/6 +f 6/16/7 4/53/7 1/54/7 +f 1/54/7 15/55/7 14/14/7 +f 14/14/7 12/56/7 10/15/7 +f 10/15/7 8/57/7 6/16/7 +f 6/16/7 1/54/7 14/14/7 +f 13/17/8 14/58/8 15/18/8 +f 16/19/9 15/18/9 1/1/9 +f 18/21/10 21/59/10 32/60/10 +f 32/60/10 30/61/10 18/21/10 +f 30/61/10 19/22/10 18/21/10 +f 19/22/10 26/62/10 25/63/10 +f 25/63/10 17/20/10 19/22/10 +f 20/23/11 22/26/11 21/24/11 +f 16/19/12 3/3/12 22/26/12 +f 23/27/13 20/23/13 18/25/13 +f 13/17/14 16/19/14 20/23/14 +f 24/29/15 23/32/15 17/30/15 +f 11/11/16 13/13/16 23/32/16 +f 26/33/17 27/34/17 24/29/17 +f 9/9/18 11/11/18 24/29/18 +f 28/35/19 27/34/19 26/33/19 +f 7/7/20 9/9/20 27/34/20 +f 29/37/21 28/35/21 19/36/21 +f 5/5/22 7/7/22 28/35/22 +f 31/39/23 29/37/23 30/38/23 +f 2/2/24 5/5/24 29/37/24 +f 22/26/25 31/39/25 32/40/25 +f 3/3/26 2/2/26 31/39/26 +f 33/41/27 42/50/27 34/42/27 +f 36/44/7 43/51/7 37/45/7 +f 39/47/10 44/64/10 40/48/10 +f 41/49/28 40/48/28 34/42/28 +f 43/51/29 33/41/29 35/43/29 +o LeftLeg +v 3.221325 16.344923 -2.138404 +v 3.484276 16.463854 -2.804640 +v 3.221325 16.574894 -2.693600 +v 3.221325 17.130089 -2.923570 +v 3.484276 17.130089 -3.080603 +v 3.221324 17.685286 -2.693600 +v 3.484275 17.796324 -2.804640 +v 3.221324 17.915255 -2.138404 +v 3.484275 18.072289 -2.138404 +v 3.221324 17.685286 -1.583209 +v 3.484276 17.796324 -1.472169 +v 3.221326 17.130089 -1.353239 +v 3.484277 17.130089 -1.196206 +v 3.221326 16.574894 -1.583209 +v 3.484276 16.187891 -2.138404 +v 0.410664 16.463854 -2.804638 +v 0.410663 17.796324 -2.804638 +v 0.410664 17.796324 -1.472168 +v 0.673615 16.574892 -1.583207 +v 0.410664 16.187889 -2.138403 +v 0.410665 16.463854 -1.472168 +v 0.673615 16.344923 -2.138403 +v 0.410665 17.130089 -1.196205 +v 0.673615 17.130089 -1.353238 +v 0.673614 17.685284 -1.583207 +v 0.673614 17.915255 -2.138403 +v 0.410663 18.072287 -2.138403 +v 0.673614 17.685284 -2.693599 +v 0.673614 17.130089 -2.923569 +v 0.410664 17.130089 -3.080602 +v 0.673615 16.574892 -2.693599 +v 2.584115 23.893938 -2.775112 +v 1.259069 17.076845 -2.775111 +v 2.584117 17.076845 -2.775112 +v 3.051287 21.491411 -1.833185 +v 3.051288 17.642982 -2.479552 +v 3.051288 17.891409 -1.833184 +v 0.791896 21.491409 -1.833183 +v 0.791897 17.642982 -2.479551 +v 0.791896 22.492836 -2.479551 +v 1.259067 23.893938 -2.775111 +v 3.051287 22.492836 -2.479552 +v 3.484277 16.463854 -1.472169 +v 0.791897 17.891409 -1.833183 +vt 0.333333 0.976744 +vt 0.277778 0.976744 +vt 0.277778 1.000000 +vt 0.222222 0.976744 +vt 0.222222 1.000000 +vt 0.166667 0.976744 +vt 0.166667 1.000000 +vt 0.111111 0.976744 +vt 0.111111 1.000000 +vt 0.055556 0.976744 +vt 0.055556 1.000000 +vt 0.000000 0.976744 +vt 0.065440 0.765336 +vt 0.155411 0.585194 +vt 0.001821 0.637956 +vt 0.444444 1.000000 +vt 0.444444 0.976744 +vt 0.388889 0.976744 +vt 0.333333 1.000000 +vt 0.155411 0.765720 +vt 0.065441 0.585578 +vt 0.001821 0.712958 +vt 0.388889 0.790698 +vt 0.388889 0.767442 +vt 0.333333 0.767442 +vt 0.333333 0.790698 +vt 0.444444 0.767442 +vt 0.444444 0.790698 +vt 0.055556 0.790698 +vt 0.055556 0.767442 +vt 0.000000 0.767442 +vt 0.000000 0.790698 +vt 0.111111 0.790698 +vt 0.111111 0.767442 +vt 0.166667 0.767442 +vt 0.166667 0.790698 +vt 0.222222 0.790698 +vt 0.222222 0.767442 +vt 0.277778 0.767442 +vt 0.277778 0.790698 +vt 0.138889 0.302326 +vt 0.138889 0.581395 +vt 0.222222 0.581395 +vt 0.083333 0.418605 +vt 0.083333 0.558140 +vt 0.111111 0.558140 +vt 0.277778 0.418605 +vt 0.250000 0.372093 +vt 0.250000 0.558140 +vt 0.222222 0.302326 +vt 0.111111 0.372093 +vt 0.000000 1.000000 +vt 0.219031 0.712574 +vt 0.219031 0.637956 +vt 0.155411 0.765336 +vt 0.001821 0.712574 +vt 0.065441 0.585194 +vt 0.388889 1.000000 +vt 0.219031 0.638340 +vt 0.219031 0.712958 +vt 0.065440 0.765720 +vt 0.001821 0.638340 +vt 0.155411 0.585578 +vt 0.277778 0.558140 +vn -0.4831 -0.8089 -0.3351 +vn -0.4831 -0.3351 -0.8089 +vn -0.4831 0.3351 -0.8089 +vn -0.4831 0.8089 -0.3351 +vn -0.4831 0.8089 0.3351 +vn -0.4831 0.3351 0.8089 +vn 1.0000 0.0000 -0.0000 +vn -0.4831 -0.3351 0.8089 +vn -0.4831 -0.8089 0.3351 +vn -1.0000 -0.0000 0.0000 +vn 0.4831 -0.8089 0.3351 +vn 0.0000 -0.9239 0.3827 +vn 0.4831 -0.3351 0.8089 +vn 0.0000 -0.3827 0.9239 +vn 0.4831 0.3351 0.8089 +vn 0.0000 0.3827 0.9239 +vn 0.4831 0.8089 0.3351 +vn -0.0000 0.9239 0.3827 +vn 0.4831 0.8089 -0.3351 +vn -0.0000 0.9239 -0.3827 +vn 0.4831 0.3351 -0.8089 +vn -0.0000 0.3827 -0.9239 +vn 0.4831 -0.3351 -0.8089 +vn -0.0000 -0.3827 -0.9239 +vn 0.4831 -0.8089 -0.3351 +vn 0.0000 -0.9239 -0.3827 +vn -0.0000 -0.0000 -1.0000 +vn -0.5346 -0.0000 -0.8451 +vn 0.5346 0.0000 -0.8451 +s 1 +f 45/65/30 47/66/30 46/67/30 +f 46/67/31 47/66/31 48/68/31 +f 49/69/32 48/68/32 50/70/32 +f 51/71/33 50/70/33 52/72/33 +f 53/73/34 52/72/34 54/74/34 +f 55/75/35 54/74/35 56/76/35 +f 57/77/36 49/78/36 53/79/36 +f 57/80/37 56/81/37 58/82/37 +f 58/82/38 45/65/38 59/83/38 +f 60/84/39 62/85/39 61/86/39 +f 63/87/40 65/88/40 64/89/40 +f 58/82/41 63/87/41 66/90/41 +f 67/91/42 65/88/42 63/87/42 +f 56/81/43 68/92/43 63/87/43 +f 69/93/44 62/94/44 67/95/44 +f 54/74/45 69/93/45 68/96/45 +f 70/97/46 71/98/46 62/94/46 +f 52/72/47 70/97/47 69/93/47 +f 61/99/48 71/98/48 70/97/48 +f 50/70/49 72/100/49 70/97/49 +f 73/101/50 74/102/50 61/99/50 +f 48/68/51 73/101/51 72/100/51 +f 60/103/52 74/102/52 73/101/52 +f 47/66/53 75/104/53 73/101/53 +f 66/90/54 64/89/54 60/103/54 +f 45/65/55 66/90/55 75/104/55 +f 76/105/56 78/106/56 77/107/56 +f 79/108/36 81/109/36 80/110/36 +f 82/111/39 84/112/39 83/113/39 +f 84/112/57 85/114/57 77/107/57 +f 86/115/58 80/110/58 78/106/58 +f 45/65/30 46/67/30 59/83/30 +f 46/67/31 48/68/31 49/69/31 +f 49/69/32 50/70/32 51/71/32 +f 51/71/33 52/72/33 53/73/33 +f 53/73/34 54/74/34 55/75/34 +f 55/75/35 56/76/35 57/116/35 +f 49/78/36 59/117/36 46/118/36 +f 59/117/36 57/77/36 87/119/36 +f 57/77/36 53/79/36 55/120/36 +f 53/79/36 49/78/36 51/121/36 +f 49/78/36 57/77/36 59/117/36 +f 57/80/37 58/82/37 87/122/37 +f 58/82/38 59/83/38 87/122/38 +f 65/123/39 60/84/39 64/124/39 +f 60/84/39 61/86/39 74/125/39 +f 61/86/39 62/85/39 71/126/39 +f 62/85/39 65/123/39 67/127/39 +f 65/123/39 62/85/39 60/84/39 +f 63/87/40 64/89/40 66/90/40 +f 58/82/41 66/90/41 45/65/41 +f 67/91/42 63/87/42 68/92/42 +f 56/81/43 63/87/43 58/82/43 +f 69/93/44 67/95/44 68/96/44 +f 54/74/45 68/96/45 56/76/45 +f 70/97/46 62/94/46 69/93/46 +f 52/72/47 69/93/47 54/74/47 +f 61/99/48 70/97/48 72/100/48 +f 50/70/49 70/97/49 52/72/49 +f 73/101/50 61/99/50 72/100/50 +f 48/68/51 72/100/51 50/70/51 +f 60/103/52 73/101/52 75/104/52 +f 47/66/53 73/101/53 48/68/53 +f 66/90/54 60/103/54 75/104/54 +f 45/65/55 75/104/55 47/66/55 +f 76/105/56 77/107/56 85/114/56 +f 79/108/36 80/110/36 86/115/36 +f 82/111/39 83/113/39 88/128/39 +f 84/112/57 77/107/57 83/113/57 +f 86/115/58 78/106/58 76/105/58 +o RightBoot +v -4.294724 22.782003 2.294718 +v -0.027777 24.114491 3.088782 +v -3.972240 24.114491 3.088783 +v 0.294707 21.359482 -2.294718 +v -0.390985 24.114489 -3.029695 +v 0.294706 24.114489 -2.289904 +v -3.609036 24.114487 -3.029694 +v -4.294727 24.114487 -2.289904 +v 0.294709 22.782005 2.294716 +v -4.294726 21.359480 -2.294717 +v -4.313537 24.114489 2.253307 +v 0.299410 24.114489 -1.357249 +v -4.299429 24.114487 -1.357248 +v 0.313520 24.114491 2.253306 +v -4.308834 24.114489 2.041616 +v 0.308817 24.114491 2.041615 +v -4.304132 22.930824 0.905813 +v 0.304113 22.930826 0.905812 +vt 1.000000 0.813953 +vt 0.805556 0.744186 +vt 0.972222 0.744186 +vt 0.722222 1.000000 +vt 0.694444 0.860465 +vt 0.763660 0.868673 +vt 0.527778 0.860465 +vt 0.722222 0.813953 +vt 0.500000 0.813953 +vt 0.777778 0.813953 +vt 1.000000 1.000000 +vt 0.777778 1.000000 +vt 0.694444 0.511628 +vt 0.500000 0.558140 +vt 0.527778 0.511628 +vt 0.500000 1.000000 +vt 0.469459 0.868673 +vt 0.722222 0.767442 +vt 0.500000 0.767442 +vt 0.486172 0.445154 +vt 0.451509 0.445182 +vt 0.484495 0.476814 +vt 0.484078 0.476716 +vt 0.450871 0.444995 +vt 0.485671 0.444929 +vt 0.722222 0.558140 +vt 0.500000 0.581395 +vt 0.722222 0.581395 +vt 0.500000 0.651163 +vt 0.660669 0.445343 +vt 0.624848 0.445304 +vt 0.660669 0.510800 +vt 0.537850 0.473333 +vt 0.494305 0.445164 +vt 0.493836 0.444930 +vt 0.537634 0.473164 +vt 0.661047 0.510645 +vt 0.624897 0.444929 +vt 0.660861 0.444929 +vt 0.722222 0.651163 +vn 0.0000 -0.5119 0.8590 +vn 0.7334 0.0012 -0.6798 +vn -0.0000 -0.2578 -0.9662 +vn -0.0000 1.0000 0.0000 +vn 0.0000 -0.9552 0.2961 +vn -0.7334 0.0012 -0.6798 +vn 0.9257 -0.0013 0.3782 +vn -0.9257 -0.0013 0.3782 +vn -0.0000 0.6924 -0.7215 +vn -0.0000 0.8861 0.4635 +vn 1.0000 0.0000 -0.0050 +vn 1.0000 -0.0004 -0.0037 +vn 1.0000 -0.0001 -0.0046 +vn 1.0000 -0.0008 -0.0025 +vn 0.9999 -0.0162 0.0050 +vn 0.9999 -0.0108 0.0056 +vn 0.9999 -0.0149 0.0052 +vn 0.9999 -0.0095 0.0058 +vn 0.9996 -0.0148 -0.0222 +vn -0.9996 -0.0148 -0.0222 +vn -0.9999 -0.0095 0.0058 +vn -0.9999 -0.0108 0.0056 +vn -0.9999 -0.0149 0.0052 +vn -0.9999 -0.0162 0.0050 +vn -1.0000 -0.0008 -0.0025 +vn -1.0000 -0.0004 -0.0037 +vn -1.0000 -0.0001 -0.0045 +vn -1.0000 0.0000 -0.0050 +s 1 +f 89/129/59 90/130/59 91/131/59 +f 92/132/60 93/133/60 94/134/60 +f 92/132/61 95/135/61 93/133/61 +f 94/136/62 95/135/62 96/137/62 +f 97/138/63 98/139/63 92/140/63 +f 90/141/62 99/142/62 91/143/62 +f 89/129/59 97/138/59 90/130/59 +f 92/132/61 98/144/61 95/135/61 +f 96/145/64 95/135/64 98/144/64 +f 94/136/62 93/133/62 95/135/62 +f 97/138/63 89/129/63 98/139/63 +f 100/146/62 96/137/62 101/147/62 +f 102/148/65 90/149/65 97/150/65 +f 89/151/66 91/152/66 99/153/66 +f 102/154/62 103/155/62 99/142/62 +f 104/156/67 105/157/67 103/155/67 +f 105/157/68 100/146/68 101/147/68 +f 94/158/69 100/159/70 92/160/71 +f 100/159/70 106/161/72 92/160/71 +f 92/160/73 106/161/74 97/150/75 +f 106/161/74 104/162/76 97/150/75 +f 102/148/77 97/150/77 104/162/77 +f 89/151/78 99/153/78 103/163/78 +f 103/163/79 105/164/80 89/151/81 +f 89/151/81 105/164/80 98/165/82 +f 105/164/83 101/166/84 98/165/85 +f 96/167/86 98/165/85 101/166/84 +f 90/141/62 102/154/62 99/142/62 +f 100/146/62 94/136/62 96/137/62 +f 102/154/62 104/156/62 103/155/62 +f 104/156/67 106/168/67 105/157/67 +f 105/157/68 106/168/68 100/146/68 +o RightArm +v -3.987993 4.568192 2.012011 +v -8.012014 12.123872 2.012012 +v -3.987996 12.123873 2.012011 +v -8.012011 4.568192 2.012012 +v -8.012017 12.123872 -2.012007 +v -8.012014 4.568192 -2.012007 +v -3.987998 12.123873 -2.012008 +v -3.987996 4.568192 -2.012008 +v -3.950447 -0.051672 -2.049555 +v -8.049558 -0.051674 2.049560 +v -3.950445 -0.051672 2.049558 +v -3.950446 2.506721 2.049558 +v -8.049560 2.506720 -2.049553 +v -8.049560 -0.051674 -2.049553 +v -5.488659 2.506721 -2.049554 +v -8.315364 8.634611 1.745075 +v -8.315366 10.517612 -0.602378 +v -8.315365 10.517612 1.745075 +v -8.315365 8.634611 -1.254874 +v -8.315367 10.517612 -1.745069 +v -8.315366 10.517612 -1.254874 +v -3.684647 8.634613 -2.315358 +v -3.684645 10.517614 2.315361 +v -3.684647 10.517614 -2.315358 +v -7.745078 8.634611 -2.315357 +v -7.745079 10.517612 -2.315357 +v -9.689914 8.634610 -1.254873 +v -9.689914 8.634610 -0.602377 +v -9.689915 10.517612 -1.254873 +v -9.689915 10.517612 -0.602377 +v -8.315365 8.634611 -0.602378 +v -7.745077 10.517612 2.315362 +v -7.745076 8.634611 2.315362 +v -8.315366 8.634611 -1.745069 +v -3.684645 8.634613 2.315361 +v -8.049558 2.506720 2.049560 +v -3.950447 0.968509 -2.049555 +vt 0.914286 0.682927 +vt 0.914286 0.292683 +vt 0.685714 0.292683 +vt 0.685714 0.682927 +vt 0.457143 0.292683 +vt 0.457143 0.682927 +vt 0.228571 0.292683 +vt 0.228571 0.682927 +vt -0.000000 0.292683 +vt -0.000000 0.292683 +vt 0.228571 0.292683 +vt 0.228571 0.097561 +vt 0.142857 1.000000 +vt 0.371429 1.000000 +vt 0.371429 0.804878 +vt 0.514286 1.000000 +vt 0.142857 0.682927 +vt 0.142857 0.804878 +vt 0.000000 0.926829 +vt 0.000000 0.804878 +vt 0.742857 0.097561 +vt 0.742857 0.000000 +vt 0.628571 0.000000 +vt 0.571429 0.097561 +vt 0.571429 0.000000 +vt 0.542857 0.000000 +vt 0.257143 0.097561 +vt 0.257143 0.000000 +vt 0.000000 0.000000 +vt 0.485714 0.097561 +vt 0.485714 -0.000000 +vt 0.400000 0.292683 +vt 0.514286 0.292683 +vt 0.514286 0.219512 +vt 0.228571 0.219512 +vt 0.342857 0.219512 +vt 0.342857 0.170732 +vt 0.571429 0.292683 +vt 0.571429 0.219512 +vt 0.342857 0.292683 +vt 0.400000 0.219512 +vt 0.228571 0.292683 +vt 0.800000 0.097561 +vt 0.800000 0.000000 +vt 0.542857 0.097561 +vt 1.000000 0.097561 +vt 1.000000 0.000000 +vt 0.000000 0.682927 +vt -0.000000 0.097561 +vt 0.514286 0.804878 +vt 0.371429 0.682927 +vt 0.085714 1.000000 +vt 0.628571 0.097561 +vt 0.000000 0.097561 +vt 0.228571 0.170732 +vn 0.0000 0.0000 1.0000 +vn -1.0000 -0.0000 0.0000 +vn -0.0000 -0.0000 -1.0000 +vn 1.0000 0.0000 -0.0000 +vn -0.0000 1.0000 -0.0000 +vn 0.0000 -1.0000 0.0000 +vn -0.7071 0.0000 0.7071 +vn -0.7071 -0.0000 -0.7071 +s 1 +f 107/169/87 109/170/87 108/171/87 +f 110/172/88 108/171/88 111/173/88 +f 112/174/89 111/173/89 113/175/89 +f 114/176/90 113/175/90 109/177/90 +f 111/178/91 108/179/91 109/180/91 +f 115/181/92 117/182/92 116/183/92 +f 116/183/87 117/182/87 118/184/87 +f 119/185/88 120/186/88 116/183/88 +f 121/187/89 120/186/89 119/188/89 +f 122/189/88 124/190/88 123/191/88 +f 125/192/88 127/193/88 126/194/88 +f 128/195/90 130/196/90 129/197/90 +f 131/198/89 132/199/89 130/196/89 +f 127/200/89 125/201/89 133/202/89 +f 134/203/88 136/204/88 135/205/88 +f 125/201/92 137/206/92 134/207/92 +f 123/208/91 127/200/91 135/209/91 +f 137/210/87 123/208/87 136/204/87 +f 122/189/93 139/211/93 138/212/93 +f 132/199/94 131/198/94 140/213/94 +f 141/214/87 129/215/87 138/212/87 +f 107/169/87 108/171/87 110/172/87 +f 110/172/88 111/173/88 112/174/88 +f 112/174/89 113/175/89 114/176/89 +f 114/176/90 109/177/90 107/216/90 +f 111/178/91 109/180/91 113/217/91 +f 115/181/92 116/183/92 120/186/92 +f 116/183/87 118/184/87 142/218/87 +f 119/185/88 116/183/88 142/219/88 +f 120/186/89 121/187/89 115/181/89 +f 115/181/89 121/187/89 143/220/89 +f 122/189/88 123/191/88 137/221/88 +f 125/192/88 126/194/88 140/213/88 +f 128/195/90 129/197/90 141/222/90 +f 131/198/89 130/196/89 128/195/89 +f 127/200/89 133/202/89 135/209/89 +f 134/203/88 135/205/88 133/223/88 +f 125/201/92 134/207/92 133/202/92 +f 123/208/91 135/209/91 136/204/91 +f 137/210/87 136/204/87 134/203/87 +f 122/189/93 138/212/93 124/190/93 +f 132/199/94 140/213/94 126/194/94 +f 141/214/87 138/212/87 139/211/87 +o LeftBoot +v 4.294709 22.782005 2.294713 +v 0.027761 24.114489 3.088781 +v 3.972223 24.114491 3.088780 +v -0.294726 21.359480 -2.294718 +v 0.390964 24.114487 -3.029695 +v -0.294727 24.114487 -2.289904 +v 3.609014 24.114489 -3.029696 +v 4.294706 24.114489 -2.289907 +v -0.294725 22.782003 2.294715 +v 4.294707 21.359482 -2.294719 +v 4.313520 24.114491 2.253305 +v 4.299409 24.114489 -1.357252 +v -0.313536 24.114489 2.253306 +v 4.308816 24.114491 2.041613 +v -0.308834 24.114489 2.041615 +v 4.304113 22.930826 0.905811 +v -0.299429 24.114487 -1.357249 +v -0.304131 22.930824 0.905812 +vt 1.000000 0.813953 +vt 0.972222 0.744186 +vt 0.805556 0.744186 +vt 0.722222 1.000000 +vt 0.763660 0.868673 +vt 0.694444 0.860465 +vt 0.527778 0.860465 +vt 0.722222 0.813953 +vt 0.500000 0.813953 +vt 0.777778 0.813953 +vt 0.777778 1.000000 +vt 1.000000 1.000000 +vt 0.694444 0.511628 +vt 0.527778 0.511628 +vt 0.500000 0.558140 +vt 0.500000 1.000000 +vt 0.469459 0.868673 +vt 0.500000 0.767442 +vt 0.486172 0.445154 +vt 0.482745 0.490732 +vt 0.451509 0.445182 +vt 0.482328 0.490634 +vt 0.485671 0.444929 +vt 0.450871 0.444995 +vt 0.722222 0.558140 +vt 0.500000 0.581395 +vt 0.722222 0.581395 +vt 0.500000 0.651163 +vt 0.722222 0.767442 +vt 0.660669 0.445343 +vt 0.657042 0.524629 +vt 0.624848 0.445304 +vt 0.536975 0.482856 +vt 0.494305 0.445164 +vt 0.493836 0.444930 +vt 0.536759 0.482686 +vt 0.657042 0.524629 +vt 0.624897 0.444929 +vt 0.660861 0.444929 +vt 0.722222 0.651163 +vn 0.0000 -0.5119 0.8590 +vn -0.7334 0.0012 -0.6798 +vn -0.0000 -0.2578 -0.9662 +vn -0.0000 1.0000 0.0000 +vn 0.0000 -0.9552 0.2961 +vn 0.7334 0.0012 -0.6798 +vn -0.9257 -0.0013 0.3782 +vn 0.9257 -0.0013 0.3782 +vn -0.0000 0.6924 -0.7215 +vn -0.0000 0.8861 0.4635 +vn -1.0000 0.0000 -0.0050 +vn -1.0000 0.0003 -0.0043 +vn -1.0000 -0.0004 -0.0037 +vn -1.0000 -0.0008 -0.0025 +vn -0.9999 -0.0162 0.0050 +vn -0.9999 -0.0132 0.0024 +vn -0.9998 -0.0152 0.0089 +vn -0.9999 -0.0095 0.0058 +vn -0.9996 -0.0148 -0.0222 +vn 0.9996 -0.0148 -0.0222 +vn 0.9999 -0.0095 0.0058 +vn 0.9999 -0.0132 0.0024 +vn 0.9998 -0.0152 0.0089 +vn 0.9999 -0.0162 0.0050 +vn 1.0000 -0.0008 -0.0025 +vn 1.0000 0.0003 -0.0043 +vn 1.0000 -0.0004 -0.0037 +vn 1.0000 0.0000 -0.0050 +s 1 +f 144/224/95 146/225/95 145/226/95 +f 147/227/96 149/228/96 148/229/96 +f 147/227/97 148/229/97 150/230/97 +f 149/231/98 151/232/98 150/230/98 +f 152/233/99 147/234/99 153/235/99 +f 145/236/98 146/237/98 154/238/98 +f 144/224/95 145/226/95 152/233/95 +f 147/227/97 150/230/97 153/239/97 +f 151/240/100 153/239/100 150/230/100 +f 149/231/98 150/230/98 148/229/98 +f 152/233/99 153/235/99 144/224/99 +f 155/241/98 151/232/98 149/231/98 +f 156/242/101 152/243/101 145/244/101 +f 144/245/102 154/246/102 146/247/102 +f 156/248/98 154/238/98 157/249/98 +f 158/250/103 157/249/103 159/251/103 +f 159/251/104 155/241/104 160/252/104 +f 149/253/105 147/254/106 160/255/107 +f 160/255/107 147/254/106 161/256/108 +f 147/254/109 152/243/110 161/256/111 +f 161/256/111 152/243/110 158/257/112 +f 156/242/113 158/257/113 152/243/113 +f 144/245/114 157/258/114 154/246/114 +f 157/258/115 144/245/116 159/259/117 +f 144/245/116 153/260/118 159/259/117 +f 159/259/119 153/260/120 155/261/121 +f 151/262/122 155/261/121 153/260/120 +f 145/236/98 154/238/98 156/248/98 +f 155/241/98 149/231/98 160/252/98 +f 156/248/98 157/249/98 158/250/98 +f 158/250/103 159/251/103 161/263/103 +f 159/251/104 160/252/104 161/263/104 +o Body +v -2.433892 11.696839 1.741448 +v -2.478342 12.058446 2.742684 +v -2.608063 11.701065 2.721165 +v -1.963707 12.213952 1.822806 +v -2.137878 12.218179 2.802522 +v -1.786109 12.086695 2.865625 +v -1.454927 11.736790 1.915313 +v -1.629098 11.741015 2.895030 +v -1.758819 11.383636 2.873510 +v -1.584648 11.379409 1.893793 +v -2.099283 11.223903 2.813673 +v -1.925112 11.219676 1.833956 +v -2.451052 11.355387 2.750569 +v -2.276881 11.351160 1.770853 +v -3.083490 11.695743 3.892097 +v -3.071629 12.046653 3.744678 +v -2.977108 11.196491 3.407814 +v -3.295467 10.916105 2.995091 +v -3.213680 10.923450 3.366935 +v -3.015702 12.190767 3.396662 +v -2.948472 12.043664 3.051913 +v -2.921181 11.340606 3.059798 +v -2.909320 11.691516 2.912380 +v -3.044339 11.343594 3.752563 +v -3.790248 10.905588 3.769861 +v -4.122290 10.720338 3.668464 +v -4.110857 10.890845 3.564914 +v -4.192645 10.883500 3.193070 +v -3.987700 10.887856 2.872150 +v -3.616077 10.901362 2.790144 +v -3.418624 10.919094 3.687855 +v -3.323674 10.249335 3.307122 +v -3.617874 9.913884 3.027164 +v -3.137142 10.088212 3.267124 +v -4.015907 10.221087 3.184181 +v -3.233499 10.504811 3.574724 +v -3.430057 10.748587 3.791405 +v -3.798206 10.837860 3.830233 +v -4.212464 10.464862 3.400860 +v -3.647758 10.131813 3.145353 +v -3.294946 10.828779 3.985489 +v -4.612823 5.784795 9.578111 +v -3.841042 10.961205 4.043085 +v -3.003381 10.467175 3.664075 +v -4.321773 10.786876 3.803124 +v -4.163970 10.046309 3.084760 +v -4.455535 10.407914 3.406173 +v -3.487563 5.121147 9.068974 +v -3.996118 4.679335 8.794598 +v -3.887074 4.988270 9.118198 +v -5.258609 5.550613 9.255764 +v -5.438295 5.041541 8.722525 +v -5.046626 4.555782 8.290759 +v -4.313034 4.377892 8.213387 +v -3.667250 4.612072 8.535736 +v -3.879233 5.606905 9.500741 +v -4.124761 5.283055 9.380220 +v -3.540586 4.874355 9.311748 +v -3.924491 5.350483 9.734954 +v -4.569947 5.391010 9.427172 +v -5.070891 4.939960 8.907953 +v -4.833203 4.645175 8.645930 +v -4.388018 4.537220 8.598978 +v -4.961847 5.248896 9.231552 +v -4.349693 4.145834 8.473121 +v -5.154979 3.690454 9.179224 +v -4.435930 3.516088 9.103387 +v -5.276523 5.295309 9.494833 +v -5.068743 4.320199 8.548958 +v -3.716710 4.375374 8.789079 +v -4.643539 5.524849 9.810790 +v -5.452648 4.796328 8.972165 +v -3.626822 4.244609 9.942014 +v -4.173031 3.812530 9.718286 +v -4.076151 4.087002 10.005788 +v -3.802946 3.745630 9.419345 +v -4.010726 4.720737 10.365220 +v -4.729775 4.895103 10.441055 +v -5.362759 4.665564 10.125099 +v -5.538885 4.166582 9.602431 +v -5.127913 4.044082 9.818995 +v -4.834189 4.385009 8.982876 +v -4.916739 3.782180 9.586204 +v -4.682850 4.444818 10.280295 +v -4.521214 3.686267 9.544488 +v -4.287324 4.348905 10.238581 +v -5.031033 4.318554 10.106499 +v -4.204773 4.951735 9.635254 +v -3.993600 4.689833 9.402461 +v -4.090481 4.415359 9.114959 +v -4.600299 5.047647 9.676968 +v -4.948482 4.921384 9.503171 +v -5.045363 4.646912 9.215669 +v -4.438664 4.289096 8.941160 +v 4.953064 7.610870 2.369190 +v 5.153063 7.264459 -1.262631 +v 5.153064 7.264460 2.369190 +v 4.553064 7.610870 2.369190 +v 4.953063 7.610870 -1.262631 +v 4.353064 7.264459 2.369190 +v 4.553062 7.610869 -1.262631 +v 4.553064 6.918049 2.369190 +v 4.353063 7.264460 -1.262631 +v 4.328232 7.610869 -1.524874 +v 4.953064 6.918049 2.369190 +v 4.553063 6.918049 -1.262631 +v 4.953063 6.918049 -1.262631 +v 4.287711 7.264459 2.462675 +v 4.328232 7.264460 -1.324874 +v 4.167478 7.610869 -1.524874 +v 4.328232 6.918049 -1.524874 +v 4.328231 7.610869 -1.924874 +v 4.328232 6.918049 -1.924874 +v 4.167477 7.264459 -2.124874 +v 4.328232 7.264459 -2.124873 +v 4.167477 6.918049 -1.524873 +v 4.167477 6.918049 -1.924874 +v 4.287712 7.264459 3.262675 +v 3.474366 7.227769 3.062675 +v 4.287711 7.610869 3.062675 +v 4.287711 6.918049 3.062675 +v 4.287711 7.610869 2.662675 +v 4.287711 6.918048 2.662675 +v 3.964264 6.737871 2.662675 +v 2.843040 5.616645 3.062676 +v 3.964264 6.737871 3.062675 +v 3.719315 6.982820 3.262676 +v 3.719315 6.982821 2.462676 +v 3.474366 7.227770 2.662676 +v 2.132173 5.325718 3.062676 +v 2.598091 5.861594 3.262676 +v 2.353141 6.106544 2.662676 +v 2.353141 6.106544 3.062676 +v 2.598091 5.861595 2.462676 +v 2.132174 5.325719 2.662676 +v 1.486039 5.325717 2.400527 +v 2.843040 5.616645 2.662676 +v 2.132174 6.018539 3.062675 +v 2.132173 5.672130 2.462676 +v 2.132173 5.672129 3.262676 +v 1.486039 5.325717 1.992879 +v 1.286039 5.672129 2.400527 +v 1.886039 6.018539 2.400527 +v 2.132173 6.018539 2.662676 +v 1.886039 5.325718 2.400527 +v 1.486039 6.018538 2.400527 +v 2.086039 5.672129 2.400527 +v 1.886040 5.325718 1.992879 +v 1.486039 6.018538 1.992879 +v 1.886040 6.018539 1.992879 +v 5.153064 8.407035 2.369190 +v 4.953063 8.753445 -1.262631 +v 5.153062 8.407035 -1.262631 +v 4.553064 8.753445 2.369190 +v 4.953064 8.753446 2.369190 +v 4.353064 8.407034 2.369190 +v 4.553062 8.753445 -1.262631 +v 4.553063 8.060624 2.369190 +v 4.353062 8.407035 -1.262631 +v 4.328231 8.753445 -1.524874 +v 4.953064 8.060625 2.369190 +v 4.553062 8.060624 -1.262631 +v 4.953063 8.060625 -1.262631 +v 4.287711 8.407035 2.462675 +v 4.328231 8.407035 -1.324874 +v 4.167477 8.753445 -1.524874 +v 4.328231 8.060624 -1.524874 +v 4.328231 8.753445 -1.924874 +v 4.328231 8.060624 -1.924874 +v 4.167477 8.753445 -1.924874 +v 4.328231 8.407034 -2.124874 +v 4.167477 8.407034 -2.124874 +v 4.167477 8.060624 -1.524874 +v 4.167477 8.060624 -1.924874 +v 4.287711 8.407035 3.262675 +v 3.474366 8.370344 3.062675 +v 4.287711 8.753445 3.062675 +v 4.287711 8.060625 3.062675 +v 4.287711 8.753445 2.662675 +v 4.287711 8.060625 2.662675 +v 2.843040 6.759221 2.662676 +v 3.964264 7.880446 3.062675 +v 3.964264 7.880446 2.662675 +v 3.719315 8.125395 3.262675 +v 3.719315 8.125396 2.462675 +v 3.474365 8.370344 2.662676 +v 2.132174 6.468294 3.062676 +v 2.598090 7.004170 3.262676 +v 2.843039 6.759221 3.062676 +v 2.353141 7.249119 2.662676 +v 2.598091 7.004169 2.462676 +v 2.353141 7.249119 3.062676 +v 2.132173 6.468295 2.662676 +v 1.486039 6.468294 2.400527 +v 2.132173 7.161114 3.062676 +v 2.132173 6.814704 2.462676 +v 2.132172 6.814704 3.262676 +v 1.286039 6.814703 1.992879 +v 1.286039 6.814704 2.400527 +v 1.886039 7.161115 2.400527 +v 2.132173 7.161115 2.662676 +v 1.886039 6.468294 2.400527 +v 1.486039 7.161114 2.400527 +v 2.086039 6.814704 2.400527 +v 1.886039 6.468294 1.992879 +v 1.886039 7.161114 1.992879 +v 1.486039 6.468293 1.992879 +v 1.486039 7.161114 1.992879 +v 4.953063 9.896020 2.369190 +v 5.153061 9.549610 -1.262631 +v 5.153064 9.549610 2.369190 +v 4.553063 9.896020 2.369190 +v 4.953062 9.896020 -1.262631 +v 4.353063 9.549610 2.369190 +v 4.553061 9.896020 -1.262631 +v 4.553062 9.203199 -1.262631 +v 4.353062 9.549610 -1.262631 +v 4.328231 9.896020 -1.524874 +v 4.953064 9.203199 2.369190 +v 4.553064 9.203199 2.369190 +v 4.953063 9.203200 -1.262631 +v 4.287710 9.549610 2.462675 +v 4.328230 9.549610 -1.324874 +v 4.167477 9.896020 -1.524874 +v 4.328231 9.203199 -1.524874 +v 4.328230 9.896020 -1.924874 +v 4.328231 9.203199 -1.924874 +v 4.167477 9.896020 -1.924874 +v 4.328231 9.549610 -2.124873 +v 4.167477 9.549609 -2.124874 +v 4.167477 9.203199 -1.524874 +v 4.167477 9.203199 -1.924874 +v 4.287711 9.549610 3.262675 +v 3.474366 9.512920 3.062675 +v 4.287710 9.896020 3.062675 +v 4.287711 9.203199 3.062675 +v 4.287710 9.896020 2.662675 +v 4.287711 9.203199 2.662675 +v 2.843040 7.901796 2.662676 +v 3.964263 9.023022 3.062675 +v 3.964263 9.023022 2.662675 +v 3.719314 9.267971 3.262675 +v 3.719315 9.267971 2.462675 +v 3.474365 9.512920 2.662676 +v 2.132173 7.610869 3.062676 +v 2.598090 8.146745 3.262676 +v 2.843039 7.901796 3.062676 +v 2.353141 8.391694 2.662676 +v 2.353141 8.391694 3.062675 +v 2.598090 8.146745 2.462676 +v 2.132173 7.610869 2.662676 +v 1.486039 7.610869 2.400527 +v 2.132173 8.303690 3.062676 +v 2.132173 7.957279 2.462676 +v 2.132173 7.957279 3.262676 +v 1.486039 7.610868 1.992879 +v 1.286039 7.957279 2.400527 +v 1.886039 8.303690 2.400527 +v 2.132172 8.303690 2.662676 +v 1.886039 7.610869 2.400527 +v 1.486038 8.303690 2.400527 +v 2.086039 7.957279 1.992879 +v 2.086039 7.957279 2.400527 +v 1.486039 8.303690 1.992879 +v 1.886039 8.303690 1.992879 +v 4.111426 12.111434 2.055715 +v -4.111434 -0.021471 2.055717 +v -4.111439 12.111432 2.055717 +v -0.000007 14.387936 2.055716 +v -0.448474 13.131029 1.780179 +v -1.048790 12.530713 3.263384 +v -1.048790 12.530713 1.780179 +v -1.048790 11.633777 1.780179 +v -0.448474 11.033461 3.263384 +v -0.448474 11.033461 1.780179 +v -0.000006 11.481929 3.897614 +v -0.000006 12.682561 3.897614 +v 0.600311 12.082245 3.897613 +v 0.448463 11.033461 1.780178 +v 1.048779 11.633777 3.263383 +v 1.048779 11.633777 1.780178 +v -0.448475 13.131029 3.263384 +v 0.448462 13.131029 3.263383 +v 1.048778 12.530713 3.263383 +v -0.600322 12.082245 3.897614 +v -1.048790 11.633777 3.263384 +v 0.448463 11.033461 3.263383 +v 0.448462 13.131029 1.780178 +v 4.273126 7.662184 -1.123407 +v 4.273125 12.409700 0.977680 +v 4.273124 12.409700 -2.588087 +v 1.068278 2.915273 -1.973670 +v 3.204844 2.915273 -1.973670 +v 3.204844 2.915273 -2.434293 +v -4.273139 12.409698 -2.588085 +v -4.273138 12.409698 0.977683 +v -4.273137 7.662182 -1.123404 +v -0.000008 14.363687 -2.136567 +v -0.000008 14.363687 -2.136567 +v 4.273125 9.025417 -2.332449 +v -4.273138 9.025415 -2.332446 +v 4.273127 4.915272 -1.973671 +v 4.273126 4.915272 -2.434293 +v 3.529422 4.915272 -2.724489 +v -0.000006 6.307607 -2.724487 +v 1.346965 3.785859 -2.724489 +v -0.000005 4.915271 -1.973669 +v 1.068279 2.915272 -2.434293 +v -4.273136 4.915270 -1.973669 +v -3.204853 2.915272 -1.973669 +v -3.204853 2.915273 -2.434291 +v -1.068287 2.915272 -1.973670 +v -0.000005 4.915271 -2.434292 +v -4.273138 7.087025 -2.724487 +v -4.273136 4.915270 -2.434291 +v -4.273137 5.785859 -2.724487 +v 4.273126 7.087027 -2.724489 +v 4.273125 5.785860 -2.724490 +v -3.529432 4.915270 -2.724487 +v -1.068287 2.915272 -2.434292 +v -1.346975 3.785859 -2.724488 +v -2.926166 3.785859 -2.724487 +v 2.926157 3.785860 -2.724488 +v -5.153073 7.264457 -1.262628 +v -4.953073 7.610868 2.369192 +v -5.153073 7.264458 2.369193 +v -4.953074 7.610868 -1.262629 +v -4.553072 7.610868 2.369192 +v -4.553073 7.610867 -1.262628 +v -4.353072 7.264457 2.369192 +v -4.353074 7.264457 -1.262628 +v -4.553072 6.918047 2.369192 +v -4.328242 7.610868 -1.524871 +v -4.553073 6.918047 -1.262628 +v -4.953073 6.918047 2.369193 +v -4.953074 6.918047 -1.262628 +v -4.287720 7.264457 2.462677 +v -4.287720 7.610867 2.662678 +v -4.167488 7.264457 -1.324871 +v -4.328242 7.264457 -1.324871 +v -4.328242 6.918047 -1.524871 +v -4.328242 6.918047 -1.924872 +v -4.328242 7.610868 -1.924871 +v -4.328242 7.264457 -2.124871 +v -4.167488 7.264458 -2.124871 +v -4.167488 7.610868 -1.924871 +v -4.167488 6.918047 -1.524871 +v -4.167488 7.610868 -1.524871 +v -4.167488 6.918048 -1.924871 +v -4.287720 7.264458 3.262678 +v -3.474375 7.227768 3.062677 +v -3.719324 6.982819 3.262678 +v -4.287720 6.918047 3.062678 +v -4.287720 7.610868 3.062677 +v -4.287720 6.918047 2.662678 +v -3.964272 6.737869 2.662678 +v -2.843048 5.616643 3.062678 +v -2.843047 5.616644 2.662678 +v -3.964272 6.737870 3.062677 +v -3.719324 6.982818 2.462677 +v -3.474375 7.227767 2.662678 +v -2.598098 5.861594 3.262677 +v -2.132181 5.325717 3.062677 +v -2.598098 5.861594 2.462677 +v -2.353149 6.106542 2.662678 +v -2.353149 6.106542 3.062677 +v -2.132181 5.325717 2.662678 +v -1.486047 5.325717 2.400528 +v -1.886047 5.325717 2.400527 +v -2.132181 5.672128 2.462677 +v -2.132181 6.018539 3.062677 +v -2.132181 6.018538 2.662678 +v -2.132181 5.672128 3.262677 +v -1.286046 5.672128 2.400528 +v -1.486047 5.325717 1.992880 +v -1.886047 6.018538 2.400528 +v -2.086047 5.672128 2.400528 +v -1.486047 6.018538 2.400528 +v -2.086047 5.672128 1.992880 +v -1.486047 6.018538 1.992880 +v -1.886047 5.325717 1.992880 +v -1.886047 6.018538 1.992880 +v -1.286047 5.672129 1.992880 +v -5.153073 8.407032 -1.262628 +v -4.953073 8.753443 2.369192 +v -5.153073 8.407033 2.369192 +v -4.953074 8.753443 -1.262629 +v -4.553073 8.753443 2.369192 +v -4.553073 8.753443 -1.262628 +v -4.353073 8.407033 2.369192 +v -4.353075 8.407033 -1.262628 +v -4.553073 8.060623 2.369192 +v -4.328243 8.753443 -1.524871 +v -4.553073 8.060622 -1.262629 +v -4.953073 8.060623 2.369192 +v -4.953074 8.060622 -1.262628 +v -4.287720 8.407033 2.462677 +v -4.287721 8.753443 2.662677 +v -4.328242 8.407033 -1.324871 +v -4.167489 8.753443 -1.524871 +v -4.167488 8.407032 -1.324871 +v -4.328242 8.060622 -1.524871 +v -4.328242 8.060622 -1.924872 +v -4.328243 8.753443 -1.924871 +v -4.328242 8.407032 -2.124871 +v -4.167489 8.407033 -2.124871 +v -4.167489 8.753443 -1.924871 +v -4.167489 8.060622 -1.524871 +v -4.167489 8.060622 -1.924871 +v -4.287721 8.407033 3.262678 +v -3.474375 8.370343 3.062677 +v -3.719324 8.125394 3.262678 +v -4.287720 8.060623 3.062677 +v -4.287721 8.753443 3.062677 +v -4.287720 8.060623 2.662677 +v -3.964273 7.880445 2.662677 +v -2.843048 6.759220 3.062678 +v -2.843048 6.759219 2.662677 +v -3.964273 7.880445 3.062677 +v -3.719324 8.125394 2.462677 +v -3.474375 8.370342 2.662677 +v -2.598099 7.004169 3.262677 +v -2.132181 6.468293 3.062677 +v -2.353150 7.249118 2.662678 +v -2.353150 7.249118 3.062676 +v -2.598099 7.004169 2.462677 +v -2.132181 6.468293 2.662678 +v -1.486047 6.468293 2.400528 +v -1.886047 6.468293 2.400528 +v -2.132181 6.814703 2.462677 +v -2.132181 7.161114 3.062677 +v -2.132181 7.161114 2.662678 +v -2.132181 6.814704 3.262677 +v -1.286047 6.814703 2.400528 +v -1.486047 6.468293 1.992880 +v -1.886047 7.161114 2.400528 +v -2.086047 6.814703 2.400528 +v -1.486047 7.161113 2.400528 +v -2.086047 6.814703 1.992880 +v -1.486047 7.161113 1.992880 +v -1.886047 6.468293 1.992880 +v -1.886047 7.161113 1.992880 +v -1.286047 6.814704 1.992880 +v -5.153074 9.549608 -1.262629 +v -4.953073 9.896018 2.369192 +v -5.153073 9.549608 2.369192 +v -4.553074 9.896018 -1.262628 +v -4.553073 9.896019 2.369192 +v -4.353073 9.549608 2.369192 +v -4.353075 9.549608 -1.262628 +v -4.553073 9.203197 2.369192 +v -4.953074 9.896018 -1.262629 +v -4.328243 9.896018 -1.524871 +v -4.553074 9.203198 -1.262629 +v -4.953073 9.203197 2.369192 +v -4.287721 9.549608 2.462677 +v -4.287721 9.896019 2.662677 +v -4.328243 9.549608 -1.324871 +v -4.167489 9.896018 -1.524871 +v -4.167489 9.549608 -1.324871 +v -4.953074 9.203197 -1.262628 +v -4.328243 9.203197 -1.524871 +v -4.328243 9.203197 -1.924872 +v -4.328243 9.896018 -1.924872 +v -4.328243 9.549608 -2.124871 +v -4.167489 9.896018 -1.924872 +v -4.167489 9.549608 -2.124871 +v -4.167489 9.203197 -1.524871 +v -4.167489 9.203197 -1.924871 +v -4.287721 9.549608 3.262677 +v -3.474375 9.512918 3.062677 +v -3.719324 9.267969 3.262677 +v -4.287721 9.203198 3.062677 +v -4.287721 9.896019 3.062677 +v -4.287721 9.203198 2.662677 +v -3.964273 9.023020 3.062677 +v -2.843048 7.901795 2.662677 +v -3.964273 9.023020 2.662677 +v -3.719324 9.267969 2.462677 +v -3.474375 9.512918 2.662677 +v -2.598099 8.146744 3.262677 +v -2.132182 7.610868 3.062677 +v -2.843048 7.901795 3.062676 +v -2.353150 8.391693 2.662678 +v -2.353150 8.391693 3.062676 +v -2.598099 8.146744 2.462677 +v -2.132181 7.610868 2.662678 +v -1.486047 7.610868 2.400528 +v -1.886047 7.610868 2.400528 +v -2.132182 7.957278 2.462676 +v -2.132182 8.303689 2.662677 +v -2.132182 8.303689 3.062677 +v -2.132182 7.957279 3.262677 +v -1.286047 7.957279 2.400527 +v -1.486047 7.610868 1.992880 +v -1.886047 8.303689 2.400528 +v -2.086047 7.957278 2.400528 +v -1.486047 8.303689 2.400528 +v -1.886047 7.610868 1.992880 +v -2.086048 7.957278 1.992880 +v -1.486047 8.303689 1.992880 +v -1.886048 8.303689 1.992880 +v -1.286047 7.957279 1.992880 +v 2.449288 12.086695 2.748686 +v 2.435472 11.736789 1.742414 +v 2.606888 11.741015 2.722615 +v 1.925736 12.213952 1.829498 +v 2.277873 12.082468 1.768484 +v 1.756754 12.058446 2.869917 +v 2.097151 12.218179 2.809700 +v 1.456080 11.696839 1.913860 +v 1.585338 12.054219 1.889715 +v 1.785095 11.355387 2.867993 +v 1.627496 11.701066 2.894062 +v 2.137232 11.223903 2.806978 +v 1.613679 11.351160 1.887790 +v 2.477629 11.383636 2.746762 +v 1.965816 11.219676 1.826776 +v 2.306213 11.379409 1.766559 +v 3.079006 11.756838 3.894791 +v 3.013339 11.257587 3.403329 +v 3.353650 11.009044 2.987727 +v 2.946864 11.401701 3.057173 +v 2.973258 12.251863 3.406051 +v 2.918522 12.104760 3.059098 +v 3.039732 12.107749 3.752206 +v 3.068073 11.404690 3.750281 +v 4.192069 10.869774 3.660819 +v 3.846230 11.026775 3.763767 +v 4.167394 11.040281 3.559605 +v 4.250217 11.044638 3.187943 +v 2.907590 11.752612 2.914587 +v 4.046185 11.037292 2.866496 +v 3.674814 11.022550 2.783565 +v 3.474859 11.012033 3.680835 +v 3.433866 10.342274 3.290588 +v 3.754191 10.035071 3.006906 +v 3.766532 10.253000 3.128188 +v 4.126400 10.370523 3.169357 +v 3.270826 11.004687 3.359390 +v 3.499533 10.841525 3.782051 +v 4.302662 10.625999 3.389981 +v 3.323271 10.586049 3.561428 +v 3.891948 11.082392 4.037887 +v 4.342715 5.671802 9.421039 +v 3.358136 10.908063 3.976818 +v 3.096676 10.529101 3.649556 +v 4.385411 10.949966 3.796989 +v 3.859400 10.959048 3.823220 +v 4.549462 10.588362 3.395239 +v 3.260727 10.167496 3.247805 +v 4.288002 10.209400 3.067975 +v 3.991486 5.162727 8.981416 +v 4.533890 4.766362 8.702488 +v 4.211863 4.676970 8.441730 +v 5.943067 5.242333 8.639784 +v 4.874751 4.499080 8.118122 +v 5.059803 5.905983 9.503077 +v 4.613299 5.370083 9.296791 +v 4.063381 4.917514 9.220909 +v 4.400153 5.061149 9.030001 +v 5.584486 5.109457 8.822679 +v 5.722692 5.728091 9.179469 +v 4.936170 4.658408 8.506104 +v 5.591838 4.733261 8.200159 +v 5.048471 5.512198 9.346575 +v 5.371341 4.800522 8.555889 +v 5.063664 3.637277 8.996481 +v 5.632009 4.496562 8.455140 +v 4.929136 4.267024 8.374729 +v 5.760268 5.471672 9.415037 +v 5.450748 5.404243 9.150191 +v 5.976277 4.995543 8.886050 +v 5.110521 5.646038 9.732229 +v 4.197909 4.287769 9.842660 +v 4.776984 3.903368 9.614626 +v 4.413916 3.811642 9.313672 +v 4.279389 4.441387 8.691921 +v 4.407647 5.416496 9.651818 +v 5.245049 5.016293 10.353980 +v 5.766538 3.866817 9.076891 +v 6.110804 4.365798 9.507801 +v 5.392238 4.536548 8.889204 +v 5.710385 4.208190 9.721409 +v 5.521016 3.933717 9.484380 +v 5.234162 4.566006 10.186864 +v 4.542175 4.786750 10.273569 +v 5.894797 4.841926 10.036788 +v 4.658165 4.165270 9.905604 +v 5.462790 5.072921 9.417212 +v 5.581608 4.811019 9.126233 +v 4.648205 4.506197 9.019449 +v 4.718757 5.042572 9.547458 +v 4.847535 4.439744 10.142633 +v 5.591568 4.470092 10.012388 +v 5.005611 4.410285 8.844974 +v 5.134389 3.807456 9.440148 +v -2.304173 12.054219 1.762968 +v -1.611939 12.082468 1.885909 +v 4.167477 7.264459 -1.324874 +v 4.167477 7.610869 -1.924874 +v 1.286039 5.672129 1.992879 +v 2.086039 5.672129 1.992879 +v 4.167477 8.407034 -1.324873 +v 2.086039 6.814704 1.992879 +v 4.167476 9.549609 -1.324874 +v 1.286038 7.957279 1.992879 +v 1.886039 7.610869 1.992879 +v 4.111430 -0.021469 2.055716 +v 1.048779 12.530713 1.780178 +v 4.529388 4.768099 9.310428 +v 5.105383 5.168836 9.591687 +vt 0.300000 0.670213 +vt 0.300000 0.606383 +vt 0.225000 0.606383 +vt 0.150000 0.606383 +vt 0.150000 0.670213 +vt 0.075000 0.606383 +vt -0.000000 0.606383 +vt -0.000000 0.670213 +vt 0.600000 0.670213 +vt 0.600000 0.606383 +vt 0.525000 0.606383 +vt 0.525000 0.670213 +vt 0.450000 0.606383 +vt 0.450000 0.670213 +vt 0.375000 0.606383 +vt 0.375000 0.670213 +vt 0.075000 0.574468 +vt 0.000000 0.574468 +vt 0.450000 0.574468 +vt 0.450000 0.531915 +vt 0.375000 0.531915 +vt 0.225000 0.574468 +vt 0.150000 0.574468 +vt 0.600000 0.574468 +vt 0.375000 0.574468 +vt 0.300000 0.574468 +vt 0.525000 0.574468 +vt 0.000000 0.531915 +vt 0.075000 0.531915 +vt 0.075000 0.500000 +vt 0.600000 0.531915 +vt 0.150000 0.531915 +vt 0.300000 0.531915 +vt 0.225000 0.531915 +vt 0.525000 0.531915 +vt 0.375000 0.500000 +vt 0.375000 0.478723 +vt 0.300000 0.478723 +vt 0.225000 0.500000 +vt 0.450000 0.500000 +vt 0.600000 0.500000 +vt 0.525000 0.500000 +vt 0.150000 0.500000 +vt 0.300000 0.500000 +vt 0.525000 0.478723 +vt 0.600000 0.478723 +vt 0.600000 0.138298 +vt 0.450000 0.478723 +vt 0.000000 0.500000 +vt 0.075000 0.478723 +vt 0.225000 0.478723 +vt 0.150000 0.478723 +vt 0.450000 0.138298 +vt 0.450000 0.117021 +vt 0.375000 0.117021 +vt 0.150000 0.138298 +vt 0.075000 0.138298 +vt 0.300000 0.138298 +vt 0.225000 0.138298 +vt 0.375000 0.138298 +vt 0.525000 0.138298 +vt -0.000000 0.478723 +vt 0.525000 0.117021 +vt 0.525000 0.095745 +vt 0.450000 0.095745 +vt 0.600000 0.117021 +vt 0.150000 0.117021 +vt 0.300000 0.117021 +vt 0.225000 0.117021 +vt 0.000000 0.138298 +vt 0.075000 0.117021 +vt 0.300000 0.095745 +vt 0.300000 0.053191 +vt 0.225000 0.053191 +vt 0.000000 0.117021 +vt 0.075000 0.095745 +vt 0.225000 0.095745 +vt 0.375000 0.095745 +vt 0.600000 0.095745 +vt 0.150000 0.095745 +vt 0.450000 0.053191 +vt 0.450000 0.031915 +vt 0.375000 0.031915 +vt 0.375000 0.053191 +vt 0.525000 0.053191 +vt 0.075000 0.053191 +vt -0.000000 0.053191 +vt 0.600000 0.053191 +vt 0.150000 0.053191 +vt 0.150000 0.031915 +vt 0.225000 0.031915 +vt 0.225000 0.000000 +vt 0.600000 0.031915 +vt 0.300000 0.031915 +vt 0.525000 0.031915 +vt 0.075000 0.031915 +vt -0.000000 0.031915 +vt 0.650000 0.212766 +vt 0.650000 0.191489 +vt 0.650000 0.202128 +vt 0.450000 0.000000 +vt 0.600000 0.000000 +vt 0.525000 0.000000 +vt 0.150000 0.000000 +vt 0.075000 0.000000 +vt 0.300000 0.000000 +vt 0.375000 0.000000 +vt 0.700000 0.414894 +vt 0.750000 0.414894 +vt 0.750000 0.542553 +vt 0.650000 0.414894 +vt 0.700000 0.542553 +vt 0.600000 0.414894 +vt 0.650000 0.542553 +vt 0.850000 0.414894 +vt 0.900000 0.414894 +vt 0.900000 0.542553 +vt 0.650000 0.563830 +vt 0.800000 0.414894 +vt 0.850000 0.542553 +vt 0.800000 0.542553 +vt 0.600000 0.393617 +vt 0.600000 0.563830 +vt 0.650000 0.563830 +vt 0.850000 0.563830 +vt 0.700000 0.563830 +vt 0.600000 0.542553 +vt 0.800000 0.563830 +vt 0.900000 0.563830 +vt 0.750000 0.563830 +vt 0.750000 0.563830 +vt 0.850000 0.563830 +vt 0.800000 0.563830 +vt 0.750000 0.393617 +vt 0.700000 0.393617 +vt 0.700000 0.372340 +vt 0.800000 0.393617 +vt 0.900000 0.393617 +vt 0.650000 0.393617 +vt 0.850000 0.393617 +vt 0.850000 0.372340 +vt 0.800000 0.372340 +vt 0.800000 0.308511 +vt 0.750000 0.372340 +vt 0.900000 0.372340 +vt 0.650000 0.372340 +vt 0.800000 0.287234 +vt 0.750000 0.308511 +vt 0.650000 0.308511 +vt 0.600000 0.372340 +vt 0.700000 0.308511 +vt 0.900000 0.308511 +vt 0.850000 0.287234 +vt 0.800000 0.265957 +vt 0.850000 0.308511 +vt 0.700000 0.287234 +vt 0.600000 0.308511 +vt 0.600000 0.287234 +vt 0.750000 0.287234 +vt 0.800000 0.244681 +vt 0.750000 0.265957 +vt 0.650000 0.265957 +vt 0.650000 0.287234 +vt 0.900000 0.287234 +vt 0.850000 0.265957 +vt 0.700000 0.265957 +vt 0.900000 0.265957 +vt 0.850000 0.244681 +vt 0.700000 0.244681 +vt 0.650000 0.244681 +vt 0.600000 0.265957 +vt 0.750000 0.414894 +vt 0.750000 0.542553 +vt 0.700000 0.542553 +vt 0.650000 0.414894 +vt 0.700000 0.414894 +vt 0.600000 0.414894 +vt 0.650000 0.542553 +vt 0.850000 0.414894 +vt 0.900000 0.414894 +vt 0.900000 0.542553 +vt 0.650000 0.563830 +vt 0.800000 0.414894 +vt 0.850000 0.542553 +vt 0.800000 0.542553 +vt 0.600000 0.393617 +vt 0.600000 0.563830 +vt 0.650000 0.563830 +vt 0.850000 0.563830 +vt 0.700000 0.563830 +vt 0.600000 0.542553 +vt 0.800000 0.563830 +vt 0.900000 0.563830 +vt 0.700000 0.563830 +vt 0.750000 0.563830 +vt 0.750000 0.563830 +vt 0.850000 0.563830 +vt 0.800000 0.563830 +vt 0.750000 0.393617 +vt 0.700000 0.393617 +vt 0.700000 0.372340 +vt 0.800000 0.393617 +vt 0.900000 0.393617 +vt 0.650000 0.393617 +vt 0.850000 0.393617 +vt 0.850000 0.308511 +vt 0.850000 0.372340 +vt 0.800000 0.372340 +vt 0.750000 0.372340 +vt 0.900000 0.372340 +vt 0.650000 0.372340 +vt 0.800000 0.287234 +vt 0.800000 0.308511 +vt 0.750000 0.308511 +vt 0.650000 0.308511 +vt 0.600000 0.372340 +vt 0.900000 0.308511 +vt 0.700000 0.308511 +vt 0.850000 0.287234 +vt 0.800000 0.265957 +vt 0.700000 0.287234 +vt 0.600000 0.308511 +vt 0.600000 0.287234 +vt 0.750000 0.287234 +vt 0.750000 0.265957 +vt 0.750000 0.244681 +vt 0.650000 0.265957 +vt 0.650000 0.287234 +vt 0.900000 0.287234 +vt 0.850000 0.265957 +vt 0.700000 0.265957 +vt 0.900000 0.265957 +vt 0.850000 0.244681 +vt 0.650000 0.244681 +vt 0.800000 0.244681 +vt 0.600000 0.265957 +vt 0.700000 0.244681 +vt 0.700000 0.414894 +vt 0.750000 0.414894 +vt 0.750000 0.542553 +vt 0.650000 0.414894 +vt 0.700000 0.542553 +vt 0.600000 0.414894 +vt 0.650000 0.542553 +vt 0.900000 0.414894 +vt 0.900000 0.542553 +vt 0.850000 0.542553 +vt 0.650000 0.563830 +vt 0.800000 0.414894 +vt 0.850000 0.414894 +vt 0.800000 0.542553 +vt 0.600000 0.393617 +vt 0.600000 0.563830 +vt 0.650000 0.563830 +vt 0.850000 0.563830 +vt 0.700000 0.563830 +vt 0.600000 0.542553 +vt 0.800000 0.563830 +vt 0.900000 0.563830 +vt 0.700000 0.563830 +vt 0.750000 0.563830 +vt 0.750000 0.563830 +vt 0.850000 0.563830 +vt 0.800000 0.563830 +vt 0.750000 0.393617 +vt 0.700000 0.393617 +vt 0.700000 0.372340 +vt 0.800000 0.393617 +vt 0.900000 0.393617 +vt 0.650000 0.393617 +vt 0.850000 0.393617 +vt 0.850000 0.308511 +vt 0.850000 0.372340 +vt 0.800000 0.372340 +vt 0.750000 0.372340 +vt 0.900000 0.372340 +vt 0.650000 0.372340 +vt 0.800000 0.287234 +vt 0.800000 0.308511 +vt 0.750000 0.308511 +vt 0.650000 0.308511 +vt 0.600000 0.372340 +vt 0.700000 0.308511 +vt 0.900000 0.308511 +vt 0.850000 0.287234 +vt 0.800000 0.265957 +vt 0.700000 0.287234 +vt 0.600000 0.308511 +vt 0.600000 0.287234 +vt 0.750000 0.287234 +vt 0.800000 0.244681 +vt 0.750000 0.265957 +vt 0.650000 0.265957 +vt 0.650000 0.287234 +vt 0.900000 0.287234 +vt 0.850000 0.265957 +vt 0.700000 0.265957 +vt 0.900000 0.244681 +vt 0.900000 0.265957 +vt 0.700000 0.244681 +vt 0.650000 0.244681 +vt 0.600000 0.265957 +vt 0.600000 0.617021 +vt 1.000000 0.617021 +vt 1.000000 0.872340 +vt 0.800000 0.574468 +vt 0.725000 1.000000 +vt 0.775000 1.000000 +vt 0.775000 0.968085 +vt 0.900000 0.946809 +vt 0.900000 0.925532 +vt 0.825000 0.925532 +vt 0.775000 0.925532 +vt 0.725000 0.925532 +vt 0.725000 0.946809 +vt 0.775000 0.872340 +vt 0.725000 0.872340 +vt 0.725000 0.904255 +vt 0.725000 0.968085 +vt 0.675000 0.957447 +vt 0.700000 0.904255 +vt 0.675000 0.925532 +vt 0.775000 0.946809 +vt 0.800000 0.968085 +vt 0.825000 0.946809 +vt 0.825000 0.914894 +vt 0.775000 0.904255 +vt 0.675000 0.968085 +vt 0.675000 0.946809 +vt 0.675000 0.904255 +vt 0.600000 0.904255 +vt 0.825000 0.904255 +vt 0.825000 0.872340 +vt 0.825000 0.968085 +vt 0.900000 0.968085 +vt 0.600000 0.946809 +vt 0.500000 0.819149 +vt 0.450000 0.680851 +vt 0.600000 0.680851 +vt 0.200000 0.680851 +vt 0.400000 0.670213 +vt 0.400000 0.680851 +vt 0.450000 0.680851 +vt 0.500000 0.819149 +vt 0.600000 0.680851 +vt 0.350000 0.808511 +vt -0.000000 0.808511 +vt -0.000000 0.808511 +vt 0.450000 0.776596 +vt 0.450000 0.776596 +vt 0.600000 0.670213 +vt 0.600000 0.680851 +vt 0.400000 0.829787 +vt 0.000000 0.744681 +vt 0.400000 0.744681 +vt 0.367646 0.906487 +vt 0.264324 0.923051 +vt 0.200000 0.886356 +vt -0.000000 0.680851 +vt 0.200000 0.670213 +vt 0.000000 0.680851 +vt 0.200000 0.670213 +vt 0.200000 0.680851 +vt 0.400000 0.680851 +vt 0.600000 0.670213 +vt 0.600000 0.680851 +vt 0.000000 0.872340 +vt 0.000000 0.829787 +vt 0.400000 0.851064 +vt 0.400000 0.914894 +vt 0.425000 0.936170 +vt 0.425000 0.936170 +vt 0.400000 0.914894 +vt 0.400000 0.851064 +vt 0.032375 0.905936 +vt 0.000000 0.892689 +vt 0.400000 0.670213 +vt 0.023970 0.953893 +vt 0.000000 0.951724 +vt 0.000000 0.943542 +vt 0.000208 0.951552 +vt 0.024325 0.954014 +vt 0.000146 0.944235 +vt 0.033307 1.000013 +vt 0.149213 0.979143 +vt 0.164803 0.999942 +vt 0.049562 0.978983 +vt 0.199375 0.962579 +vt 0.200000 0.936170 +vt 0.164470 0.999838 +vt 0.049789 0.978879 +vt 0.033078 0.999768 +vt 0.199676 0.962867 +vt 0.149875 0.978930 +vt 0.136751 0.923375 +vt 0.064166 0.922831 +vt 0.200000 0.712766 +vt 0.450000 0.936170 +vt 0.450000 0.936170 +vt 0.336909 0.922751 +vt -0.000000 0.670213 +vt 0.000000 0.670213 +vt 0.400000 0.872340 +vt 0.391494 0.895694 +vt 0.199314 0.936954 +vt 0.400000 0.680851 +vt 0.000000 0.680851 +vt 0.750000 0.542553 +vt 0.750000 0.414894 +vt 0.700000 0.414894 +vt 0.700000 0.542553 +vt 0.650000 0.414894 +vt 0.650000 0.542553 +vt 0.600000 0.414894 +vt 0.900000 0.542553 +vt 0.900000 0.414894 +vt 0.850000 0.414894 +vt 0.650000 0.563830 +vt 0.850000 0.542553 +vt 0.800000 0.414894 +vt 0.800000 0.542553 +vt 0.650000 0.393617 +vt 0.600000 0.393617 +vt 0.600000 0.563830 +vt 0.600000 0.563830 +vt 0.800000 0.563830 +vt 0.850000 0.563830 +vt 0.700000 0.563830 +vt 0.600000 0.542553 +vt 0.750000 0.563830 +vt 0.900000 0.563830 +vt 0.700000 0.563830 +vt 0.750000 0.563830 +vt 0.850000 0.563830 +vt 0.650000 0.563830 +vt 0.800000 0.563830 +vt 0.750000 0.393617 +vt 0.750000 0.372340 +vt 0.700000 0.372340 +vt 0.800000 0.393617 +vt 0.900000 0.393617 +vt 0.700000 0.393617 +vt 0.850000 0.393617 +vt 0.850000 0.372340 +vt 0.850000 0.308511 +vt 0.800000 0.308511 +vt 0.800000 0.372340 +vt 0.900000 0.372340 +vt 0.650000 0.372340 +vt 0.750000 0.308511 +vt 0.800000 0.287234 +vt 0.650000 0.308511 +vt 0.600000 0.308511 +vt 0.900000 0.308511 +vt 0.700000 0.308511 +vt 0.850000 0.287234 +vt 0.850000 0.265957 +vt 0.800000 0.265957 +vt 0.900000 0.287234 +vt 0.700000 0.287234 +vt 0.650000 0.287234 +vt 0.600000 0.287234 +vt 0.750000 0.287234 +vt 0.750000 0.265957 +vt 0.800000 0.244681 +vt 0.650000 0.265957 +vt 0.900000 0.265957 +vt 0.700000 0.265957 +vt 0.900000 0.244681 +vt 0.700000 0.244681 +vt 0.850000 0.244681 +vt 0.600000 0.265957 +vt 0.650000 0.244681 +vt 0.750000 0.244681 +vt 0.750000 0.542553 +vt 0.750000 0.414894 +vt 0.700000 0.414894 +vt 0.700000 0.542553 +vt 0.650000 0.414894 +vt 0.650000 0.542553 +vt 0.600000 0.414894 +vt 0.900000 0.542553 +vt 0.900000 0.414894 +vt 0.850000 0.414894 +vt 0.650000 0.563830 +vt 0.850000 0.542553 +vt 0.800000 0.414894 +vt 0.800000 0.542553 +vt 0.650000 0.393617 +vt 0.600000 0.393617 +vt 0.600000 0.563830 +vt 0.600000 0.563830 +vt 0.650000 0.563830 +vt 0.800000 0.563830 +vt 0.850000 0.563830 +vt 0.700000 0.563830 +vt 0.600000 0.542553 +vt 0.750000 0.563830 +vt 0.900000 0.563830 +vt 0.700000 0.563830 +vt 0.750000 0.563830 +vt 0.850000 0.563830 +vt 0.900000 0.563830 +vt 0.800000 0.563830 +vt 0.750000 0.393617 +vt 0.750000 0.372340 +vt 0.700000 0.372340 +vt 0.800000 0.393617 +vt 0.900000 0.393617 +vt 0.700000 0.393617 +vt 0.850000 0.393617 +vt 0.850000 0.372340 +vt 0.850000 0.308511 +vt 0.800000 0.308511 +vt 0.800000 0.372340 +vt 0.900000 0.372340 +vt 0.650000 0.372340 +vt 0.750000 0.308511 +vt 0.800000 0.287234 +vt 0.600000 0.372340 +vt 0.650000 0.308511 +vt 0.700000 0.308511 +vt 0.900000 0.308511 +vt 0.850000 0.287234 +vt 0.850000 0.265957 +vt 0.800000 0.265957 +vt 0.900000 0.287234 +vt 0.700000 0.287234 +vt 0.650000 0.287234 +vt 0.600000 0.287234 +vt 0.750000 0.287234 +vt 0.750000 0.265957 +vt 0.800000 0.244681 +vt 0.650000 0.265957 +vt 0.900000 0.265957 +vt 0.700000 0.265957 +vt 0.900000 0.244681 +vt 0.700000 0.244681 +vt 0.850000 0.244681 +vt 0.600000 0.265957 +vt 0.650000 0.244681 +vt 0.750000 0.244681 +vt 0.750000 0.542553 +vt 0.750000 0.414894 +vt 0.700000 0.414894 +vt 0.650000 0.414894 +vt 0.650000 0.542553 +vt 0.600000 0.414894 +vt 0.900000 0.542553 +vt 0.900000 0.414894 +vt 0.850000 0.414894 +vt 0.700000 0.542553 +vt 0.650000 0.563830 +vt 0.850000 0.542553 +vt 0.800000 0.414894 +vt 0.650000 0.393617 +vt 0.600000 0.393617 +vt 0.600000 0.563830 +vt 0.600000 0.563830 +vt 0.650000 0.563830 +vt 0.800000 0.542553 +vt 0.800000 0.563830 +vt 0.850000 0.563830 +vt 0.700000 0.563830 +vt 0.600000 0.542553 +vt 0.750000 0.563830 +vt 0.900000 0.563830 +vt 0.700000 0.563830 +vt 0.750000 0.563830 +vt 0.850000 0.563830 +vt 0.800000 0.563830 +vt 0.750000 0.393617 +vt 0.750000 0.372340 +vt 0.700000 0.372340 +vt 0.800000 0.393617 +vt 0.900000 0.393617 +vt 0.700000 0.393617 +vt 0.850000 0.393617 +vt 0.800000 0.372340 +vt 0.850000 0.372340 +vt 0.850000 0.308511 +vt 0.900000 0.372340 +vt 0.650000 0.372340 +vt 0.750000 0.308511 +vt 0.800000 0.308511 +vt 0.800000 0.287234 +vt 0.600000 0.372340 +vt 0.650000 0.308511 +vt 0.700000 0.308511 +vt 0.900000 0.308511 +vt 0.850000 0.287234 +vt 0.850000 0.265957 +vt 0.800000 0.265957 +vt 0.900000 0.287234 +vt 0.700000 0.287234 +vt 0.650000 0.287234 +vt 0.600000 0.287234 +vt 0.750000 0.287234 +vt 0.750000 0.265957 +vt 0.800000 0.244681 +vt 0.650000 0.265957 +vt 0.900000 0.265957 +vt 0.700000 0.265957 +vt 0.900000 0.244681 +vt 0.850000 0.244681 +vt 0.700000 0.244681 +vt 0.600000 0.265957 +vt 0.650000 0.244681 +vt 0.750000 0.244681 +vt 0.225000 0.606383 +vt 0.300000 0.606383 +vt 0.300000 0.670213 +vt 0.225000 0.670213 +vt 0.150000 0.670213 +vt 0.075000 0.606383 +vt 0.150000 0.606383 +vt 0.075000 0.670213 +vt -0.000000 0.670213 +vt 0.525000 0.606383 +vt 0.600000 0.606383 +vt 0.600000 0.670213 +vt 0.450000 0.606383 +vt 0.525000 0.670213 +vt 0.375000 0.606383 +vt 0.450000 0.670213 +vt 0.375000 0.670213 +vt -0.000000 0.606383 +vt 0.000000 0.574468 +vt 0.450000 0.574468 +vt 0.375000 0.574468 +vt 0.375000 0.531915 +vt 0.150000 0.574468 +vt 0.600000 0.574468 +vt 0.225000 0.574468 +vt 0.075000 0.574468 +vt 0.525000 0.574468 +vt 0.075000 0.500000 +vt 0.075000 0.531915 +vt 0.000000 0.531915 +vt 0.600000 0.531915 +vt 0.150000 0.531915 +vt 0.300000 0.574468 +vt 0.225000 0.531915 +vt 0.300000 0.531915 +vt 0.525000 0.531915 +vt 0.375000 0.500000 +vt 0.300000 0.500000 +vt 0.300000 0.478723 +vt 0.225000 0.500000 +vt 0.450000 0.531915 +vt 0.525000 0.500000 +vt 0.150000 0.500000 +vt 0.450000 0.500000 +vt 0.600000 0.478723 +vt 0.525000 0.478723 +vt 0.525000 0.138298 +vt 0.450000 0.478723 +vt 0.075000 0.478723 +vt 0.000000 0.500000 +vt 0.150000 0.478723 +vt 0.375000 0.478723 +vt 0.600000 0.500000 +vt 0.225000 0.478723 +vt 0.450000 0.138298 +vt 0.375000 0.138298 +vt 0.375000 0.117021 +vt 0.150000 0.138298 +vt 0.300000 0.138298 +vt -0.000000 0.478723 +vt 0.000000 0.138298 +vt 0.525000 0.117021 +vt 0.450000 0.117021 +vt 0.450000 0.095745 +vt 0.600000 0.138298 +vt 0.150000 0.117021 +vt 0.075000 0.138298 +vt 0.300000 0.117021 +vt 0.225000 0.138298 +vt 0.000000 0.117021 +vt 0.225000 0.117021 +vt 0.300000 0.053191 +vt 0.300000 0.095745 +vt 0.225000 0.095745 +vt 0.075000 0.095745 +vt 0.075000 0.117021 +vt 0.150000 0.095745 +vt 0.600000 0.095745 +vt 0.600000 0.117021 +vt 0.450000 0.053191 +vt 0.375000 0.053191 +vt 0.375000 0.031915 +vt 0.375000 0.095745 +vt 0.525000 0.095745 +vt -0.000000 0.095745 +vt -0.000000 0.053191 +vt 0.225000 0.053191 +vt 0.600000 0.053191 +vt 0.150000 0.053191 +vt 0.225000 0.000000 +vt 0.225000 0.031915 +vt 0.150000 0.031915 +vt 0.600000 0.031915 +vt 0.525000 0.053191 +vt 0.075000 0.053191 +vt 0.450000 0.031915 +vt -0.000000 0.031915 +vt 0.700000 0.202128 +vt 0.675000 0.191489 +vt 0.700000 0.191489 +vt 0.375000 0.000000 +vt 0.525000 0.031915 +vt 0.525000 0.000000 +vt 0.075000 0.031915 +vt 0.075000 0.000000 +vt 0.300000 0.000000 +vt 0.300000 0.031915 +vt 0.225000 0.670213 +vt 0.075000 0.670213 +vt -0.000000 0.095745 +vt 0.675000 0.191489 +vt 0.650000 0.191489 +vt 0.700000 0.191489 +vt 0.700000 0.202128 +vt 0.675000 0.212766 +vt 0.000000 0.000000 +vt 0.600000 0.563830 +vt 0.700000 0.563830 +vt 0.900000 0.563830 +vt 0.750000 0.244681 +vt 0.900000 0.244681 +vt 0.600000 0.244681 +vt 0.600000 0.563830 +vt 0.900000 0.563830 +vt 0.900000 0.244681 +vt 0.600000 0.244681 +vt 0.600000 0.563830 +vt 0.900000 0.563830 +vt 0.750000 0.244681 +vt 0.850000 0.244681 +vt 0.600000 0.244681 +vt 0.600000 0.872340 +vt 0.675000 1.000000 +vt 0.600000 0.925532 +vt 0.900000 0.563830 +vt 0.600000 0.372340 +vt 0.600000 0.244681 +vt 0.600000 0.308511 +vt 0.600000 0.244681 +vt 0.900000 0.563830 +vt 0.600000 0.308511 +vt 0.600000 0.244681 +vt 0.150000 0.000000 +vt 0.650000 0.212766 +vt 0.650000 0.191489 +vt 0.650000 0.191489 +vt 0.650000 0.202128 +vt 0.675000 0.212766 +vt 0.450000 0.000000 +vt 0.600000 0.000000 +vt 0.000000 0.000000 +vn -0.9238 0.3453 -0.1657 +vn -0.4123 0.9078 -0.0772 +vn 0.3407 0.9385 0.0565 +vn 0.8941 0.4195 0.1571 +vn 0.9238 -0.3453 0.1657 +vn 0.4123 -0.9078 0.0772 +vn -0.3407 -0.9385 -0.0565 +vn -0.8941 -0.4195 -0.1571 +vn 0.5284 0.3087 0.7909 +vn 0.5294 0.3133 0.7884 +vn 0.5323 0.3112 0.7873 +vn 0.7590 -0.6336 -0.1500 +vn 0.7580 -0.6337 -0.1542 +vn 0.7583 -0.6335 -0.1536 +vn -0.2527 -0.8746 -0.4137 +vn -0.3054 0.8529 -0.4235 +vn 0.5500 -0.2491 0.7971 +vn 0.5529 -0.2486 0.7953 +vn 0.5541 -0.2513 0.7936 +vn -0.5170 -0.3029 -0.8006 +vn -0.5229 0.2631 -0.8107 +vn 0.2495 0.8744 0.4162 +vn 0.2462 0.8809 0.4043 +vn 0.2536 0.8773 0.4074 +vn 0.3161 -0.8429 0.4355 +vn 0.3204 -0.8440 0.4301 +vn 0.3206 -0.8457 0.4267 +vn -0.4890 0.4765 0.7306 +vn 0.2248 -0.3337 0.9155 +vn 0.2198 -0.3381 0.9151 +vn 0.2183 -0.3378 0.9156 +vn -0.7475 0.6474 0.1487 +vn -0.7463 0.6488 0.1487 +vn -0.7456 0.6492 0.1503 +vn -0.2214 0.3366 -0.9153 +vn -0.2147 0.3340 -0.9178 +vn -0.2161 0.3382 -0.9159 +vn 0.5260 -0.3410 -0.7791 +vn 0.5181 -0.3369 -0.7862 +vn 0.5200 -0.3451 -0.7814 +vn 0.6598 -0.6313 0.4077 +vn 0.6560 -0.6395 0.4008 +vn 0.6575 -0.6314 0.4112 +vn -0.5228 0.3439 0.7800 +vn -0.5197 0.3458 0.7813 +vn -0.5181 0.3455 0.7824 +vn -0.6496 0.6449 -0.4026 +vn -0.6477 0.6454 -0.4049 +vn -0.6471 0.6469 -0.4035 +vn 0.2417 0.4880 -0.8387 +vn -0.8223 -0.2123 -0.5280 +vn 0.9711 -0.1414 -0.1922 +vn 0.2313 0.6321 0.7396 +vn -0.9663 0.1498 0.2096 +vn -0.1874 -0.4121 -0.8917 +vn -0.1829 -0.4058 -0.8955 +vn -0.1864 -0.4039 -0.8956 +vn 0.5147 -0.3834 -0.7669 +vn 0.5197 -0.3801 -0.7651 +vn 0.5144 -0.3751 -0.7711 +vn 0.8382 0.2409 0.4893 +vn 0.2397 0.6922 0.6808 +vn 0.3387 0.7628 -0.5509 +vn -0.0573 0.8588 -0.5092 +vn -0.1542 0.5840 -0.7970 +vn 0.3722 0.6055 -0.7035 +vn 0.1608 0.8677 -0.4704 +vn -0.1878 0.7413 -0.6444 +vn 0.0236 0.4791 -0.8774 +vn 0.3186 -0.7369 0.5962 +vn -0.9634 0.2559 0.0803 +vn -0.2337 -0.6489 -0.7240 +vn 0.5189 -0.6182 -0.5904 +vn 0.8536 0.3301 0.4030 +vn -0.5130 0.6615 0.5471 +vn -0.8477 -0.2868 -0.4462 +vn 0.9693 -0.2127 -0.1236 +vn 0.4866 0.7659 -0.4203 +vn 0.0120 -0.3567 0.9341 +vn -0.4934 -0.5400 0.6818 +vn -0.1869 -0.9202 0.3439 +vn 0.1293 -0.9073 0.4001 +vn 0.2700 -0.5089 0.8174 +vn -0.3042 -0.3696 0.8780 +vn -0.3042 -0.3697 0.8780 +vn -0.4448 -0.7681 0.4606 +vn -0.2368 -0.6709 -0.7027 +vn -0.1587 0.9224 -0.3522 +vn -0.3167 0.4746 -0.8212 +vn 0.5412 0.5096 -0.6689 +vn 0.1967 0.9369 -0.2891 +vn -0.3713 0.7309 -0.5726 +vn -0.0268 0.3036 -0.9524 +vn 0.3285 0.3181 -0.8893 +vn 0.3409 -0.7347 0.5865 +vn 0.5162 -0.6402 -0.5690 +vn 0.8511 0.3086 0.4248 +vn -0.5162 0.6402 0.5690 +vn -0.8511 -0.3086 -0.4248 +vn 0.9668 -0.2344 -0.1020 +vn 0.2368 0.6709 0.7027 +vn -0.9668 0.2344 0.1020 +vn 0.0183 -0.3345 0.9422 +vn -0.5138 -0.5274 0.6767 +vn -0.1911 -0.9276 0.3209 +vn 0.1418 -0.9140 0.3800 +vn 0.2898 -0.4946 0.8194 +vn -0.3146 -0.3481 0.8831 +vn -0.4626 -0.7675 0.4438 +vn -0.0963 -0.7035 0.7041 +vn 0.8660 0.5000 -0.0000 +vn -0.0000 1.0000 0.0000 +vn -0.8660 0.5000 0.0000 +vn -0.8660 -0.5000 0.0000 +vn 0.0000 -1.0000 -0.0000 +vn 0.8660 -0.5000 -0.0000 +vn -0.7408 0.4277 -0.5179 +vn 0.0000 0.5000 0.8660 +vn 0.6706 0.3872 -0.6327 +vn -0.8186 0.4726 0.3266 +vn 0.6706 -0.3872 -0.6327 +vn -0.8186 -0.4726 0.3265 +vn 0.0000 0.5000 -0.8660 +vn 0.0000 -0.5000 -0.8660 +vn 0.0000 -0.5000 0.8660 +vn -0.2292 0.4867 0.8430 +vn 0.6722 -0.3744 0.6387 +vn 0.6661 -0.3846 0.6391 +vn 0.6635 -0.3770 0.6463 +vn -0.7408 -0.4277 -0.5179 +vn 0.6635 0.3770 0.6463 +vn 0.6661 0.3846 0.6391 +vn 0.6722 0.3744 0.6387 +vn 0.7071 -0.7071 0.0000 +vn 0.2405 -0.4853 0.8406 +vn 0.2405 -0.4853 -0.8406 +vn -0.4261 0.9047 0.0000 +vn 0.4866 -0.8736 0.0000 +vn -0.2292 0.4867 -0.8430 +vn 0.2000 -0.4905 0.8482 +vn 0.2010 -0.4911 0.8476 +vn 0.1992 -0.4910 0.8481 +vn -0.3536 0.3536 -0.8660 +vn -0.3536 0.3536 0.8660 +vn 0.3536 -0.3536 0.8660 +vn 0.3536 -0.3536 -0.8660 +vn -0.7071 0.7071 0.0000 +vn 0.1993 -0.4910 -0.8481 +vn 0.2010 -0.4911 -0.8476 +vn 0.2000 -0.4905 -0.8482 +vn -0.3700 0.9290 0.0000 +vn 0.3788 -0.9255 0.0000 +vn -0.1955 0.4910 -0.8489 +vn -0.2000 0.4919 -0.8474 +vn -0.1965 0.4897 -0.8494 +vn -0.1965 0.4897 0.8494 +vn -0.2000 0.4919 0.8474 +vn -0.1955 0.4910 0.8489 +vn 0.6780 0.3675 -0.6366 +vn -0.6599 0.3773 0.6497 +vn -0.6616 0.3749 0.6494 +vn -0.6650 0.3760 0.6453 +vn -0.6650 -0.3760 0.6453 +vn -0.6616 -0.3749 0.6494 +vn -0.6600 -0.3773 0.6497 +vn 0.6780 -0.3675 -0.6366 +vn -0.8185 0.4726 0.3265 +vn 0.1993 -0.4910 0.8481 +vn 0.1993 -0.4910 -0.8480 +vn -0.1966 0.4898 0.8494 +vn -0.6600 0.3773 0.6497 +vn -0.6599 -0.3773 0.6497 +vn -0.8185 -0.4726 0.3266 +vn 0.2009 -0.4909 0.8477 +vn 0.1993 -0.4911 0.8480 +vn -0.1955 0.4911 -0.8489 +vn -0.1965 0.4898 -0.8494 +vn -0.1965 0.4898 0.8494 +vn -0.1954 0.4911 0.8489 +vn 0.0000 0.0000 1.0000 +vn -0.7071 -0.7071 -0.0000 +vn 0.0000 0.8165 0.5774 +vn 0.8165 0.0000 0.5773 +vn -0.8165 0.0000 0.5773 +vn 0.0000 -0.8165 0.5773 +vn 0.5000 0.5000 0.7071 +vn 1.0000 0.0000 -0.0000 +vn 0.5000 -0.5000 0.7071 +vn -0.5000 -0.5000 0.7071 +vn -1.0000 0.0000 0.0000 +vn -0.5000 0.5000 0.7071 +vn 0.7071 0.7071 0.0000 +vn 0.8821 -0.4711 -0.0000 +vn -0.0000 -0.0753 -0.9972 +vn -0.0000 0.0000 -1.0000 +vn -0.8821 -0.4711 0.0000 +vn -0.0000 0.1982 -0.9802 +vn -0.3472 -0.2966 -0.8897 +vn 0.3472 -0.2966 -0.8897 +vn -0.0000 -0.3162 -0.9487 +vn -0.3568 -0.1906 -0.9145 +vn 0.3568 -0.1906 -0.9145 +vn -0.0000 0.2251 -0.9743 +vn 0.4159 0.9094 0.0000 +vn -0.4159 0.9094 0.0000 +vn 0.6917 0.3611 -0.6254 +vn -0.6706 0.3872 -0.6327 +vn 0.8185 0.4726 0.3266 +vn -0.6711 -0.3707 -0.6420 +vn 0.7107 -0.3518 0.6093 +vn 0.2310 0.4662 0.8540 +vn -0.6635 -0.3770 0.6463 +vn -0.6661 -0.3846 0.6391 +vn -0.6722 -0.3744 0.6387 +vn 0.7408 -0.4277 -0.5179 +vn -0.6635 0.3770 0.6463 +vn -0.6666 0.3727 0.6456 +vn -0.6722 0.3744 0.6387 +vn -0.2505 -0.4496 0.8574 +vn -0.2405 -0.4853 -0.8406 +vn 0.4261 0.9047 -0.0000 +vn -0.4866 -0.8736 0.0000 +vn 0.2292 0.4867 -0.8430 +vn -0.1992 -0.4910 0.8481 +vn -0.2010 -0.4911 0.8476 +vn -0.2000 -0.4905 0.8482 +vn 0.3536 0.3536 -0.8660 +vn 0.3536 0.3536 0.8660 +vn -0.3536 -0.3536 0.8660 +vn -0.3536 -0.3536 -0.8660 +vn -0.1993 -0.4910 -0.8481 +vn -0.1992 -0.4900 -0.8487 +vn -0.2000 -0.4905 -0.8482 +vn 0.3700 0.9290 -0.0000 +vn -0.3788 -0.9255 -0.0000 +vn 0.1955 0.4910 -0.8489 +vn 0.1953 0.4904 -0.8493 +vn 0.1965 0.4897 -0.8494 +vn 0.1955 0.4910 0.8489 +vn 0.2000 0.4919 0.8474 +vn 0.1965 0.4897 0.8494 +vn -0.6780 0.3675 -0.6366 +vn 0.6650 0.3760 0.6453 +vn 0.6616 0.3749 0.6494 +vn 0.6600 0.3773 0.6497 +vn 0.6650 -0.3760 0.6453 +vn 0.6615 -0.3819 0.6455 +vn 0.6600 -0.3773 0.6497 +vn -0.7285 -0.4206 -0.5408 +vn -0.1992 -0.4910 -0.8481 +vn 0.1953 0.4904 -0.8494 +vn 0.1966 0.4898 -0.8494 +vn 0.6599 0.3773 0.6497 +vn -0.1993 -0.4900 -0.8487 +vn 0.1965 0.4898 -0.8494 +vn 0.8939 0.4195 -0.1581 +vn 0.3394 0.9385 -0.0634 +vn -0.4139 0.9078 0.0685 +vn -0.9247 0.3453 0.1602 +vn -0.8939 -0.4195 0.1581 +vn -0.3394 -0.9385 0.0634 +vn 0.4139 -0.9078 -0.0685 +vn 0.9247 -0.3453 -0.1602 +vn -0.5527 0.2549 0.7935 +vn -0.5555 0.2544 0.7916 +vn -0.5567 0.2571 0.7899 +vn -0.7062 -0.6894 -0.1611 +vn -0.6997 -0.6973 -0.1559 +vn -0.7053 -0.6894 -0.1650 +vn 0.3218 -0.8460 -0.4250 +vn 0.2526 0.8715 -0.4203 +vn -0.5341 -0.3054 0.7884 +vn -0.5331 -0.3026 0.7901 +vn -0.5302 -0.3029 0.7919 +vn 0.5409 -0.2499 -0.8031 +vn 0.5189 0.2970 -0.8016 +vn -0.3186 0.8460 0.4275 +vn -0.3228 0.8471 0.4221 +vn -0.3230 0.8487 0.4187 +vn -0.2535 -0.8743 0.4140 +vn -0.2535 -0.8726 0.4174 +vn -0.2494 -0.8713 0.4228 +vn 0.4484 0.5033 0.7386 +vn -0.1928 -0.3667 0.9101 +vn -0.1941 -0.3673 0.9096 +vn -0.1995 -0.3633 0.9101 +vn 0.6917 0.7039 0.1616 +vn 0.6924 0.7035 0.1599 +vn 0.6938 0.7022 0.1599 +vn 0.1959 0.3658 -0.9098 +vn 0.1924 0.3674 -0.9099 +vn 0.1904 0.3670 -0.9105 +vn -0.4960 -0.3706 -0.7853 +vn -0.4908 -0.3746 -0.7867 +vn -0.4896 -0.3741 -0.7876 +vn -0.6063 -0.6870 0.4005 +vn -0.6042 -0.6949 0.3899 +vn -0.6086 -0.6870 0.3970 +vn 0.4876 0.3744 0.7887 +vn 0.4893 0.3748 0.7875 +vn 0.4925 0.3731 0.7863 +vn 0.5973 0.6998 -0.3917 +vn 0.5960 0.7012 -0.3913 +vn 0.5947 0.7016 -0.3926 +vn -0.2779 0.4791 -0.8326 +vn 0.8375 -0.1393 -0.5284 +vn -0.9533 -0.2123 -0.2149 +vn -0.2096 0.4765 0.8538 +vn 0.9510 0.2227 0.2145 +vn 0.2196 -0.3752 -0.9006 +vn 0.2161 -0.3775 -0.9005 +vn 0.2213 -0.3834 -0.8967 +vn -0.4812 -0.4120 -0.7738 +vn -0.4781 -0.4058 -0.7789 +vn -0.4816 -0.4039 -0.7778 +vn -0.8363 0.1498 0.5274 +vn -0.2949 0.6615 0.6895 +vn -0.3968 0.7413 -0.5413 +vn -0.0098 0.8677 -0.4971 +vn 0.1091 0.6055 -0.7883 +vn -0.4175 0.5840 -0.6961 +vn -0.2280 0.8588 -0.4589 +vn 0.1298 0.7628 -0.6335 +vn -0.0597 0.4880 -0.8708 +vn -0.2605 -0.7681 0.5850 +vn 0.9400 0.3301 0.0867 +vn 0.2857 -0.6182 -0.7322 +vn -0.4673 -0.6489 -0.6004 +vn -0.8778 0.2559 0.4049 +vn 0.4580 0.6922 0.5577 +vn 0.8686 -0.2127 -0.4476 +vn -0.9492 -0.2869 -0.1294 +vn -0.9492 -0.2868 -0.1294 +vn -0.5448 0.7309 -0.4111 +vn 0.0144 -0.3696 0.9291 +vn 0.5333 -0.5089 0.6758 +vn 0.2584 -0.9073 0.3317 +vn -0.0580 -0.9202 0.3871 +vn -0.2305 -0.5400 0.8095 +vn 0.3308 -0.3567 0.8737 +vn 0.5033 -0.7369 0.4513 +vn 0.2904 -0.6402 -0.7112 +vn 0.0859 0.9369 -0.3390 +vn 0.2798 0.5096 -0.8136 +vn -0.5785 0.4746 -0.6634 +vn -0.2696 0.9224 -0.2767 +vn 0.3135 0.7659 -0.5614 +vn 0.0046 0.3181 -0.9480 +vn -0.3509 0.3036 -0.8858 +vn -0.2829 -0.7675 0.5753 +vn -0.4629 -0.6709 -0.5794 +vn -0.8736 0.2344 0.4265 +vn 0.4629 0.6709 0.5794 +vn 0.8736 -0.2344 -0.4265 +vn -0.9450 -0.3086 -0.1081 +vn -0.2904 0.6402 0.7112 +vn 0.9450 0.3086 0.1081 +vn 0.0064 -0.3481 0.9374 +vn 0.5526 -0.4946 0.6708 +vn 0.2632 -0.9140 0.3086 +vn -0.0698 -0.9276 0.3669 +vn -0.2514 -0.5274 0.8116 +vn 0.3394 -0.3345 0.8792 +vn 0.5210 -0.7347 0.4345 +vn 0.1503 -0.7035 0.6946 +vn 0.5313 0.3085 0.7890 +vn 0.7530 -0.6419 -0.1448 +vn -0.2380 -0.8833 -0.4040 +vn -0.3194 0.8429 -0.4330 +vn 0.5514 -0.2536 0.7948 +vn -0.5003 -0.3209 -0.8042 +vn -0.5383 0.2440 -0.8067 +vn 0.2536 0.8757 0.4108 +vn 0.3133 -0.8499 0.4237 +vn -0.5206 0.6014 0.6061 +vn 0.2149 -0.3296 0.9194 +vn -0.7466 0.6478 0.1514 +vn -0.2181 0.3385 -0.9154 +vn 0.5212 -0.3455 -0.7804 +vn 0.6575 -0.6313 0.4113 +vn -0.5173 0.3413 0.7848 +vn -0.6484 0.6464 -0.4023 +vn -0.8314 -0.2150 -0.5124 +vn 0.9677 -0.1393 -0.2101 +vn 0.1687 0.5033 0.8475 +vn -0.9715 0.1671 0.1679 +vn -0.1933 -0.4091 -0.8918 +vn 0.5110 -0.3775 -0.7722 +vn 0.8203 0.2227 0.5269 +vn -0.5138 -0.5274 0.6766 +vn -0.6917 0.3611 -0.6254 +vn 0.6711 0.3707 -0.6420 +vn -0.7107 0.3518 0.6093 +vn 0.6711 -0.3707 -0.6420 +vn -0.7107 -0.3518 0.6093 +vn -0.2310 0.4662 0.8540 +vn 0.6666 -0.3727 0.6456 +vn -0.6917 -0.3611 -0.6254 +vn 0.6666 0.3727 0.6456 +vn 0.2505 -0.4496 0.8574 +vn 0.2505 -0.4496 -0.8574 +vn -0.2310 0.4662 -0.8540 +vn 0.1992 -0.4900 0.8487 +vn 0.1992 -0.4900 -0.8487 +vn -0.1953 0.4904 -0.8493 +vn -0.1953 0.4904 0.8493 +vn 0.7285 0.4206 -0.5408 +vn -0.6615 0.3819 0.6455 +vn -0.6615 -0.3819 0.6455 +vn 0.7285 -0.4206 -0.5408 +vn -0.1953 0.4904 -0.8494 +vn -0.1953 0.4904 0.8494 +vn 0.7408 0.4277 -0.5179 +vn -0.6711 0.3707 -0.6420 +vn 0.7107 0.3518 0.6093 +vn -0.6706 -0.3872 -0.6327 +vn 0.8186 -0.4726 0.3266 +vn 0.2292 0.4867 0.8430 +vn -0.6666 -0.3727 0.6456 +vn 0.6917 -0.3611 -0.6254 +vn -0.6661 0.3846 0.6391 +vn -0.2405 -0.4853 0.8406 +vn -0.2505 -0.4496 -0.8574 +vn 0.2310 0.4662 -0.8540 +vn -0.1992 -0.4900 0.8487 +vn -0.2010 -0.4911 -0.8476 +vn 0.2000 0.4919 -0.8474 +vn 0.1953 0.4904 0.8494 +vn -0.7285 0.4206 -0.5408 +vn 0.6615 0.3819 0.6455 +vn 0.6616 -0.3749 0.6494 +vn -0.6780 -0.3675 -0.6366 +vn 0.8185 -0.4726 0.3266 +vn 0.8186 -0.4726 0.3265 +vn 0.1953 0.4904 0.8493 +vn -0.5540 0.2594 0.7911 +vn -0.7053 -0.6894 -0.1653 +vn 0.3078 -0.8560 -0.4155 +vn 0.2378 0.8802 -0.4107 +vn -0.5311 -0.3075 0.7895 +vn 0.5256 -0.2691 -0.8070 +vn 0.5021 0.3149 -0.8054 +vn -0.3158 0.8529 0.4157 +vn -0.2460 -0.8778 0.4110 +vn 0.4703 0.6321 0.6159 +vn -0.1899 -0.3584 0.9141 +vn 0.6928 0.7025 0.1626 +vn 0.1894 0.3627 -0.9124 +vn -0.4883 -0.3657 -0.7923 +vn -0.6063 -0.6869 0.4006 +vn 0.4872 0.3701 0.7910 +vn 0.5955 0.7001 -0.3940 +vn 0.8468 -0.1414 -0.5128 +vn -0.9565 -0.2150 -0.1971 +vn -0.2819 0.6014 0.7476 +vn 0.9550 0.2409 0.1731 +vn 0.2267 -0.3801 -0.8968 +vn -0.4866 -0.4091 -0.7719 +vn -0.8555 0.1671 0.4900 +vn 0.0144 -0.3697 0.9291 +s 1 +f 162/264/123 164/265/123 163/266/123 +f 163/266/124 166/267/124 165/268/124 +f 165/268/125 166/267/125 167/269/125 +f 167/269/126 169/270/126 168/271/126 +f 168/272/127 169/273/127 170/274/127 +f 171/275/128 170/274/128 172/276/128 +f 173/277/129 172/276/129 174/278/129 +f 175/279/130 174/278/130 164/265/130 +f 167/269/131 177/280/132 176/281/133 +f 178/282/134 180/283/135 179/284/136 +f 174/278/137 172/276/137 178/282/137 +f 163/266/138 182/285/138 181/286/138 +f 170/274/139 169/273/140 176/287/141 +f 164/265/142 174/278/142 183/288/142 +f 164/265/143 184/289/143 182/285/143 +f 166/267/144 181/286/145 177/280/146 +f 172/276/147 170/274/148 185/290/149 +f 186/291/150 188/292/150 187/293/150 +f 185/290/151 176/287/152 186/294/153 +f 177/280/154 181/286/155 189/295/156 +f 184/289/157 191/296/158 190/297/159 +f 183/288/160 179/284/161 191/296/162 +f 178/282/163 185/290/164 192/298/165 +f 176/281/166 177/280/167 188/292/168 +f 182/285/169 190/297/170 189/295/171 +f 193/299/172 195/300/172 194/301/172 +f 189/295/173 190/297/173 196/302/173 +f 180/283/174 197/303/174 193/299/174 +f 186/294/175 199/304/175 198/305/175 +f 188/292/176 189/295/176 200/306/176 +f 190/297/177 191/296/178 201/307/179 +f 179/284/180 193/299/181 201/307/182 +f 192/298/183 198/305/183 197/303/183 +f 202/308/184 204/309/184 203/310/184 +f 198/305/185 202/308/185 205/311/185 +f 199/312/186 187/293/186 206/313/186 +f 200/306/187 196/302/187 207/314/187 +f 197/303/188 205/311/188 195/300/188 +f 199/304/189 204/309/189 202/308/189 +f 187/293/190 200/306/190 208/315/190 +f 201/307/191 194/301/191 207/314/191 +f 209/316/192 211/317/192 210/318/192 +f 208/315/193 213/319/193 212/320/193 +f 194/301/194 215/321/194 214/322/194 +f 194/301/195 195/300/195 216/323/195 +f 205/311/196 202/308/196 217/324/196 +f 204/325/197 206/313/197 212/320/197 +f 207/314/198 214/322/198 213/319/198 +f 195/300/199 205/311/199 209/316/199 +f 218/326/200 220/327/200 219/328/200 +f 217/324/201 203/310/201 221/329/201 +f 212/320/202 213/319/202 222/330/202 +f 215/321/203 224/331/203 223/332/203 +f 216/323/204 210/318/204 224/331/204 +f 217/324/205 218/326/205 211/317/205 +f 203/333/206 212/320/207 225/334/207 +f 213/319/208 214/322/208 223/332/208 +f 226/335/209 228/336/209 227/337/209 +f 221/338/210 225/334/210 229/339/210 +f 222/330/211 223/332/211 230/340/211 +f 211/317/212 219/328/212 231/341/212 +f 218/326/213 221/329/213 232/342/213 +f 225/334/214 222/330/214 233/343/214 +f 223/332/215 224/331/215 226/335/215 +f 210/318/216 231/341/216 226/335/216 +f 234/344/217 236/345/217 235/346/217 +f 226/335/218 231/341/218 237/347/218 +f 219/328/219 220/327/219 238/348/219 +f 229/339/220 240/349/220 239/350/220 +f 233/343/221 230/340/221 227/337/221 +f 219/328/222 234/344/222 237/347/222 +f 220/327/223 232/342/223 239/351/223 +f 233/343/224 241/352/224 240/349/224 +f 242/353/219 244/354/219 243/355/219 +f 238/348/225 239/351/225 245/356/225 +f 240/349/226 241/352/226 242/353/226 +f 227/337/227 228/336/227 246/357/227 +f 228/336/228 237/347/228 235/346/228 +f 238/348/229 247/358/229 236/345/229 +f 240/349/230 248/359/230 245/360/230 +f 227/337/231 244/354/231 242/353/231 +f 249/361/232 251/362/232 250/363/232 +f 235/346/224 236/345/224 250/364/224 +f 245/356/209 252/365/209 249/366/209 +f 242/353/222 254/367/222 253/368/222 +f 244/354/223 246/357/223 255/369/223 +f 235/346/220 251/370/220 255/369/220 +f 236/345/221 247/358/221 249/366/221 +f 245/360/218 248/359/218 253/368/218 +f 256/371/233 258/372/233 257/373/233 +f 259/374/234 256/371/234 260/375/234 +f 261/376/235 259/374/235 262/377/235 +f 263/378/236 261/379/236 264/380/236 +f 265/381/234 262/377/234 260/375/234 +f 266/382/237 263/378/237 267/383/237 +f 266/382/238 268/384/238 257/373/238 +f 259/374/239 261/376/239 269/385/239 +f 270/386/240 265/381/240 271/387/240 +f 268/384/237 267/383/237 272/388/237 +f 273/389/241 260/375/241 257/373/241 +f 270/386/242 264/390/242 262/377/242 +f 257/373/243 268/384/243 274/391/243 +f 267/383/244 264/380/244 270/392/244 +f 273/389/245 276/393/245 275/394/245 +f 275/394/246 276/393/246 274/391/246 +f 277/395/247 272/388/247 270/392/247 +f 271/387/234 265/381/234 273/389/234 +f 278/396/237 274/391/237 272/388/237 +f 279/397/248 281/398/248 280/399/248 +f 282/400/249 266/382/250 258/372/251 +f 269/401/252 261/379/252 263/378/252 +f 256/371/234 259/374/234 283/402/234 +f 284/403/237 263/378/237 266/382/237 +f 258/372/253 256/371/254 281/398/255 +f 285/404/256 287/405/256 286/406/256 +f 282/400/257 279/397/257 288/407/257 +f 289/408/258 269/401/258 284/403/258 +f 281/398/259 283/402/259 290/409/259 +f 284/403/260 282/400/260 287/405/260 +f 290/409/261 283/402/261 269/385/261 +f 291/410/262 286/406/263 292/411/264 +f 293/412/265 290/409/265 289/413/265 +f 288/407/266 280/399/266 294/414/266 +f 286/406/267 287/405/267 288/407/267 +f 295/415/268 289/408/268 285/404/268 +f 294/414/269 280/399/269 290/409/269 +f 296/416/237 291/410/237 297/417/237 +f 295/415/270 298/418/271 296/416/272 +f 299/419/273 294/414/273 293/412/273 +f 296/416/274 298/418/274 286/406/274 +f 293/412/275 295/420/276 300/421/277 +f 301/422/278 292/411/279 294/414/280 +f 302/423/236 297/417/236 303/424/236 +f 304/425/281 305/426/281 300/421/281 +f 303/424/282 301/422/283 299/419/284 +f 291/410/285 301/422/286 303/424/287 +f 300/427/288 296/416/288 306/428/288 +f 307/429/234 299/419/234 305/426/234 +f 308/430/238 306/428/238 309/431/238 +f 310/432/234 307/429/234 304/425/234 +f 306/428/237 297/417/237 302/423/237 +f 311/433/233 304/425/233 308/434/233 +f 303/424/235 307/429/235 310/432/235 +f 312/435/233 314/436/233 313/437/233 +f 315/438/234 316/439/234 313/437/234 +f 317/440/235 315/438/235 318/441/235 +f 319/442/236 317/443/236 320/444/236 +f 321/445/234 318/441/234 313/437/234 +f 322/446/237 319/442/237 323/447/237 +f 312/435/238 322/446/238 324/448/238 +f 315/438/239 317/440/239 325/449/239 +f 326/450/240 321/445/240 327/451/240 +f 324/448/237 323/447/237 328/452/237 +f 329/453/241 313/437/241 314/436/241 +f 326/450/289 320/454/289 318/441/289 +f 314/436/243 324/448/243 330/455/243 +f 323/447/244 320/444/244 326/456/244 +f 331/457/245 329/453/245 332/458/245 +f 333/459/246 332/458/246 330/455/246 +f 334/460/247 328/452/247 326/456/247 +f 327/451/234 321/445/234 329/453/234 +f 335/461/237 330/455/237 328/452/237 +f 336/462/248 338/463/248 337/464/248 +f 339/465/249 322/446/250 312/435/251 +f 325/466/252 317/443/252 319/442/252 +f 316/439/234 315/438/234 340/467/234 +f 341/468/237 319/442/237 322/446/237 +f 312/435/253 316/439/254 338/463/255 +f 342/469/256 344/470/256 343/471/256 +f 339/465/257 336/462/257 345/472/257 +f 346/473/258 325/466/258 341/468/258 +f 337/464/259 338/463/259 340/467/259 +f 344/470/260 341/468/260 339/465/260 +f 347/474/261 340/467/261 325/449/261 +f 348/475/262 350/476/263 349/477/290 +f 351/478/265 347/474/265 346/479/265 +f 349/477/266 345/472/266 337/464/266 +f 343/471/267 345/472/267 349/477/267 +f 352/480/268 346/473/268 344/470/268 +f 353/481/269 337/464/269 347/474/269 +f 354/482/237 348/475/237 355/483/237 +f 352/480/291 342/469/271 354/482/272 +f 356/484/273 353/481/273 351/478/273 +f 354/482/274 342/469/274 350/476/274 +f 351/478/275 352/485/276 357/486/277 +f 358/487/292 349/477/279 353/481/280 +f 355/483/236 360/488/236 359/489/236 +f 361/490/281 362/491/281 357/486/281 +f 360/488/293 358/487/283 356/484/284 +f 348/475/285 358/487/286 360/488/294 +f 357/492/288 354/482/288 363/493/288 +f 364/494/234 356/484/234 362/491/234 +f 365/495/238 363/493/238 366/496/238 +f 364/494/234 361/490/234 367/497/234 +f 363/493/237 355/483/237 368/498/237 +f 367/497/233 361/490/233 365/499/233 +f 360/488/235 364/494/235 369/500/235 +f 370/501/233 372/502/233 371/503/233 +f 373/504/234 370/501/234 374/505/234 +f 375/506/235 373/504/235 376/507/235 +f 375/508/236 378/509/236 377/510/236 +f 379/511/234 376/507/234 374/505/234 +f 380/512/237 381/513/237 377/510/237 +f 380/512/238 382/514/238 371/503/238 +f 373/504/239 375/506/239 383/515/239 +f 384/516/240 379/511/240 385/517/240 +f 382/514/237 377/510/237 386/518/237 +f 387/519/241 374/505/241 371/503/241 +f 384/516/289 378/520/289 376/507/289 +f 371/503/243 382/514/243 388/521/243 +f 377/510/295 378/509/295 384/522/295 +f 389/523/245 387/519/245 390/524/245 +f 391/525/246 390/524/246 388/521/246 +f 392/526/247 386/518/247 384/522/247 +f 385/517/234 379/511/234 387/519/234 +f 393/527/237 388/521/237 386/518/237 +f 394/528/248 396/529/248 395/530/248 +f 397/531/249 380/512/250 372/502/251 +f 383/532/252 375/508/252 381/513/252 +f 370/501/234 373/504/234 398/533/234 +f 399/534/237 381/513/237 380/512/237 +f 372/502/253 370/501/254 396/529/255 +f 400/535/256 402/536/256 401/537/256 +f 397/531/257 394/528/257 403/538/257 +f 404/539/258 383/532/258 399/534/258 +f 396/529/259 398/533/259 405/540/259 +f 402/536/260 399/534/260 397/531/260 +f 405/540/261 398/533/261 383/515/261 +f 406/541/296 408/542/263 407/543/297 +f 409/544/265 405/540/265 404/545/265 +f 403/538/266 395/530/266 410/546/266 +f 408/542/267 401/537/267 403/538/267 +f 411/547/268 404/539/268 402/536/268 +f 410/546/269 395/530/269 405/540/269 +f 412/548/237 406/541/237 413/549/237 +f 411/547/270 400/535/271 412/548/272 +f 414/550/273 410/546/273 409/544/273 +f 412/548/274 400/535/274 408/542/274 +f 409/544/298 411/551/276 415/552/299 +f 416/553/300 407/543/279 410/546/301 +f 417/554/236 413/549/236 418/555/236 +f 419/556/281 420/557/281 415/552/281 +f 418/555/293 416/553/283 414/550/284 +f 406/541/285 416/553/286 418/555/287 +f 415/558/288 412/548/288 421/559/288 +f 422/560/234 414/550/234 420/557/234 +f 423/561/238 424/562/238 421/559/238 +f 425/563/234 422/560/234 419/556/234 +f 421/559/237 413/549/237 417/554/237 +f 426/564/233 419/556/233 424/565/233 +f 418/555/235 422/560/235 425/563/235 +f 427/566/302 429/567/302 428/568/302 +f 429/567/302 427/566/302 430/569/302 +f 431/570/269 433/571/269 432/572/269 +f 434/573/303 436/574/303 435/575/303 +f 437/576/302 439/577/302 438/578/302 +f 440/579/256 442/580/256 441/581/256 +f 443/582/304 438/578/304 444/583/304 +f 439/577/305 441/584/305 445/585/305 +f 446/586/306 432/587/306 447/588/306 +f 437/576/307 435/589/307 448/590/307 +f 431/570/234 443/582/234 444/591/234 +f 444/592/308 438/578/308 439/577/308 +f 445/585/309 441/593/309 442/594/309 +f 439/577/310 437/576/310 448/590/310 +f 448/590/237 435/595/237 436/596/237 +f 435/575/311 437/576/311 446/586/311 +f 447/588/312 432/597/312 433/598/312 +f 432/572/313 446/586/313 438/578/313 +f 449/599/314 444/592/314 445/585/314 +f 450/600/309 452/601/309 451/602/309 +f 453/603/237 455/604/237 454/605/237 +f 456/606/312 458/607/312 457/608/312 +f 452/609/302 459/610/302 460/611/302 +f 450/600/309 461/612/309 452/601/309 +f 462/613/312 458/607/312 456/606/312 +f 454/605/315 464/614/315 463/615/315 +f 461/616/316 456/617/316 452/618/316 +f 465/619/317 467/620/317 466/621/317 +f 468/622/318 469/623/318 453/603/318 +f 470/624/318 472/625/318 471/626/318 +f 473/627/315 474/628/315 468/629/315 +f 461/616/319 475/630/319 462/631/319 +f 475/632/312 477/633/312 476/634/312 +f 464/635/309 479/636/309 478/637/309 +f 480/638/317 477/639/317 475/630/317 +f 471/626/237 481/640/237 473/627/237 +f 480/641/320 476/642/320 477/643/320 +f 464/644/321 465/645/321 479/646/321 +f 472/647/322 482/648/322 481/649/322 +f 472/647/323 480/641/323 483/650/323 +f 474/651/324 482/648/324 466/652/324 +f 469/653/322 484/654/322 455/655/322 +f 474/656/323 467/657/323 469/653/323 +f 455/655/324 465/645/324 464/644/324 +f 480/638/317 482/658/317 483/659/317 +f 453/603/237 469/623/237 455/604/237 +f 452/618/325 456/617/325 459/660/325 +f 450/600/309 463/661/309 461/612/309 +f 462/613/312 470/662/312 458/607/312 +f 454/605/315 455/604/315 464/614/315 +f 461/616/316 462/631/316 456/617/316 +f 465/619/317 484/663/317 467/620/317 +f 468/622/318 474/664/318 469/623/318 +f 470/624/318 476/665/318 472/625/318 +f 473/627/315 481/640/315 474/628/315 +f 461/616/319 478/666/319 475/630/319 +f 476/634/312 470/662/312 475/632/312 +f 462/613/312 475/632/312 470/662/312 +f 478/637/309 461/612/309 463/661/309 +f 463/661/309 464/635/309 478/637/309 +f 475/630/317 478/666/317 466/621/317 +f 479/667/317 465/619/317 478/666/317 +f 466/621/317 480/638/317 475/630/317 +f 478/666/317 465/619/317 466/621/317 +f 471/626/237 472/625/237 481/640/237 +f 472/647/322 483/650/322 482/648/322 +f 472/647/323 476/642/323 480/641/323 +f 474/651/324 481/649/324 482/648/324 +f 469/653/322 467/657/322 484/654/322 +f 474/656/323 466/668/323 467/657/323 +f 455/655/324 484/654/324 465/645/324 +f 480/638/317 466/621/317 482/658/317 +f 451/669/326 452/618/326 459/660/326 +f 456/617/327 457/670/327 459/660/327 +f 485/671/235 487/672/235 486/673/235 +f 488/674/234 486/673/234 489/675/234 +f 490/676/233 489/675/233 491/677/233 +f 492/678/238 491/679/238 493/680/238 +f 488/674/234 490/676/234 494/681/234 +f 495/682/237 493/680/237 496/683/237 +f 497/684/236 496/683/236 487/672/236 +f 489/675/328 499/685/328 498/686/328 +f 494/681/240 501/687/240 500/688/240 +f 497/684/237 503/689/237 502/690/237 +f 485/671/329 488/674/329 504/691/329 +f 490/676/330 492/692/330 501/687/330 +f 485/671/331 505/693/331 503/689/331 +f 495/682/332 502/690/332 501/694/332 +f 504/691/245 507/695/245 506/696/245 +f 503/689/246 505/693/246 506/696/246 +f 501/694/247 502/690/247 508/697/247 +f 504/691/234 494/681/234 509/698/234 +f 502/690/237 503/689/237 510/699/237 +f 511/700/333 513/701/333 512/702/333 +f 487/672/334 496/683/335 514/703/336 +f 493/680/337 491/679/337 498/704/337 +f 486/673/234 515/705/234 499/685/234 +f 496/683/237 493/680/237 516/706/237 +f 487/672/338 511/700/339 515/705/340 +f 517/707/303 519/708/303 518/709/303 +f 514/703/341 520/710/341 513/701/341 +f 516/706/342 498/704/342 521/711/342 +f 499/685/343 515/705/343 512/702/343 +f 516/706/344 517/707/344 520/710/344 +f 498/686/345 499/685/345 522/712/345 +f 523/713/346 518/709/347 524/714/348 +f 522/712/349 526/715/349 525/716/349 +f 512/702/350 513/701/350 523/713/350 +f 520/710/351 518/709/351 523/713/351 +f 517/707/352 521/711/352 525/717/352 +f 522/712/314 512/702/314 527/718/314 +f 528/719/237 530/720/237 529/721/237 +f 525/717/353 531/722/354 528/719/355 +f 526/715/356 527/718/356 532/723/356 +f 519/708/357 528/719/357 524/714/357 +f 526/715/358 533/724/359 531/725/360 +f 527/718/361 523/713/362 534/726/363 +f 535/727/238 529/721/238 536/728/238 +f 531/725/364 533/724/364 537/729/364 +f 532/723/365 534/726/366 535/727/367 +f 524/714/368 529/721/369 535/727/370 +f 531/722/371 538/730/371 530/720/371 +f 533/724/234 532/723/234 539/731/234 +f 530/720/236 538/730/236 540/732/236 +f 537/729/234 539/731/234 541/733/234 +f 530/720/237 542/734/237 536/728/237 +f 538/735/235 537/729/235 543/736/235 +f 535/727/233 544/737/233 541/733/233 +f 545/738/235 547/739/235 546/740/235 +f 548/741/234 546/740/234 549/742/234 +f 550/743/233 549/742/233 551/744/233 +f 552/745/238 551/746/238 553/747/238 +f 548/741/234 550/743/234 554/748/234 +f 555/749/237 553/747/237 556/750/237 +f 557/751/236 556/750/236 547/739/236 +f 549/742/328 559/752/328 558/753/328 +f 560/754/240 562/755/240 561/756/240 +f 557/751/237 564/757/237 563/758/237 +f 545/738/329 548/741/329 565/759/329 +f 550/743/330 552/760/330 560/754/330 +f 545/738/331 566/761/331 564/757/331 +f 555/749/332 563/758/332 560/762/332 +f 565/759/245 568/763/245 567/764/245 +f 564/757/246 566/761/246 567/764/246 +f 563/758/247 569/765/247 562/766/247 +f 565/759/234 554/748/234 561/756/234 +f 563/758/237 564/757/237 570/767/237 +f 571/768/333 573/769/333 572/770/333 +f 547/739/334 556/750/335 574/771/336 +f 553/747/337 551/746/337 558/772/337 +f 546/740/234 575/773/234 559/752/234 +f 556/750/237 553/747/237 576/774/237 +f 547/739/338 571/768/339 575/773/340 +f 577/775/303 579/776/303 578/777/303 +f 574/771/341 580/778/341 573/769/341 +f 576/774/342 558/772/342 581/779/342 +f 559/752/343 575/773/343 572/770/343 +f 574/771/344 576/774/344 577/775/344 +f 558/753/345 559/752/345 582/780/345 +f 583/781/346 578/777/347 584/782/348 +f 581/783/349 582/780/349 585/784/349 +f 573/769/350 583/781/350 586/785/350 +f 573/769/351 580/778/351 578/777/351 +f 577/775/352 581/779/352 587/786/352 +f 582/780/314 572/770/314 586/785/314 +f 588/787/237 590/788/237 589/789/237 +f 587/786/372 591/790/354 588/787/355 +f 585/784/356 586/785/356 592/791/356 +f 579/776/357 588/787/357 584/782/357 +f 585/784/358 593/792/373 591/793/374 +f 586/785/361 583/781/362 594/794/363 +f 595/795/238 589/789/238 596/796/238 +f 591/793/364 593/792/364 597/797/364 +f 592/791/365 594/794/366 595/795/375 +f 584/782/368 589/789/369 595/795/370 +f 591/790/371 598/798/371 590/788/371 +f 593/792/234 592/791/234 599/799/234 +f 590/788/236 598/798/236 600/800/236 +f 597/797/234 599/799/234 601/801/234 +f 590/788/237 602/802/237 596/796/237 +f 598/803/235 597/797/235 603/804/235 +f 599/799/233 595/795/233 604/805/233 +f 605/806/235 607/807/235 606/808/235 +f 606/808/234 609/809/234 608/810/234 +f 608/810/233 609/809/233 610/811/233 +f 611/812/238 610/813/238 612/814/238 +f 613/815/234 608/810/234 614/816/234 +f 615/817/237 612/814/237 616/818/237 +f 616/818/236 607/807/236 605/806/236 +f 609/809/328 618/819/328 617/820/328 +f 619/821/240 621/822/240 620/823/240 +f 622/824/237 624/825/237 623/826/237 +f 605/806/329 613/815/329 625/827/329 +f 608/810/330 611/828/330 619/821/330 +f 605/806/331 626/829/331 624/825/331 +f 615/817/332 623/826/332 619/830/332 +f 626/829/245 625/827/245 627/831/245 +f 624/825/246 626/829/246 628/832/246 +f 619/830/247 623/826/247 629/833/247 +f 614/816/234 620/823/234 627/831/234 +f 623/826/237 624/825/237 630/834/237 +f 631/835/333 633/836/333 632/837/333 +f 607/807/334 616/818/335 634/838/336 +f 612/814/337 610/813/337 617/839/337 +f 606/808/234 635/840/234 618/819/234 +f 616/818/237 612/814/237 636/841/237 +f 607/807/338 631/835/339 635/840/340 +f 637/842/303 639/843/303 638/844/303 +f 634/838/341 637/842/341 633/836/341 +f 636/841/342 617/839/342 640/845/342 +f 618/819/343 635/840/343 632/837/343 +f 636/841/344 639/843/344 637/842/344 +f 617/820/345 618/819/345 641/846/345 +f 642/847/346 644/848/347 643/849/348 +f 640/850/349 641/846/349 645/851/349 +f 633/836/350 642/847/350 646/852/350 +f 633/836/351 637/842/351 644/848/351 +f 639/843/352 640/845/352 647/853/352 +f 632/837/314 646/852/314 645/851/314 +f 648/854/237 650/855/237 649/856/237 +f 647/853/372 651/857/376 648/854/355 +f 646/852/356 653/858/356 652/859/356 +f 638/844/357 648/854/357 643/849/357 +f 645/851/358 652/859/359 651/860/377 +f 646/852/361 642/847/362 654/861/363 +f 655/862/238 649/856/238 656/863/238 +f 651/860/364 652/859/364 657/864/364 +f 653/858/365 654/861/366 655/862/367 +f 643/849/368 649/856/369 655/862/370 +f 651/857/371 658/865/371 650/855/371 +f 652/859/234 653/858/234 659/866/234 +f 658/865/236 661/867/236 660/868/236 +f 657/864/234 659/866/234 662/869/234 +f 650/855/237 660/868/237 656/863/237 +f 658/870/235 657/864/235 663/871/235 +f 655/862/233 664/872/233 662/869/233 +f 665/873/378 667/874/378 666/875/378 +f 665/873/379 669/876/379 668/877/379 +f 670/878/380 671/879/380 668/877/380 +f 670/878/381 673/880/381 672/881/381 +f 674/882/382 675/883/382 672/884/382 +f 676/885/383 674/882/383 677/886/383 +f 678/887/384 676/885/384 679/888/384 +f 678/887/385 680/889/385 666/875/385 +f 670/878/386 675/890/387 681/891/388 +f 682/892/389 684/893/390 683/894/391 +f 682/892/392 676/885/392 678/887/392 +f 665/873/393 671/879/393 685/895/393 +f 681/896/394 675/883/395 674/882/396 +f 684/893/397 678/887/397 667/874/397 +f 667/874/398 665/873/398 686/897/398 +f 671/879/399 670/878/400 687/898/401 +f 688/899/402 674/882/403 676/885/404 +f 689/900/405 691/901/405 690/902/405 +f 690/903/406 681/896/407 688/899/408 +f 692/904/409 685/895/410 687/898/411 +f 693/905/412 686/897/413 694/906/414 +f 684/893/415 693/905/416 695/907/417 +f 696/908/418 688/899/419 682/892/420 +f 691/901/421 687/898/422 681/891/423 +f 686/897/424 685/895/425 692/904/426 +f 697/909/427 699/910/427 698/911/427 +f 700/912/428 694/906/428 692/904/428 +f 701/913/429 683/894/429 697/909/429 +f 690/903/430 696/908/430 702/914/430 +f 703/915/431 692/904/431 691/901/431 +f 699/910/432 695/907/433 694/906/434 +f 683/894/435 695/907/436 699/910/437 +f 696/908/438 701/913/438 704/916/438 +f 705/917/439 707/918/439 706/919/439 +f 702/914/440 704/916/440 708/920/440 +f 709/921/441 689/900/441 710/922/441 +f 700/912/442 703/915/442 711/923/442 +f 704/916/443 697/909/443 712/924/443 +f 705/917/444 710/925/444 702/914/444 +f 711/923/445 703/915/445 689/900/445 +f 699/910/446 700/912/446 713/926/446 +f 714/927/447 716/928/447 715/929/447 +f 717/930/448 711/923/448 709/921/448 +f 718/931/449 698/911/449 713/926/449 +f 716/928/450 712/924/450 698/911/450 +f 706/919/451 707/918/451 708/920/451 +f 709/921/452 705/932/452 719/933/452 +f 713/926/453 711/923/453 717/930/453 +f 714/927/454 708/920/455 712/924/455 +f 720/934/456 722/935/456 721/936/456 +f 719/937/457 706/919/457 720/934/457 +f 723/938/458 717/930/458 724/939/458 +f 725/940/459 718/931/459 726/941/459 +f 716/928/460 718/931/460 725/940/460 +f 706/919/461 714/927/461 722/935/461 +f 724/939/462 719/933/462 727/942/462 +f 728/943/463 726/941/463 717/930/463 +f 729/944/464 731/945/464 730/946/464 +f 732/947/465 733/948/465 727/942/465 +f 728/943/466 723/938/466 734/949/466 +f 721/936/467 722/935/467 715/929/467 +f 735/950/468 727/951/468 720/934/468 +f 723/938/469 733/948/469 732/947/469 +f 725/940/470 728/943/470 730/946/470 +f 715/929/471 725/940/471 731/945/471 +f 736/952/472 738/953/472 737/954/472 +f 739/955/473 731/945/473 729/944/473 +f 740/956/474 721/936/474 736/952/474 +f 732/947/475 735/957/475 741/958/475 +f 742/959/476 730/946/476 734/949/476 +f 721/936/477 739/955/477 738/953/477 +f 741/960/478 735/950/478 740/956/478 +f 743/961/479 734/949/479 732/947/479 +f 744/962/474 746/963/474 745/964/474 +f 747/965/480 741/960/480 748/966/480 +f 745/964/481 743/961/481 749/967/481 +f 729/944/482 742/959/482 746/963/482 +f 737/954/483 738/953/483 729/944/483 +f 748/966/484 736/952/484 750/968/484 +f 749/967/485 741/958/485 747/969/485 +f 746/963/486 742/959/486 743/961/486 +f 751/970/487 744/971/487 752/972/487 +f 750/968/479 737/954/479 753/973/479 +f 747/965/464 755/974/464 754/975/464 +f 745/964/477 756/976/477 751/977/477 +f 757/978/478 758/979/478 746/963/478 +f 737/954/475 758/979/475 757/978/475 +f 754/975/476 755/974/476 750/968/476 +f 751/977/473 756/976/473 747/969/473 +f 162/264/123 163/266/123 759/980/123 +f 163/266/124 165/268/124 759/980/124 +f 165/268/125 167/269/125 760/981/125 +f 167/269/126 168/271/126 760/981/126 +f 168/272/127 170/274/127 171/275/127 +f 171/275/128 172/276/128 173/277/128 +f 173/277/129 174/278/129 175/279/129 +f 175/279/130 164/265/130 162/264/130 +f 167/269/131 176/281/133 169/270/488 +f 178/282/134 179/284/136 183/288/489 +f 174/278/490 178/282/490 183/288/490 +f 163/266/491 181/286/491 166/267/491 +f 170/274/139 176/287/141 185/290/492 +f 164/265/493 183/288/493 184/289/493 +f 164/265/494 182/285/494 163/266/494 +f 166/267/144 177/280/146 167/269/495 +f 172/276/147 185/290/149 178/282/496 +f 186/291/497 187/293/497 199/312/497 +f 185/290/151 186/294/153 192/298/498 +f 177/280/154 189/295/156 188/292/499 +f 184/289/157 190/297/159 182/285/500 +f 183/288/160 191/296/162 184/289/501 +f 178/282/163 192/298/165 180/283/502 +f 176/281/166 188/292/168 186/291/503 +f 182/285/169 189/295/171 181/286/504 +f 193/299/172 194/301/172 201/307/172 +f 189/295/505 196/302/505 200/306/505 +f 180/283/506 193/299/506 179/284/506 +f 186/294/507 198/305/507 192/298/507 +f 188/292/508 200/306/508 187/293/508 +f 190/297/177 201/307/179 196/302/509 +f 179/284/180 201/307/182 191/296/510 +f 192/298/511 197/303/511 180/283/511 +f 202/308/184 203/310/184 217/324/184 +f 198/305/185 205/311/185 197/303/185 +f 199/312/186 206/313/186 204/325/186 +f 200/306/187 207/314/187 208/315/187 +f 197/303/188 195/300/188 193/299/188 +f 199/304/189 202/308/189 198/305/189 +f 187/293/190 208/315/190 206/313/190 +f 201/307/191 207/314/191 196/302/191 +f 209/316/192 210/318/192 216/323/192 +f 208/315/193 212/320/193 206/313/193 +f 194/301/194 214/322/194 207/314/194 +f 194/301/195 216/323/195 215/321/195 +f 205/311/196 217/324/196 209/316/196 +f 204/325/197 212/320/197 203/333/197 +f 207/314/198 213/319/198 208/315/198 +f 195/300/199 209/316/199 216/323/199 +f 218/326/200 219/328/200 211/317/200 +f 217/324/201 221/329/201 218/326/201 +f 212/320/202 222/330/202 225/334/202 +f 215/321/203 223/332/203 214/322/203 +f 216/323/204 224/331/204 215/321/204 +f 217/324/205 211/317/205 209/316/205 +f 203/333/206 225/334/207 221/338/206 +f 213/319/208 223/332/208 222/330/208 +f 226/335/209 227/337/209 230/340/209 +f 221/338/210 229/339/210 232/982/210 +f 222/330/211 230/340/211 233/343/211 +f 211/317/212 231/341/212 210/318/212 +f 218/326/213 232/342/213 220/327/213 +f 225/334/214 233/343/214 229/339/214 +f 223/332/215 226/335/215 230/340/215 +f 210/318/216 226/335/216 224/331/216 +f 234/344/217 235/346/217 237/347/217 +f 226/335/218 237/347/218 228/336/218 +f 219/328/219 238/348/219 234/344/219 +f 229/339/220 239/350/220 232/982/220 +f 233/343/221 227/337/221 241/352/221 +f 219/328/222 237/347/222 231/341/222 +f 220/327/223 239/351/223 238/348/223 +f 233/343/224 240/349/224 229/339/224 +f 242/353/219 243/355/219 254/367/219 +f 238/348/225 245/356/225 247/358/225 +f 240/349/226 242/353/226 248/359/512 +f 227/337/227 246/357/227 244/354/227 +f 228/336/228 235/346/228 246/357/228 +f 238/348/229 236/345/229 234/344/229 +f 240/349/230 245/360/230 239/350/230 +f 227/337/231 242/353/231 241/352/231 +f 251/362/232 243/983/232 255/984/232 +f 243/983/232 251/362/232 254/985/232 +f 254/985/232 251/362/232 253/986/232 +f 253/986/232 251/362/232 252/987/232 +f 252/987/232 251/362/232 249/361/232 +f 235/346/224 250/364/224 251/370/224 +f 245/356/209 249/366/209 247/358/209 +f 242/353/222 253/368/222 248/359/222 +f 244/354/223 255/369/223 243/355/223 +f 235/346/220 255/369/220 246/357/220 +f 236/345/221 249/366/221 250/364/221 +f 245/360/218 253/368/218 252/988/218 +f 256/371/233 257/373/233 260/375/233 +f 259/374/234 260/375/234 262/377/234 +f 261/376/235 262/377/235 264/390/235 +f 263/378/236 264/380/236 267/383/236 +f 265/381/234 260/375/234 273/389/234 +f 266/382/237 267/383/237 268/384/237 +f 266/382/238 257/373/238 258/372/238 +f 259/374/513 269/385/513 283/402/513 +f 270/386/240 271/387/240 761/989/240 +f 268/384/237 272/388/237 274/391/237 +f 273/389/514 257/373/514 276/393/514 +f 270/386/515 262/377/515 265/381/515 +f 257/373/516 274/391/516 276/393/516 +f 267/383/517 270/392/517 272/388/517 +f 273/389/245 275/394/245 762/990/245 +f 275/394/246 274/391/246 278/396/246 +f 277/395/247 270/392/247 761/991/247 +f 271/387/234 273/389/234 762/990/234 +f 278/396/237 272/388/237 277/395/237 +f 279/397/518 280/399/518 288/407/518 +f 282/400/249 258/372/251 279/397/519 +f 269/401/520 263/378/520 284/403/520 +f 256/371/234 283/402/234 281/398/234 +f 284/403/237 266/382/237 282/400/237 +f 258/372/253 281/398/255 279/397/521 +f 285/404/256 286/406/256 298/418/256 +f 282/400/522 288/407/522 287/405/522 +f 289/408/523 284/403/523 285/404/523 +f 281/398/259 290/409/259 280/399/259 +f 284/403/260 287/405/260 285/404/260 +f 290/409/524 269/385/524 289/413/524 +f 291/410/262 292/411/264 301/422/525 +f 293/412/265 289/413/265 295/420/265 +f 288/407/266 294/414/266 292/411/266 +f 286/406/267 288/407/267 292/411/267 +f 295/415/268 285/404/268 298/418/268 +f 294/414/269 290/409/269 293/412/269 +f 296/416/237 297/417/237 306/428/237 +f 295/415/270 296/416/272 300/427/526 +f 299/419/273 293/412/273 305/426/273 +f 296/416/274 286/406/274 291/410/274 +f 293/412/275 300/421/277 305/426/527 +f 301/422/278 294/414/280 299/419/528 +f 302/423/236 303/424/236 763/992/236 +f 304/425/529 300/421/529 308/434/529 +f 303/424/282 299/419/284 307/429/530 +f 291/410/285 303/424/287 297/417/531 +f 300/427/532 306/428/532 308/430/532 +f 307/429/234 305/426/234 304/425/234 +f 308/430/238 309/431/238 764/993/238 +f 310/432/234 304/425/234 311/433/234 +f 306/428/237 302/423/237 309/431/237 +f 311/433/233 308/434/233 764/994/233 +f 303/424/235 310/432/235 763/992/235 +f 312/435/233 313/437/233 316/439/233 +f 315/438/234 313/437/234 318/441/234 +f 317/440/235 318/441/235 320/454/235 +f 319/442/236 320/444/236 323/447/236 +f 321/445/234 313/437/234 329/453/234 +f 322/446/237 323/447/237 324/448/237 +f 312/435/238 324/448/238 314/436/238 +f 315/438/513 325/449/513 340/467/513 +f 326/450/240 327/451/240 765/995/240 +f 324/448/237 328/452/237 330/455/237 +f 329/453/514 314/436/514 332/458/514 +f 326/450/515 318/441/515 321/445/515 +f 314/436/516 330/455/516 332/458/516 +f 323/447/517 326/456/517 328/452/517 +f 331/457/245 332/458/245 333/459/245 +f 333/459/246 330/455/246 335/461/246 +f 334/460/247 326/456/247 765/996/247 +f 327/451/234 329/453/234 331/457/234 +f 335/461/237 328/452/237 334/460/237 +f 336/462/518 337/464/518 345/472/518 +f 339/465/249 312/435/251 336/462/519 +f 325/466/520 319/442/520 341/468/520 +f 316/439/234 340/467/234 338/463/234 +f 341/468/237 322/446/237 339/465/237 +f 312/435/253 338/463/255 336/462/521 +f 342/469/256 343/471/256 350/476/256 +f 339/465/522 345/472/522 343/471/522 +f 346/473/523 341/468/523 344/470/523 +f 337/464/259 340/467/259 347/474/259 +f 344/470/260 339/465/260 343/471/260 +f 347/474/524 325/449/524 346/479/524 +f 348/475/262 349/477/290 358/487/525 +f 351/478/265 346/479/265 352/485/265 +f 349/477/266 337/464/266 353/481/266 +f 343/471/267 349/477/267 350/476/267 +f 352/480/268 344/470/268 342/469/268 +f 353/481/269 347/474/269 351/478/269 +f 354/482/237 355/483/237 363/493/237 +f 352/480/291 354/482/272 357/492/526 +f 356/484/273 351/478/273 362/491/273 +f 354/482/274 350/476/274 348/475/274 +f 351/478/275 357/486/277 362/491/533 +f 358/487/292 353/481/280 356/484/528 +f 355/483/236 359/489/236 368/498/236 +f 361/490/529 357/486/529 365/499/529 +f 360/488/293 356/484/284 364/494/530 +f 348/475/285 360/488/294 355/483/531 +f 357/492/532 363/493/532 365/495/532 +f 364/494/234 362/491/234 361/490/234 +f 365/495/238 366/496/238 766/997/238 +f 364/494/234 367/497/234 369/500/234 +f 363/493/237 368/498/237 366/496/237 +f 367/497/233 365/499/233 766/998/233 +f 360/488/235 369/500/235 359/489/235 +f 370/501/233 371/503/233 374/505/233 +f 373/504/234 374/505/234 376/507/234 +f 375/506/235 376/507/235 378/520/235 +f 375/508/236 377/510/236 381/513/236 +f 379/511/234 374/505/234 387/519/234 +f 380/512/237 377/510/237 382/514/237 +f 380/512/238 371/503/238 372/502/238 +f 373/504/513 383/515/513 398/533/513 +f 384/516/240 385/517/240 767/999/240 +f 382/514/237 386/518/237 388/521/237 +f 387/519/514 371/503/514 390/524/514 +f 384/516/515 376/507/515 379/511/515 +f 371/503/516 388/521/516 390/524/516 +f 377/510/517 384/522/517 386/518/517 +f 389/523/245 390/524/245 391/525/245 +f 391/525/246 388/521/246 393/527/246 +f 392/526/247 384/522/247 767/1000/247 +f 385/517/234 387/519/234 389/523/234 +f 393/527/237 386/518/237 392/526/237 +f 394/528/518 395/530/518 403/538/518 +f 397/531/249 372/502/251 394/528/519 +f 383/532/520 381/513/520 399/534/520 +f 370/501/234 398/533/234 396/529/234 +f 399/534/237 380/512/237 397/531/237 +f 372/502/253 396/529/255 394/528/521 +f 400/535/256 401/537/256 408/542/256 +f 397/531/522 403/538/522 401/537/522 +f 404/539/523 399/534/523 402/536/523 +f 396/529/259 405/540/259 395/530/259 +f 402/536/260 397/531/260 401/537/260 +f 405/540/524 383/515/524 404/545/524 +f 406/541/296 407/543/297 416/553/525 +f 409/544/265 404/545/265 411/551/265 +f 403/538/266 410/546/266 407/543/266 +f 408/542/267 403/538/267 407/543/267 +f 411/547/268 402/536/268 400/535/268 +f 410/546/269 405/540/269 409/544/269 +f 412/548/237 413/549/237 421/559/237 +f 411/547/270 412/548/272 415/558/526 +f 414/550/273 409/544/273 420/557/273 +f 412/548/274 408/542/274 406/541/274 +f 409/544/298 415/552/299 420/557/533 +f 416/553/300 410/546/301 414/550/534 +f 417/554/236 418/555/236 768/1001/236 +f 419/556/529 415/552/529 424/565/529 +f 418/555/293 414/550/284 422/560/530 +f 406/541/285 418/555/287 413/549/531 +f 415/558/532 421/559/532 424/562/532 +f 422/560/234 420/557/234 419/556/234 +f 423/561/238 421/559/238 769/1002/238 +f 425/563/234 419/556/234 426/564/234 +f 421/559/237 417/554/237 769/1002/237 +f 426/564/233 424/565/233 423/1003/233 +f 418/555/235 425/563/235 768/1001/235 +f 427/566/302 428/568/302 770/1004/302 +f 431/570/269 432/572/269 443/582/269 +f 434/573/303 435/575/303 447/588/303 +f 437/576/302 438/578/302 446/586/302 +f 440/579/256 441/581/256 448/590/256 +f 431/570/234 444/591/234 449/1005/234 +f 444/592/308 439/577/308 445/585/308 +f 445/585/309 442/594/309 771/1006/309 +f 439/577/310 448/590/310 441/581/310 +f 448/590/237 436/596/237 440/579/237 +f 435/575/311 446/586/311 447/588/311 +f 447/588/312 433/598/312 434/573/312 +f 432/572/313 438/578/313 443/582/313 +f 449/599/314 445/585/314 771/1006/314 +f 485/671/235 486/673/235 488/674/235 +f 488/674/234 489/675/234 490/676/234 +f 490/676/233 491/677/233 492/692/233 +f 492/678/238 493/680/238 495/682/238 +f 488/674/234 494/681/234 504/691/234 +f 495/682/237 496/683/237 497/684/237 +f 497/684/236 487/672/236 485/671/236 +f 489/675/535 498/686/535 491/677/535 +f 494/681/240 500/688/240 509/698/240 +f 497/684/237 502/690/237 495/682/237 +f 485/671/536 504/691/536 505/693/536 +f 490/676/537 501/687/537 494/681/537 +f 485/671/538 503/689/538 497/684/538 +f 495/682/539 501/694/539 492/678/539 +f 504/691/245 506/696/245 505/693/245 +f 503/689/246 506/696/246 510/699/246 +f 501/694/247 508/697/247 500/1007/247 +f 504/691/234 509/698/234 507/695/234 +f 502/690/237 510/699/237 508/697/237 +f 511/700/540 512/702/540 515/705/540 +f 487/672/334 514/703/336 511/700/541 +f 493/680/542 498/704/542 516/706/542 +f 486/673/234 499/685/234 489/675/234 +f 496/683/237 516/706/237 514/703/237 +f 487/672/338 515/705/340 486/673/543 +f 517/707/303 518/709/303 520/710/303 +f 514/703/544 513/701/544 511/700/544 +f 516/706/545 521/711/545 517/707/545 +f 499/685/343 512/702/343 522/712/343 +f 516/706/344 520/710/344 514/703/344 +f 498/686/546 522/712/546 521/1008/546 +f 523/713/346 524/714/348 534/726/547 +f 522/712/349 525/716/349 521/1008/349 +f 512/702/350 523/713/350 527/718/350 +f 520/710/351 523/713/351 513/701/351 +f 517/707/352 525/717/352 519/708/352 +f 522/712/314 527/718/314 526/715/314 +f 528/719/237 529/721/237 524/714/237 +f 525/717/353 528/719/355 519/708/548 +f 526/715/356 532/723/356 533/724/356 +f 519/708/357 524/714/357 518/709/357 +f 526/715/358 531/725/360 525/716/549 +f 527/718/361 534/726/363 532/723/550 +f 535/727/238 536/728/238 544/737/238 +f 531/725/551 537/729/551 538/735/551 +f 532/723/365 535/727/367 539/731/552 +f 524/714/368 535/727/370 534/726/553 +f 531/722/554 530/720/554 528/719/554 +f 533/724/234 539/731/234 537/729/234 +f 530/720/236 540/732/236 542/734/236 +f 537/729/234 541/733/234 543/736/234 +f 530/720/237 536/728/237 529/721/237 +f 538/735/235 543/736/235 540/1009/235 +f 535/727/233 541/733/233 539/731/233 +f 545/738/235 546/740/235 548/741/235 +f 548/741/234 549/742/234 550/743/234 +f 550/743/233 551/744/233 552/760/233 +f 552/745/238 553/747/238 555/749/238 +f 548/741/234 554/748/234 565/759/234 +f 555/749/237 556/750/237 557/751/237 +f 557/751/236 547/739/236 545/738/236 +f 549/742/535 558/753/535 551/744/535 +f 560/754/240 561/756/240 554/748/240 +f 557/751/237 563/758/237 555/749/237 +f 545/738/536 565/759/536 566/761/536 +f 550/743/537 560/754/537 554/748/537 +f 545/738/538 564/757/538 557/751/538 +f 555/749/555 560/762/555 552/745/555 +f 565/759/245 567/764/245 566/761/245 +f 564/757/246 567/764/246 570/767/246 +f 563/758/247 562/766/247 560/762/247 +f 565/759/234 561/756/234 568/763/234 +f 563/758/237 570/767/237 569/765/237 +f 571/768/540 572/770/540 575/773/540 +f 547/739/334 574/771/336 571/768/541 +f 553/747/542 558/772/542 576/774/542 +f 546/740/234 559/752/234 549/742/234 +f 556/750/237 576/774/237 574/771/237 +f 547/739/338 575/773/340 546/740/543 +f 577/775/303 578/777/303 580/778/303 +f 574/771/544 573/769/544 571/768/544 +f 576/774/545 581/779/545 577/775/545 +f 559/752/343 572/770/343 582/780/343 +f 574/771/344 577/775/344 580/778/344 +f 558/753/546 582/780/546 581/783/546 +f 583/781/346 584/782/348 594/794/547 +f 581/783/349 585/784/349 587/1010/349 +f 573/769/350 586/785/350 572/770/350 +f 573/769/351 578/777/351 583/781/351 +f 577/775/352 587/786/352 579/776/352 +f 582/780/314 586/785/314 585/784/314 +f 588/787/237 589/789/237 584/782/237 +f 587/786/372 588/787/355 579/776/548 +f 585/784/356 592/791/356 593/792/356 +f 579/776/357 584/782/357 578/777/357 +f 585/784/358 591/793/374 587/1010/549 +f 586/785/361 594/794/363 592/791/550 +f 595/795/238 596/796/238 604/805/238 +f 591/793/551 597/797/551 598/803/551 +f 592/791/365 595/795/375 599/799/552 +f 584/782/368 595/795/370 594/794/553 +f 591/790/554 590/788/554 588/787/554 +f 593/792/234 599/799/234 597/797/234 +f 590/788/236 600/800/236 602/802/236 +f 597/797/234 601/801/234 603/804/234 +f 590/788/237 596/796/237 589/789/237 +f 598/803/235 603/804/235 600/1011/235 +f 599/799/233 604/805/233 601/801/233 +f 605/806/235 606/808/235 613/815/235 +f 606/808/234 608/810/234 613/815/234 +f 608/810/233 610/811/233 611/828/233 +f 611/812/238 612/814/238 615/817/238 +f 613/815/234 614/816/234 625/827/234 +f 615/817/237 616/818/237 622/824/237 +f 616/818/236 605/806/236 622/824/236 +f 609/809/535 617/820/535 610/811/535 +f 619/821/240 620/823/240 614/816/240 +f 622/824/237 623/826/237 615/817/237 +f 605/806/536 625/827/536 626/829/536 +f 608/810/537 619/821/537 614/816/537 +f 605/806/538 624/825/538 622/824/538 +f 615/817/556 619/830/556 611/812/556 +f 626/829/245 627/831/245 628/832/245 +f 624/825/246 628/832/246 630/834/246 +f 619/830/247 629/833/247 621/1012/247 +f 614/816/234 627/831/234 625/827/234 +f 623/826/237 630/834/237 629/833/237 +f 631/835/540 632/837/540 635/840/540 +f 607/807/334 634/838/336 631/835/541 +f 612/814/542 617/839/542 636/841/542 +f 606/808/234 618/819/234 609/809/234 +f 616/818/237 636/841/237 634/838/237 +f 607/807/338 635/840/340 606/808/543 +f 637/842/303 638/844/303 644/848/303 +f 634/838/544 633/836/544 631/835/544 +f 636/841/545 640/845/545 639/843/545 +f 618/819/343 632/837/343 641/846/343 +f 636/841/344 637/842/344 634/838/344 +f 617/820/546 641/846/546 640/850/546 +f 642/847/346 643/849/348 654/861/547 +f 640/850/349 645/851/349 647/1013/349 +f 633/836/350 646/852/350 632/837/350 +f 633/836/351 644/848/351 642/847/351 +f 639/843/352 647/853/352 638/844/352 +f 632/837/314 645/851/314 641/846/314 +f 648/854/237 649/856/237 643/849/237 +f 647/853/372 648/854/355 638/844/548 +f 646/852/356 652/859/356 645/851/356 +f 638/844/357 643/849/357 644/848/357 +f 645/851/358 651/860/377 647/1013/549 +f 646/852/361 654/861/363 653/858/557 +f 655/862/238 656/863/238 664/872/238 +f 651/860/551 657/864/551 658/870/551 +f 653/858/365 655/862/367 659/866/552 +f 643/849/368 655/862/370 654/861/553 +f 651/857/554 650/855/554 648/854/554 +f 652/859/234 659/866/234 657/864/234 +f 658/865/236 660/868/236 650/855/236 +f 657/864/234 662/869/234 663/871/234 +f 650/855/237 656/863/237 649/856/237 +f 658/870/235 663/871/235 661/1014/235 +f 655/862/233 662/869/233 659/866/233 +f 665/873/378 666/875/378 669/876/378 +f 665/873/379 668/877/379 671/879/379 +f 670/878/380 668/877/380 673/880/380 +f 670/878/381 672/881/381 675/890/381 +f 674/882/382 672/884/382 677/886/382 +f 676/885/383 677/886/383 679/888/383 +f 678/887/384 679/888/384 680/889/384 +f 678/887/385 666/875/385 667/874/385 +f 670/878/386 681/891/388 687/898/558 +f 682/892/389 683/894/391 701/913/559 +f 682/892/560 678/887/560 684/893/560 +f 665/873/561 685/895/561 686/897/561 +f 681/896/394 674/882/396 688/899/562 +f 684/893/563 667/874/563 693/905/563 +f 667/874/564 686/897/564 693/905/564 +f 671/879/399 687/898/401 685/895/565 +f 688/899/402 676/885/404 682/892/566 +f 689/900/567 690/902/567 710/922/567 +f 690/903/406 688/899/408 696/908/568 +f 692/904/409 687/898/411 691/901/569 +f 693/905/412 694/906/414 695/907/570 +f 684/893/415 695/907/417 683/894/571 +f 696/908/418 682/892/420 701/913/572 +f 691/901/421 681/891/423 690/902/573 +f 686/897/424 692/904/426 694/906/574 +f 697/909/427 698/911/427 712/924/427 +f 700/912/575 692/904/575 703/915/575 +f 701/913/576 697/909/576 704/916/576 +f 690/903/577 702/914/577 710/925/577 +f 703/915/578 691/901/578 689/900/578 +f 699/910/432 694/906/434 700/912/579 +f 683/894/435 699/910/437 697/909/580 +f 696/908/581 704/916/581 702/914/581 +f 705/917/439 706/919/439 719/937/439 +f 702/914/440 708/920/440 707/918/440 +f 709/921/441 710/922/441 705/932/441 +f 700/912/442 711/923/442 713/926/442 +f 704/916/443 712/924/443 708/920/443 +f 705/917/444 702/914/444 707/918/444 +f 711/923/445 689/900/445 709/921/445 +f 699/910/446 713/926/446 698/911/446 +f 714/927/447 715/929/447 722/935/447 +f 717/930/448 709/921/448 724/939/448 +f 718/931/449 713/926/449 726/941/449 +f 716/928/450 698/911/450 718/931/450 +f 706/919/451 708/920/451 714/927/451 +f 709/921/452 719/933/452 724/939/452 +f 713/926/453 717/930/453 726/941/453 +f 714/927/454 712/924/455 716/928/454 +f 720/934/456 721/936/456 740/956/456 +f 719/937/457 720/934/457 727/951/582 +f 723/938/458 724/939/458 733/948/458 +f 725/940/459 726/941/459 728/943/459 +f 716/928/460 725/940/460 715/929/460 +f 706/919/461 722/935/461 720/934/461 +f 724/939/462 727/942/462 733/948/462 +f 728/943/463 717/930/463 723/938/463 +f 729/944/464 730/946/464 742/959/464 +f 732/947/465 727/942/465 735/957/465 +f 728/943/466 734/949/466 730/946/466 +f 721/936/467 715/929/467 739/955/467 +f 735/950/468 720/934/468 740/956/468 +f 723/938/469 732/947/469 734/949/469 +f 725/940/470 730/946/470 731/945/470 +f 715/929/471 731/945/471 739/955/471 +f 736/952/472 737/954/472 750/968/472 +f 739/955/473 729/944/473 738/953/473 +f 740/956/474 736/952/474 748/966/474 +f 732/947/475 741/958/475 749/967/475 +f 742/959/476 734/949/476 743/961/476 +f 721/936/477 738/953/477 736/952/477 +f 741/960/478 740/956/478 748/966/478 +f 743/961/479 732/947/479 749/967/479 +f 744/962/474 745/964/474 752/1015/474 +f 747/965/480 748/966/480 755/974/480 +f 745/964/481 749/967/481 756/976/481 +f 729/944/482 746/963/482 758/979/482 +f 737/954/483 729/944/483 758/979/483 +f 748/966/484 750/968/484 755/974/484 +f 749/967/485 747/969/485 756/976/485 +f 746/963/486 743/961/486 745/964/486 +f 744/971/487 754/1016/487 757/1017/487 +f 757/1017/487 754/1016/487 753/1018/487 +f 753/1018/487 754/1016/487 772/1019/487 +f 754/1016/487 744/971/487 773/1020/487 +f 773/1020/487 744/971/487 751/970/487 +f 750/968/479 753/973/479 772/1021/479 +f 747/965/464 754/975/464 773/1022/464 +f 745/964/477 751/977/477 752/1015/477 +f 757/978/478 746/963/478 744/962/478 +f 737/954/475 757/978/475 753/973/475 +f 754/975/476 750/968/476 772/1021/476 +f 751/977/473 747/969/473 773/1023/473 +o LeftArm +v 3.987985 12.123876 2.012007 +v 8.012007 4.568196 2.012006 +v 8.012004 12.123877 2.012006 +v 8.012002 12.123877 -2.012013 +v 8.012004 4.568196 -2.012013 +v 3.987983 12.123876 -2.012012 +v 3.987986 4.568195 -2.012012 +v 3.950440 -0.051670 -2.049558 +v 8.049554 -0.051668 2.049553 +v 3.950442 -0.051670 2.049555 +v 8.049554 2.506725 2.049553 +v 8.049552 2.506725 -2.049560 +v 8.049552 -0.051668 -2.049560 +v 5.488652 2.506724 -2.049559 +v 8.315355 8.634617 1.745068 +v 8.315353 10.517618 -0.602384 +v 8.315354 10.517618 1.745068 +v 8.315354 8.634616 -1.254880 +v 8.315352 10.517618 -1.745076 +v 8.315353 10.517618 -1.254880 +v 3.684634 8.634615 -2.315362 +v 3.684635 10.517616 2.315357 +v 3.684633 10.517616 -2.315362 +v 7.745065 10.517618 -2.315363 +v 9.689903 8.634617 -1.254881 +v 9.689903 8.634617 -0.602385 +v 9.689902 10.517618 -1.254881 +v 9.689902 10.517618 -0.602385 +v 8.315354 8.634616 -0.602384 +v 7.745068 8.634616 2.315356 +v 8.315353 8.634616 -1.745076 +v 7.745066 8.634616 -2.315363 +v 3.684636 8.634615 2.315357 +v 7.745067 10.517618 2.315356 +v 3.987988 4.568195 2.012007 +v 3.950441 2.506724 2.049555 +v 3.950439 0.968511 -2.049558 +vt 0.914286 0.292683 +vt 0.685714 0.682927 +vt 0.685714 0.292683 +vt 0.457143 0.292683 +vt 0.457143 0.682927 +vt 0.228571 0.292683 +vt 0.228571 0.682927 +vt -0.000000 0.292683 +vt -0.000000 0.292683 +vt 0.228571 0.097561 +vt 0.228571 0.292683 +vt 0.142857 1.000000 +vt 0.371429 0.804878 +vt 0.371429 1.000000 +vt 0.514286 0.804878 +vt 0.142857 0.682927 +vt 0.142857 0.804878 +vt 0.000000 0.926829 +vt 0.000000 0.804878 +vt 0.742857 0.097561 +vt 0.628571 0.000000 +vt 0.742857 0.000000 +vt 0.571429 0.097561 +vt 0.542857 0.000000 +vt 0.571429 0.000000 +vt 0.257143 0.097561 +vt 0.000000 0.000000 +vt 0.257143 0.000000 +vt 0.485714 -0.000000 +vt 0.400000 0.292683 +vt 0.514286 0.219512 +vt 0.514286 0.292683 +vt 0.228571 0.219512 +vt 0.342857 0.170732 +vt 0.342857 0.219512 +vt 0.571429 0.292683 +vt 0.571429 0.219512 +vt 0.342857 0.292683 +vt 0.400000 0.219512 +vt 0.228571 0.292683 +vt 0.800000 0.097561 +vt 0.542857 0.097561 +vt 0.485714 0.097561 +vt 1.000000 0.097561 +vt 0.800000 0.000000 +vt 1.000000 0.000000 +vt 0.914286 0.682927 +vt 0.000000 0.682927 +vt -0.000000 0.097561 +vt 0.514286 1.000000 +vt 0.371429 0.682927 +vt 0.085714 1.000000 +vt 0.628571 0.097561 +vt 0.000000 0.097561 +vt 0.228571 0.170732 +vn 0.0000 0.0000 1.0000 +vn 1.0000 0.0000 -0.0000 +vn -0.0000 -0.0000 -1.0000 +vn -1.0000 -0.0000 0.0000 +vn -0.0000 1.0000 -0.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.7071 0.0000 0.7071 +vn 0.7071 0.0000 -0.7071 +s 1 +f 774/1024/583 775/1025/583 776/1026/583 +f 775/1025/584 777/1027/584 776/1026/584 +f 778/1028/585 779/1029/585 777/1027/585 +f 780/1030/586 774/1031/586 779/1029/586 +f 777/1032/587 774/1033/587 776/1034/587 +f 781/1035/588 782/1036/588 783/1037/588 +f 784/1038/583 783/1037/583 782/1036/583 +f 785/1039/584 782/1036/584 786/1040/584 +f 787/1041/585 785/1042/585 786/1040/585 +f 788/1043/584 789/1044/584 790/1045/584 +f 791/1046/584 792/1047/584 793/1048/584 +f 794/1049/586 795/1050/586 796/1051/586 +f 797/1052/585 794/1049/585 796/1051/585 +f 793/1053/585 798/1054/585 791/1055/585 +f 799/1056/584 800/1057/584 801/1058/584 +f 802/1059/588 798/1054/588 799/1060/588 +f 789/1061/587 800/1062/587 793/1053/587 +f 802/1063/583 801/1058/583 789/1061/583 +f 790/1045/589 803/1064/589 788/1043/589 +f 797/1052/590 804/1065/590 805/1066/590 +f 806/1067/583 807/1068/583 795/1069/583 +f 774/1024/583 808/1070/583 775/1025/583 +f 775/1025/584 778/1028/584 777/1027/584 +f 778/1028/585 780/1030/585 779/1029/585 +f 780/1030/586 808/1071/586 774/1031/586 +f 777/1032/587 779/1072/587 774/1033/587 +f 781/1035/588 786/1040/588 782/1036/588 +f 784/1038/583 809/1073/583 783/1037/583 +f 785/1039/584 784/1074/584 782/1036/584 +f 786/1040/585 781/1035/585 787/1041/585 +f 781/1035/585 810/1075/585 787/1041/585 +f 788/1043/584 802/1076/584 789/1044/584 +f 791/1046/584 804/1065/584 792/1047/584 +f 794/1049/586 806/1077/586 795/1050/586 +f 797/1052/585 805/1066/585 794/1049/585 +f 793/1053/585 800/1062/585 798/1054/585 +f 799/1056/584 798/1078/584 800/1057/584 +f 802/1059/588 791/1055/588 798/1054/588 +f 789/1061/587 801/1058/587 800/1062/587 +f 802/1063/583 799/1056/583 801/1058/583 +f 790/1045/589 807/1068/589 803/1064/589 +f 797/1052/590 792/1047/590 804/1065/590 +f 806/1067/583 803/1064/583 807/1068/583 +o Head +v -4.000005 0.937382 -2.097126 +v 3.999993 -0.047357 -2.097129 +v -4.000005 -0.047359 -2.097126 +v 3.999993 0.937384 -2.097129 +v -0.000007 1.914239 -2.097128 +v 2.640889 -11.912104 0.694965 +v 1.991662 -7.776526 0.047149 +v 2.618367 -7.772680 0.692161 +v 2.815480 -7.771321 1.115013 +v 3.506107 -11.907562 0.449622 +v 3.483585 -7.768139 0.446819 +v 2.014184 -11.915951 0.049952 +v 2.788800 -12.626892 0.157831 +v 2.094094 -12.219033 -0.241983 +v 2.469752 -12.968667 0.248814 +v 2.258792 -11.914001 0.962653 +v 3.586018 -12.210646 0.157688 +v 3.777286 -14.528184 -3.492162 +v 3.765855 -15.403154 -3.781082 +v 2.701068 -13.896341 -4.111543 +v 4.134182 -15.192882 -4.810461 +v 3.404690 -15.300436 -3.192258 +v 3.023210 -12.965555 0.397080 +v 5.012311 -13.883347 -3.492384 +v 3.958147 -15.297325 -3.043994 +v 2.838001 -11.910745 1.117817 +v 2.236271 -7.774577 0.959850 +v -2.610770 -11.912106 0.686894 +v -3.496925 -7.776528 0.450482 +v -2.631675 -7.772682 0.695727 +v -2.249546 -7.771323 0.963372 +v -1.984139 -11.907564 0.041813 +v -2.005045 -7.768141 0.050646 +v -3.476019 -11.915953 0.441650 +v -2.751241 -12.626894 0.147767 +v -3.552781 -12.219035 0.148872 +v -2.982054 -12.968669 0.386086 +v -2.807831 -11.914003 1.109767 +v -2.060902 -12.210648 -0.250965 +v -3.720184 -14.528186 -3.507462 +v -3.874544 -15.403158 -3.751959 +v -4.961906 -13.896344 -3.505752 +v -4.070252 -15.192883 -4.827590 +v -3.892910 -15.300440 -3.061439 +v -2.428612 -12.965557 0.237758 +v -2.650731 -13.883349 -4.125166 +v -3.339469 -15.297329 -3.209766 +v -2.228640 -11.910747 0.954539 +v -2.828737 -7.774579 1.118600 +vt 0.100000 0.044444 +vt 0.900000 0.088889 +vt 0.100000 0.088889 +vt 0.900000 0.044444 +vt 0.500000 0.000000 +vt 0.050000 0.644444 +vt 0.250000 1.000000 +vt 0.050000 1.000000 +vt 0.550000 1.000000 +vt 0.750000 0.644444 +vt 0.750000 1.000000 +vt 0.250000 0.600000 +vt 0.050000 0.555556 +vt 0.250000 0.577778 +vt 0.450000 0.555556 +vt 0.450000 0.644444 +vt 0.950000 1.000000 +vt 0.750000 0.600000 +vt 0.950000 0.555556 +vt 0.900000 0.644444 +vt 0.800000 0.555556 +vt 1.000000 0.200000 +vt 1.000000 0.555556 +vt 0.400000 0.133333 +vt 0.200000 0.200000 +vt 0.350000 0.088889 +vt 0.200000 0.555556 +vt 0.450000 0.200000 +vt 0.550000 0.555556 +vt 0.750000 0.577778 +vt 0.800000 0.200000 +vt 1.000000 0.088889 +vt -0.000000 0.200000 +vt 0.550000 0.200000 +vt 0.000000 0.088889 +vt 0.600000 0.133333 +vt 0.650000 0.088889 +vt 0.500000 0.133333 +vt 0.550000 0.644444 +vt 0.450000 1.000000 +vt 0.050000 0.644444 +vt 0.250000 1.000000 +vt 0.050000 1.000000 +vt 0.550000 1.000000 +vt 0.750000 0.644444 +vt 0.750000 1.000000 +vt 0.250000 0.600000 +vt 0.050000 0.555556 +vt 0.250000 0.577778 +vt 0.450000 0.555556 +vt 0.450000 0.644444 +vt 0.950000 1.000000 +vt 0.750000 0.600000 +vt 0.950000 0.555556 +vt 0.900000 0.644444 +vt 0.800000 0.555556 +vt 1.000000 0.200000 +vt 1.000000 0.555556 +vt 0.400000 0.133333 +vt 0.200000 0.200000 +vt 0.350000 0.088889 +vt 0.200000 0.555556 +vt 0.450000 0.200000 +vt 0.550000 0.555556 +vt 0.750000 0.577778 +vt 0.800000 0.200000 +vt 1.000000 0.088889 +vt -0.000000 0.200000 +vt 0.550000 0.200000 +vt 0.000000 0.088889 +vt 0.600000 0.133333 +vt 0.650000 0.088889 +vt 0.500000 0.133333 +vt 0.550000 0.644444 +vt 0.450000 1.000000 +vt 0.250000 0.644444 +vt 0.100000 0.644444 +vt 0.950000 0.644444 +vt 0.000000 0.555556 +vt 0.250000 0.644444 +vt 0.100000 0.644444 +vt 0.950000 0.644444 +vt 0.000000 0.555556 +vn -0.0000 -0.0000 -1.0000 +vn 0.7172 0.0034 -0.6969 +vn 0.7071 0.0043 0.7071 +vn 0.6320 0.6176 -0.4682 +vn -0.9060 -0.3461 0.2436 +vn -0.2728 -0.0021 -0.9621 +vn -0.2298 0.5538 -0.8003 +vn -0.3992 0.7644 -0.5063 +vn -0.7158 -0.5883 -0.3763 +vn -0.9041 -0.4252 0.0425 +vn 0.7319 -0.3627 0.5769 +vn -0.4015 0.7687 -0.4978 +vn -0.4018 0.7693 -0.4967 +vn 0.5908 0.7700 -0.2411 +vn 0.5885 0.7743 -0.2326 +vn 0.7662 -0.4158 0.4900 +vn 0.5882 0.7749 -0.2315 +vn 0.7528 -0.6436 0.1379 +vn -0.0349 -0.9879 0.1509 +vn -0.2588 -0.0008 0.9659 +vn -0.1372 -0.8369 0.5298 +vn -0.2084 -0.5765 0.7901 +vn -0.9659 -0.0051 0.2589 +vn 0.2727 0.0034 -0.9621 +vn 0.9659 0.0043 0.2588 +vn 0.3133 0.6176 -0.7214 +vn -0.6629 -0.3461 0.6640 +vn -0.7173 -0.0021 -0.6968 +vn -0.5992 0.5538 -0.5782 +vn -0.5989 0.7644 -0.2389 +vn -0.5989 0.7644 -0.2388 +vn -0.8080 -0.5883 0.0320 +vn -0.7617 -0.4252 0.4889 +vn 0.9223 -0.3627 0.1337 +vn -0.5967 0.7687 -0.2303 +vn -0.5963 0.7693 -0.2292 +vn 0.3911 0.7700 -0.5042 +vn 0.3933 0.7743 -0.4957 +vn 0.9085 -0.4158 0.0412 +vn 0.3936 0.7749 -0.4946 +vn 0.7209 -0.6436 -0.2570 +vn 0.0453 -0.9879 0.1482 +vn 0.2589 -0.0008 0.9659 +vn 0.1461 -0.8369 0.5275 +vn 0.2146 -0.5765 0.7885 +vn -0.7071 -0.0051 0.7071 +vn 0.5933 0.5584 -0.5798 +vn -0.9184 -0.3720 0.1348 +vn -0.3198 0.6122 -0.7231 +vn -0.7295 -0.5910 -0.3443 +vn 0.6665 -0.3372 0.6648 +vn 0.7787 -0.6169 -0.1146 +vn 0.2239 0.5584 -0.7987 +vn -0.7280 -0.3720 0.5759 +vn -0.6385 0.6122 -0.4664 +vn -0.8039 -0.5910 0.0665 +vn 0.9096 -0.3372 0.2425 +vn 0.6171 -0.6169 -0.4886 +s 1 +f 811/1079/591 812/1080/591 813/1081/591 +f 814/1082/591 811/1079/591 815/1083/591 +f 816/1084/592 817/1085/592 818/1086/592 +f 819/1087/593 820/1088/593 821/1089/593 +f 822/1090/594 823/1091/594 824/1092/594 +f 822/1090/595 825/1093/595 826/1094/595 +f 820/1088/596 818/1095/596 821/1089/596 +f 820/1096/597 823/1097/597 816/1098/597 +f 827/1099/598 828/1100/598 823/1101/598 +f 829/1102/599 830/1103/599 831/1104/599 +f 824/1105/600 832/1106/600 825/1093/600 +f 820/1096/601 833/1107/601 827/1108/601 +f 828/1100/598 834/1109/602 831/1110/603 +f 824/1105/604 828/1111/604 830/1103/605 +f 827/1099/606 835/1112/606 834/1109/606 +f 830/1103/605 828/1111/604 831/1113/607 +f 834/1109/608 829/1114/608 831/1115/608 +f 835/1112/609 832/1106/609 829/1116/609 +f 819/1087/610 826/1094/610 836/1117/610 +f 832/1106/611 833/1107/611 825/1093/611 +f 826/1094/612 833/1107/612 836/1117/612 +f 817/1085/613 826/1094/613 837/1118/613 +f 838/1119/614 839/1120/614 840/1121/614 +f 841/1122/615 842/1123/615 843/1124/615 +f 844/1125/616 845/1126/616 846/1127/616 +f 844/1125/617 847/1128/617 848/1129/617 +f 842/1123/618 840/1130/618 843/1124/618 +f 842/1131/619 845/1132/619 838/1133/619 +f 849/1134/620 850/1135/621 845/1136/620 +f 851/1137/622 852/1138/622 853/1139/622 +f 846/1140/623 854/1141/623 847/1128/623 +f 842/1131/624 855/1142/624 849/1143/624 +f 850/1135/621 856/1144/625 853/1145/626 +f 846/1140/627 850/1146/627 852/1138/628 +f 849/1134/629 857/1147/629 856/1144/629 +f 852/1138/628 850/1146/627 853/1148/630 +f 856/1144/631 851/1149/631 853/1150/631 +f 857/1147/632 854/1141/632 851/1151/632 +f 841/1122/633 848/1129/633 858/1152/633 +f 854/1141/634 855/1142/634 847/1128/634 +f 847/1128/635 858/1152/635 848/1129/635 +f 839/1120/636 848/1129/636 859/1153/636 +f 811/1079/591 814/1082/591 812/1080/591 +f 816/1084/592 822/1154/592 817/1085/592 +f 819/1087/593 836/1117/593 820/1088/593 +f 822/1090/637 816/1155/637 823/1091/637 +f 822/1090/638 824/1092/638 825/1093/638 +f 820/1088/596 816/1156/596 818/1095/596 +f 820/1096/639 827/1108/639 823/1097/639 +f 827/1099/598 834/1109/602 828/1100/598 +f 829/1102/640 832/1106/640 830/1103/640 +f 824/1105/600 830/1103/600 832/1106/600 +f 820/1096/641 836/1117/641 833/1107/641 +f 824/1105/604 823/1157/604 828/1111/604 +f 827/1099/606 833/1107/606 835/1112/606 +f 834/1109/642 835/1112/642 829/1114/642 +f 819/1087/610 837/1118/610 826/1094/610 +f 832/1106/611 835/1112/611 833/1107/611 +f 826/1094/612 825/1093/612 833/1107/612 +f 817/1085/613 822/1154/613 826/1094/613 +f 838/1119/614 844/1158/614 839/1120/614 +f 841/1122/615 858/1152/615 842/1123/615 +f 844/1125/643 838/1159/643 845/1126/643 +f 844/1125/644 846/1127/644 847/1128/644 +f 842/1123/618 838/1160/618 840/1130/618 +f 842/1131/645 849/1143/645 845/1132/645 +f 849/1134/620 856/1144/625 850/1135/621 +f 851/1137/646 854/1141/646 852/1138/646 +f 846/1140/623 852/1138/623 854/1141/623 +f 842/1131/647 858/1152/647 855/1142/647 +f 846/1140/627 845/1161/627 850/1146/627 +f 849/1134/629 855/1142/629 857/1147/629 +f 856/1144/648 857/1147/648 851/1149/648 +f 841/1122/633 859/1153/633 848/1129/633 +f 854/1141/634 857/1147/634 855/1142/634 +f 847/1128/635 855/1142/635 858/1152/635 +f 839/1120/636 844/1158/636 848/1129/636 diff --git a/src/main/resources/assets/hbm/textures/armor/bnuuy_arm.png b/src/main/resources/assets/hbm/textures/armor/bnuuy_arm.png new file mode 100644 index 0000000000000000000000000000000000000000..5437bfd551cef86b332540de63423ea8ffe8c425 GIT binary patch literal 2118 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/dieselsuit_boots.png b/src/main/resources/assets/hbm/textures/items/dieselsuit_boots.png new file mode 100644 index 0000000000000000000000000000000000000000..459de081348e4cd8090be323b7768e410809e4dc GIT binary patch literal 182 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf19Da4Tt?`c3bD;+qf6)e?oB2N{Gn9RmsM<>i%__wP?zqOgz5GQPtMY(U^$ z7}&Pgg_wm2}(OMd8m_Csj4hFhJb0^B!GI0&p!LU|34YnF<4Qd+i?g0gp6Qu zbE76?guz&_!Uo-rLqbMsKVPoUsO_s90FDk1aR2(w7yx)S-=bZfpCF7AH0#x^_4@Al z$AV{bjh3QOGgO|@IQmn`0O0Y;quy`=AtTI}D^&VZ$pYV{GMbPP+AV`dvy?UK)eXB9 z064vQ%ALi-#W7jj{Gw%Q!Z^XYVk7V2cj&aY+cWA7C$PAw23y)dr-g9>0P1Wo7Ob#A z;Ja(IY_PhbQVTk5G)tMTsI)XAN~&?|N8gHaQA%t_Ex&h-G9E(hd+N#eR%pZ zxNUp>eFFjI;~j6hDmYjEuj2Z|GhNOmCE~{;$-p9?7jYAxJUsl;H>XH~t)rmuu?fR$ ynKs7h@wUe^8O(MzerICqm_Ff`f8U)0j0`7&y@WDP?VJyE41=eupUXO@geCyG2T^DM literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/dieselsuit_plate.png b/src/main/resources/assets/hbm/textures/items/dieselsuit_plate.png new file mode 100644 index 0000000000000000000000000000000000000000..3afe18e9813d4ab2ba56cd0b95b14186dc308af7 GIT binary patch literal 374 zcmV-+0g3*JP)A#OOtv^lS}V3SgHzO@A3zXsk&d0~;4c3A5(?r6 z=%9mJL7_;Xir^+fkca#*ZM zDO9kE(*TUUeP(kr%o_&Ju1jruOIdCC=s05DJ0Ea(Fut{FHYZj4(a^>v@2;%E&9wwr zDi*1NJoP(?(KLX@dO231-fGbfeAY}8J(VUH^igr;%SQMH-Ci%zMbmK-nu^l^e!jmF z7mLLL0>MHiOEBoubQ~q80bCUFF;VY*GM%2p)HAdLpKd=KVU*+PF*K-DDlz@`!DebA z#g+RKbzys6g0n0uG$_^2;|9Rl{atjnJr5NZjc_uTXXEuPT2vwtIg0fi8A U8~8IPm;e9(07*qoM6N<$f(&1r>Hq)$ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/machines/flare_stack.png b/src/main/resources/assets/hbm/textures/models/machines/flare_stack.png index cfa0358de78ee0a4f30cde6e032c030d2ee52e71..286a4aecc038f96038b9e06cd1c62bb9ba733024 100644 GIT binary patch delta 3845 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 Hu0mjf#~*ot delta 3821 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 From 8958f163d2dcf52e3850f8c9ec425657380f195f Mon Sep 17 00:00:00 2001 From: Boblet Date: Mon, 16 May 2022 16:53:10 +0200 Subject: [PATCH 09/80] a little bit of assemfac --- src/main/java/com/hbm/handler/GUIHandler.java | 1 + .../com/hbm/inventory/gui/GUIAssemfac.java | 50 ++++++++ .../machine/TileEntityMachineAssemfac.java | 109 +++++++++++++++++- 3 files changed, 158 insertions(+), 2 deletions(-) create mode 100644 src/main/java/com/hbm/inventory/gui/GUIAssemfac.java diff --git a/src/main/java/com/hbm/handler/GUIHandler.java b/src/main/java/com/hbm/handler/GUIHandler.java index 47860bd27..18c0c9b53 100644 --- a/src/main/java/com/hbm/handler/GUIHandler.java +++ b/src/main/java/com/hbm/handler/GUIHandler.java @@ -877,6 +877,7 @@ public class GUIHandler implements IGuiHandler { if(entity instanceof TileEntityMachineLiquefactor) { return new GUILiquefactor(player.inventory, (TileEntityMachineLiquefactor) entity); } if(entity instanceof TileEntityMachineSolidifier) { return new GUISolidifier(player.inventory, (TileEntityMachineSolidifier) entity); } if(entity instanceof TileEntityMachineRadiolysis) { return new GUIRadiolysis(player.inventory, (TileEntityMachineRadiolysis) entity); } + if(entity instanceof TileEntityMachineAssemfac) { return new GUIAssemfac(player.inventory, (TileEntityMachineAssemfac) entity); } if(entity instanceof TileEntityMachineChemfac) { return new GUIChemfac(player.inventory, (TileEntityMachineChemfac) entity); } if(entity instanceof TileEntityElectrolyser) { return new GUIElectrolyser(player.inventory, (TileEntityElectrolyser) entity); } diff --git a/src/main/java/com/hbm/inventory/gui/GUIAssemfac.java b/src/main/java/com/hbm/inventory/gui/GUIAssemfac.java new file mode 100644 index 000000000..880df1bd1 --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GUIAssemfac.java @@ -0,0 +1,50 @@ +package com.hbm.inventory.gui; + +import org.lwjgl.input.Keyboard; +import org.lwjgl.opengl.GL11; + +import com.hbm.inventory.container.ContainerAssemfac; +import com.hbm.lib.RefStrings; +import com.hbm.tileentity.machine.TileEntityMachineAssemfac; + +import net.minecraft.client.Minecraft; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Slot; +import net.minecraft.util.ResourceLocation; + +public class GUIAssemfac extends GuiInfoContainer { + + private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/processing/gui_assemfac.png"); + private TileEntityMachineAssemfac assemfac; + + public GUIAssemfac(InventoryPlayer invPlayer, TileEntityMachineAssemfac tedf) { + super(new ContainerAssemfac(invPlayer, tedf)); + assemfac = tedf; + + this.xSize = 256; + this.ySize = 256; + } + + @Override + public void drawScreen(int mouseX, int mouseY, float f) { + super.drawScreen(mouseX, mouseY, f); + } + + @Override + protected void drawGuiContainerForegroundLayer(int i, int j) { } + + @Override + protected void drawGuiContainerBackgroundLayer(float interp, int mX, int mY) { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + + if(Keyboard.isKeyDown(Keyboard.KEY_LMENU)) + for(int i = 0; i < this.inventorySlots.inventorySlots.size(); i++) { + Slot s = this.inventorySlots.getSlot(i); + + this.fontRendererObj.drawStringWithShadow(i + "", guiLeft + s.xDisplayPosition + 2, guiTop + s.yDisplayPosition, 0xffffff); + this.fontRendererObj.drawStringWithShadow(s.getSlotIndex() + "", guiLeft + s.xDisplayPosition + 2, guiTop + s.yDisplayPosition + 8, 0xff8080); + } + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemfac.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemfac.java index 14b532385..3dc7f7122 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemfac.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemfac.java @@ -2,14 +2,21 @@ package com.hbm.tileentity.machine; import java.util.Random; +import com.hbm.blocks.BlockDummyable; import com.hbm.tileentity.TileEntityMachineBase; -public class TileEntityMachineAssemfac extends TileEntityMachineBase { +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.ChunkCoordinates; +import net.minecraftforge.common.util.ForgeDirection; + +public class TileEntityMachineAssemfac extends TileEntityMachineAssemblerBase { public AssemblerArm[] arms; public TileEntityMachineAssemfac() { - super(10 * 8 + 4 + 1); //8 assembler groups with 10 slots, 4 upgrade slots, 1 battery slot + super(14 * 8 + 4 + 1); //8 assembler groups with 14 slots, 4 upgrade slots, 1 battery slot arms = new AssemblerArm[6]; for(int i = 0; i < arms.length; i++) { arms[i] = new AssemblerArm(i % 3 == 1 ? 1 : 0); //the second of every group of three becomes a welder @@ -176,4 +183,102 @@ public class TileEntityMachineAssemfac extends TileEntityMachineBase { RETRACT_STRIKER } } + + AxisAlignedBB bb = null; + + @Override + public AxisAlignedBB getRenderBoundingBox() { + + if(bb == null) { + bb = AxisAlignedBB.getBoundingBox( + xCoord - 5, + yCoord, + zCoord - 5, + xCoord + 5, + yCoord + 4, + zCoord + 5 + ); + } + + return bb; + } + + @Override + @SideOnly(Side.CLIENT) + public double getMaxRenderDistanceSquared() { + return 65536.0D; + } + + @Override + public void setPower(long power) { + // TODO Auto-generated method stub + + } + + @Override + public long getPower() { + // TODO Auto-generated method stub + return 0; + } + + @Override + public long getMaxPower() { + return 10_000_000; + } + + @Override + public int getRecipeCount() { + return 8; + } + + @Override + public int getTemplateIndex(int index) { + return 17 + index * 14; + } + + @Override + public int[] getSlotIndicesFromIndex(int index) { + return new int[] { 5 + index * 14, 16 + index * 14, 18 + index * 14}; + } + + ChunkCoordinates[] inpos; + ChunkCoordinates[] outpos; + + @Override + public ChunkCoordinates[] getInputPositions() { + + if(inpos != null) + return inpos; + + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + + inpos = new ChunkCoordinates[] { + new ChunkCoordinates(xCoord + dir.offsetX * 4 - rot.offsetX * 1, yCoord, zCoord + dir.offsetZ * 4 - rot.offsetZ * 1), + new ChunkCoordinates(xCoord - dir.offsetX * 5 + rot.offsetX * 2, yCoord, zCoord - dir.offsetZ * 5 + rot.offsetZ * 2), + new ChunkCoordinates(xCoord - dir.offsetX * 2 - rot.offsetX * 4, yCoord, zCoord - dir.offsetZ * 2 - rot.offsetZ * 4), + new ChunkCoordinates(xCoord + dir.offsetX * 1 + rot.offsetX * 5, yCoord, zCoord + dir.offsetZ * 1 + rot.offsetZ * 5) + }; + + return inpos; + } + + @Override + public ChunkCoordinates[] getOutputPositions() { + + if(outpos != null) + return outpos; + + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + + outpos = new ChunkCoordinates[] { + new ChunkCoordinates(xCoord + dir.offsetX * 4 + rot.offsetX * 2, yCoord, zCoord + dir.offsetZ * 4 + rot.offsetZ * 2), + new ChunkCoordinates(xCoord - dir.offsetX * 5 - rot.offsetX * 1, yCoord, zCoord - dir.offsetZ * 5 - rot.offsetZ * 1), + new ChunkCoordinates(xCoord + dir.offsetX * 1 - rot.offsetX * 4, yCoord, zCoord + dir.offsetZ * 1 - rot.offsetZ * 4), + new ChunkCoordinates(xCoord - dir.offsetX * 2 + rot.offsetX * 5, yCoord, zCoord - dir.offsetZ * 2 + rot.offsetZ * 5) + }; + + return outpos; + } } From 0bbacd5f25b31ec4b56a39f984898b402115284d Mon Sep 17 00:00:00 2001 From: Boblet Date: Tue, 17 May 2022 16:29:37 +0200 Subject: [PATCH 10/80] ported even more machines to the new fluid system, flare stack upgrades --- .../hbm/inventory/gui/GUIMachineGasFlare.java | 14 ++--- .../java/com/hbm/tileentity/TileMappings.java | 10 ++++ .../machine/TileEntityMachineCyclotron.java | 48 +++++++++++---- .../machine/TileEntityMachineMiningLaser.java | 13 +++- .../machine/TileEntitySolarBoiler.java | 25 ++++++-- .../machine/TileEntityStorageDrum.java | 11 +++- .../oil/TileEntityMachineFractionTower.java | 56 +++++++++++++++--- .../oil/TileEntityMachineLiquefactor.java | 43 +++++++++++--- .../oil/TileEntityMachineRefinery.java | 43 +++++++++++--- .../oil/TileEntityMachineSolidifier.java | 37 ++++++++---- .../gui/generators/gui_flare_stack.png | Bin 4187 -> 4398 bytes 11 files changed, 238 insertions(+), 62 deletions(-) diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineGasFlare.java b/src/main/java/com/hbm/inventory/gui/GUIMachineGasFlare.java index e99ec94ec..cb4b41e86 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineGasFlare.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineGasFlare.java @@ -35,8 +35,8 @@ public class GUIMachineGasFlare extends GuiInfoContainer { public void drawScreen(int mouseX, int mouseY, float f) { super.drawScreen(mouseX, mouseY, f); - this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 79, guiTop + 20, 35, 10, mouseX, mouseY, I18nUtil.resolveKeyArray("flare.valve")); - this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 79, guiTop + 54, 35, 14, mouseX, mouseY, I18nUtil.resolveKeyArray("flare.ignition")); + this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 79, guiTop + 16, 35, 10, mouseX, mouseY, I18nUtil.resolveKeyArray("flare.valve")); + this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 79, guiTop + 50, 35, 14, mouseX, mouseY, I18nUtil.resolveKeyArray("flare.ignition")); flare.tank.renderTankInfo(this, mouseX, mouseY, guiLeft + 35, guiTop + 69 - 52, 16, 52); this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 143, guiTop + 69 - 52, 16, 52, flare.power, flare.maxPower); @@ -45,13 +45,13 @@ public class GUIMachineGasFlare extends GuiInfoContainer { protected void mouseClicked(int x, int y, int i) { super.mouseClicked(x, y, i); - if(guiLeft + 89 <= x && guiLeft + 89 + 16 > x && guiTop + 20 < y && guiTop + 20 + 10 >= y) { + if(guiLeft + 89 <= x && guiLeft + 89 + 16 > x && guiTop + 16 < y && guiTop + 16 + 10 >= y) { mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); NBTTagCompound data = new NBTTagCompound(); data.setBoolean("valve", true); PacketDispatcher.wrapper.sendToServer(new NBTControlPacket(data, flare.xCoord, flare.yCoord, flare.zCoord)); - } else if(guiLeft + 89 <= x && guiLeft + 89 + 16 > x && guiTop + 54 < y && guiTop + 54 + 14 >= y) { + } else if(guiLeft + 89 <= x && guiLeft + 89 + 16 > x && guiTop + 50 < y && guiTop + 50 + 14 >= y) { mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); NBTTagCompound data = new NBTTagCompound(); data.setBoolean("dial", true); @@ -77,11 +77,11 @@ public class GUIMachineGasFlare extends GuiInfoContainer { int j = (int)flare.getPowerScaled(52); drawTexturedModalRect(guiLeft + 143, guiTop + 69 - j, 176, 94 - j, 16, j); - if(flare.isOn) drawTexturedModalRect(guiLeft + 79, guiTop + 20, 176, 0, 35, 10); - if(flare.doesBurn) drawTexturedModalRect(guiLeft + 79, guiTop + 54, 176, 10, 35, 14); + if(flare.isOn) drawTexturedModalRect(guiLeft + 79, guiTop + 16, 176, 0, 35, 10); + if(flare.doesBurn) drawTexturedModalRect(guiLeft + 79, guiTop + 50, 176, 10, 35, 14); if(flare.isOn && flare.doesBurn && flare.tank.getFill() > 0 && flare.tank.getTankType().traits.contains(FluidTrait.GASEOUS) && flare.tank.getTankType() instanceof FluidTypeFlammable) - drawTexturedModalRect(guiLeft + 88, guiTop + 34, 176, 24, 18, 18); + drawTexturedModalRect(guiLeft + 88, guiTop + 29, 176, 24, 18, 18); flare.tank.renderTank(guiLeft + 35, guiTop + 69, this.zLevel, 16, 52); } diff --git a/src/main/java/com/hbm/tileentity/TileMappings.java b/src/main/java/com/hbm/tileentity/TileMappings.java index da4877661..91855540a 100644 --- a/src/main/java/com/hbm/tileentity/TileMappings.java +++ b/src/main/java/com/hbm/tileentity/TileMappings.java @@ -7,6 +7,10 @@ import com.hbm.blocks.generic.BlockEmitter.TileEntityEmitter; import com.hbm.blocks.generic.BlockLoot.TileEntityLoot; import com.hbm.blocks.generic.BlockMotherOfAllOres.TileEntityRandomOre; import com.hbm.blocks.network.CableDiode.TileEntityDiode; +import com.hbm.interfaces.IFluidAcceptor; +import com.hbm.interfaces.IFluidContainer; +import com.hbm.interfaces.IFluidSource; +import com.hbm.main.MainRegistry; import com.hbm.tileentity.bomb.*; import com.hbm.tileentity.conductor.*; import com.hbm.tileentity.deco.*; @@ -17,7 +21,9 @@ import com.hbm.tileentity.machine.rbmk.*; import com.hbm.tileentity.machine.storage.*; import com.hbm.tileentity.network.*; import com.hbm.tileentity.turret.*; +import com.hbm.util.LoggingUtil; +import api.hbm.fluid.IFluidConnector; import net.minecraft.tileentity.TileEntity; public class TileMappings { @@ -312,5 +318,9 @@ public class TileMappings { private static void put(Class clazz, String... names) { map.put(clazz, names); + + if((IFluidSource.class.isAssignableFrom(clazz) || IFluidAcceptor.class.isAssignableFrom(clazz)) && !IFluidConnector.class.isAssignableFrom(clazz)) { + LoggingUtil.errorWithHighlight(clazz.getCanonicalName() + " implements the old interfaces but not IFluidConnector!"); + } } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCyclotron.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCyclotron.java index 5faccef34..c148caf89 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCyclotron.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCyclotron.java @@ -1,7 +1,6 @@ package com.hbm.tileentity.machine; import java.util.ArrayList; -import java.util.Arrays; import java.util.List; import com.hbm.config.BombConfig; @@ -22,8 +21,10 @@ import com.hbm.lib.Library; import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.fauxpointtwelve.DirPos; import api.hbm.energy.IEnergyUser; +import api.hbm.fluid.IFluidStandardTransceiver; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -32,7 +33,7 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; -public class TileEntityMachineCyclotron extends TileEntityMachineBase implements IFluidSource, IFluidAcceptor, IEnergyUser { +public class TileEntityMachineCyclotron extends TileEntityMachineBase implements IFluidSource, IFluidAcceptor, IEnergyUser, IFluidStandardTransceiver { public long power; public static final long maxPower = 100000000; @@ -142,6 +143,7 @@ public class TileEntityMachineCyclotron extends TileEntityMachineBase implements progress = 0; } + this.sendFluid(); NBTTagCompound data = new NBTTagCompound(); data.setLong("power", power); @@ -156,15 +158,29 @@ public class TileEntityMachineCyclotron extends TileEntityMachineBase implements } private void updateConnections() { - - this.trySubscribe(worldObj, xCoord + 3, yCoord, zCoord + 1, Library.POS_X); - this.trySubscribe(worldObj, xCoord + 3, yCoord, zCoord - 1, Library.POS_X); - this.trySubscribe(worldObj, xCoord - 3, yCoord, zCoord + 1, Library.NEG_X); - this.trySubscribe(worldObj, xCoord - 3, yCoord, zCoord - 1, Library.NEG_X); - this.trySubscribe(worldObj, xCoord + 1, yCoord, zCoord + 3, Library.POS_Z); - this.trySubscribe(worldObj, xCoord - 1, yCoord, zCoord + 3, Library.POS_Z); - this.trySubscribe(worldObj, xCoord + 1, yCoord, zCoord - 3, Library.NEG_Z); - this.trySubscribe(worldObj, xCoord - 1, yCoord, zCoord - 3, Library.NEG_Z); + for(DirPos pos : getConPos()) { + this.trySubscribe(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + this.trySubscribe(coolant.getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + } + } + + private void sendFluid() { + for(DirPos pos : getConPos()) { + this.sendFluid(amat.getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + } + } + + public DirPos[] getConPos() { + return new DirPos[] { + new DirPos(xCoord + 3, yCoord, zCoord + 1, Library.POS_X), + new DirPos(xCoord + 3, yCoord, zCoord - 1, Library.POS_X), + new DirPos(xCoord - 3, yCoord, zCoord + 1, Library.NEG_X), + new DirPos(xCoord - 3, yCoord, zCoord - 1, Library.NEG_X), + new DirPos(xCoord + 1, yCoord, zCoord + 3, Library.POS_Z), + new DirPos(xCoord - 1, yCoord, zCoord + 3, Library.POS_Z), + new DirPos(xCoord + 1, yCoord, zCoord - 3, Library.NEG_Z), + new DirPos(xCoord - 1, yCoord, zCoord - 3, Library.NEG_Z) + }; } public void networkUnpack(NBTTagCompound data) { @@ -510,4 +526,14 @@ public class TileEntityMachineCyclotron extends TileEntityMachineBase implements public long getMaxPower() { return this.maxPower; } + + @Override + public FluidTank[] getSendingTanks() { + return new FluidTank[] { amat }; + } + + @Override + public FluidTank[] getReceivingTanks() { + return new FluidTank[] { coolant }; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMiningLaser.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMiningLaser.java index 5baf6292e..a11f0a5c4 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMiningLaser.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMiningLaser.java @@ -25,6 +25,7 @@ import com.hbm.util.InventoryUtil; import api.hbm.block.IDrillInteraction; import api.hbm.block.IMiningDrill; import api.hbm.energy.IEnergyUser; +import api.hbm.fluid.IFluidStandardSender; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; @@ -41,7 +42,7 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineMiningLaser extends TileEntityMachineBase implements IEnergyUser, IFluidSource, IMiningDrill { +public class TileEntityMachineMiningLaser extends TileEntityMachineBase implements IEnergyUser, IFluidSource, IMiningDrill, IFluidStandardSender { public long power; public int age = 0; @@ -89,6 +90,11 @@ public class TileEntityMachineMiningLaser extends TileEntityMachineBase implemen if (age == 9 || age == 19) fillFluidInit(tank.getTankType()); + + this.sendFluid(tank.getTankType(), worldObj, xCoord + 2, yCoord, zCoord, Library.POS_X); + this.sendFluid(tank.getTankType(), worldObj, xCoord - 2, yCoord, zCoord, Library.NEG_X); + this.sendFluid(tank.getTankType(), worldObj, xCoord, yCoord + 2, zCoord, Library.POS_Z); + this.sendFluid(tank.getTankType(), worldObj, xCoord, yCoord - 2, zCoord, Library.NEG_Z); power = Library.chargeTEFromItems(slots, 0, power, maxPower); tank.updateTank(xCoord, yCoord, zCoord, this.worldObj.provider.dimensionId); @@ -680,4 +686,9 @@ public class TileEntityMachineMiningLaser extends TileEntityMachineBase implemen public int getDrillRating() { return 100; } + + @Override + public FluidTank[] getSendingTanks() { + return new FluidTank[] { tank }; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntitySolarBoiler.java b/src/main/java/com/hbm/tileentity/machine/TileEntitySolarBoiler.java index eeb4e81bd..2fa7e2248 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntitySolarBoiler.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntitySolarBoiler.java @@ -1,7 +1,6 @@ package com.hbm.tileentity.machine; import java.util.ArrayList; -import java.util.Arrays; import java.util.HashSet; import java.util.List; @@ -12,6 +11,7 @@ import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.lib.Library; +import api.hbm.fluid.IFluidStandardTransceiver; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.nbt.NBTTagCompound; @@ -19,7 +19,7 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.ChunkCoordinates; -public class TileEntitySolarBoiler extends TileEntity implements IFluidAcceptor, IFluidSource { +public class TileEntitySolarBoiler extends TileEntity implements IFluidAcceptor, IFluidSource, IFluidStandardTransceiver { private FluidTank water; private FluidTank steam; @@ -40,8 +40,11 @@ public class TileEntitySolarBoiler extends TileEntity implements IFluidAcceptor, if(!worldObj.isRemote) { //if(worldObj.getTotalWorldTime() % 5 == 0) { - fillFluidInit(Fluids.STEAM); + fillFluidInit(Fluids.STEAM); //} + + this.trySubscribe(water.getTankType(), worldObj, xCoord, yCoord + 3, zCoord, Library.POS_Y); + this.trySubscribe(water.getTankType(), worldObj, xCoord, yCoord - 1, zCoord, Library.NEG_Y); int process = heat / 10; process = Math.min(process, water.getFill()); @@ -52,9 +55,9 @@ public class TileEntitySolarBoiler extends TileEntity implements IFluidAcceptor, water.setFill(water.getFill() - process); steam.setFill(steam.getFill() + process * 100); - - //if(steam.getFill() > steam.getMaxFill() * 0.9) - // System.out.println("*" + steam.getFill()); + + this.sendFluid(steam.getTankType(), worldObj, xCoord, yCoord + 3, zCoord, Library.POS_Y); + this.sendFluid(steam.getTankType(), worldObj, xCoord, yCoord - 1, zCoord, Library.NEG_Y); heat = 0; } else { @@ -176,4 +179,14 @@ public class TileEntitySolarBoiler extends TileEntity implements IFluidAcceptor, public double getMaxRenderDistanceSquared() { return 65536.0D; } + + @Override + public FluidTank[] getSendingTanks() { + return new FluidTank[] { steam }; + } + + @Override + public FluidTank[] getReceivingTanks() { + return new FluidTank[] { water }; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityStorageDrum.java b/src/main/java/com/hbm/tileentity/machine/TileEntityStorageDrum.java index dba776359..126b9055f 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityStorageDrum.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityStorageDrum.java @@ -20,6 +20,7 @@ import com.hbm.util.ContaminationUtil; import com.hbm.util.ContaminationUtil.ContaminationType; import com.hbm.util.ContaminationUtil.HazardType; +import api.hbm.fluid.IFluidStandardSender; import net.minecraft.entity.EntityLivingBase; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; @@ -28,7 +29,7 @@ import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.Vec3; import net.minecraft.world.World; -public class TileEntityStorageDrum extends TileEntityMachineBase implements IFluidSource { +public class TileEntityStorageDrum extends TileEntityMachineBase implements IFluidSource, IFluidStandardSender { public FluidTank[] tanks; private static final int[] slots_arr = new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23 }; @@ -139,6 +140,9 @@ public class TileEntityStorageDrum extends TileEntityMachineBase implements IFlu fillFluidInit(tanks[1].getTankType()); } + this.sendFluidToAll(tanks[0].getTankType(), this); + this.sendFluidToAll(tanks[1].getTankType(), this); + tanks[0].updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); tanks[1].updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); @@ -308,4 +312,9 @@ public class TileEntityStorageDrum extends TileEntityMachineBase implements IFlu this.tanks[0].writeToNBT(nbt, "liquid"); this.tanks[1].writeToNBT(nbt, "gas"); } + + @Override + public FluidTank[] getSendingTanks() { + return new FluidTank[] { tanks[0], tanks[1] }; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineFractionTower.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineFractionTower.java index 2ea577f19..d25f42aef 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineFractionTower.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineFractionTower.java @@ -13,7 +13,9 @@ import com.hbm.inventory.recipes.RefineryRecipes; import com.hbm.lib.Library; import com.hbm.tileentity.INBTPacketReceiver; import com.hbm.util.Tuple.Pair; +import com.hbm.util.fauxpointtwelve.DirPos; +import api.hbm.fluid.IFluidStandardTransceiver; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.nbt.NBTTagCompound; @@ -21,7 +23,7 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineFractionTower extends TileEntity implements IFluidSource, IFluidAcceptor, INBTPacketReceiver { +public class TileEntityMachineFractionTower extends TileEntity implements IFluidSource, IFluidAcceptor, INBTPacketReceiver, IFluidStandardTransceiver { public FluidTank[] tanks; public List list1 = new ArrayList(); @@ -41,7 +43,6 @@ public class TileEntityMachineFractionTower extends TileEntity implements IFluid TileEntity stack = worldObj.getTileEntity(xCoord, yCoord + 3, zCoord); - if(stack instanceof TileEntityMachineFractionTower) { TileEntityMachineFractionTower frac = (TileEntityMachineFractionTower) stack; @@ -65,6 +66,7 @@ public class TileEntityMachineFractionTower extends TileEntity implements IFluid } setupTanks(); + this.updateConnections(); if(worldObj.getTotalWorldTime() % 20 == 0) fractionate(); @@ -72,14 +74,16 @@ public class TileEntityMachineFractionTower extends TileEntity implements IFluid if(worldObj.getTotalWorldTime() % 10 == 0) { fillFluidInit(tanks[1].getTankType()); fillFluidInit(tanks[2].getTankType()); - - NBTTagCompound data = new NBTTagCompound(); - - for(int i = 0; i < 3; i++) - tanks[i].writeToNBT(data, "tank" + i); - - INBTPacketReceiver.networkPack(this, data, 50); } + + this.sendFluid(); + + NBTTagCompound data = new NBTTagCompound(); + + for(int i = 0; i < 3; i++) + tanks[i].writeToNBT(data, "tank" + i); + + INBTPacketReceiver.networkPack(this, data, 50); } } @@ -89,6 +93,30 @@ public class TileEntityMachineFractionTower extends TileEntity implements IFluid tanks[i].readFromNBT(nbt, "tank" + i); } + private void updateConnections() { + + for(DirPos pos : getConPos()) { + this.trySubscribe(tanks[0].getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + } + } + + private void sendFluid() { + + for(DirPos pos : getConPos()) { + this.sendFluid(tanks[1].getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + this.sendFluid(tanks[2].getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + } + } + + private DirPos[] getConPos() { + return new DirPos[] { + new DirPos(xCoord + 2, yCoord, zCoord, Library.POS_X), + new DirPos(xCoord - 2, yCoord, zCoord, Library.NEG_X), + new DirPos(xCoord, yCoord, zCoord + 2, Library.POS_Z), + new DirPos(xCoord, yCoord, zCoord - 2, Library.NEG_Z) + }; + } + private void setupTanks() { Pair quart = RefineryRecipes.getFractions(tanks[0].getTankType()); @@ -234,4 +262,14 @@ public class TileEntityMachineFractionTower extends TileEntity implements IFluid public double getMaxRenderDistanceSquared() { return 65536.0D; } + + @Override + public FluidTank[] getSendingTanks() { + return new FluidTank[] { tanks[1], tanks[2] }; + } + + @Override + public FluidTank[] getReceivingTanks() { + return new FluidTank[] { tanks[0] }; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineLiquefactor.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineLiquefactor.java index 22e5815df..366052a75 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineLiquefactor.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineLiquefactor.java @@ -14,15 +14,17 @@ import com.hbm.inventory.recipes.LiquefactionRecipes; import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import com.hbm.lib.Library; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.fauxpointtwelve.DirPos; import api.hbm.energy.IEnergyUser; +import api.hbm.fluid.IFluidStandardSender; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; -public class TileEntityMachineLiquefactor extends TileEntityMachineBase implements IEnergyUser, IFluidSource { +public class TileEntityMachineLiquefactor extends TileEntityMachineBase implements IEnergyUser, IFluidSource, IFluidStandardSender { public long power; public static final long maxPower = 100000; @@ -50,13 +52,8 @@ public class TileEntityMachineLiquefactor extends TileEntityMachineBase implemen if(!worldObj.isRemote) { this.power = Library.chargeTEFromItems(slots, 1, power, maxPower); tank.updateTank(this); - - this.trySubscribe(worldObj, xCoord, yCoord + 4, zCoord, Library.POS_Y); - this.trySubscribe(worldObj, xCoord, yCoord - 1, zCoord, Library.NEG_Y); - this.trySubscribe(worldObj, xCoord + 2, yCoord + 1, zCoord, Library.POS_X); - this.trySubscribe(worldObj, xCoord - 2, yCoord + 1, zCoord, Library.NEG_X); - this.trySubscribe(worldObj, xCoord, yCoord + 1, zCoord + 2, Library.POS_Z); - this.trySubscribe(worldObj, xCoord, yCoord + 1, zCoord - 2, Library.NEG_Z); + + this.updateConnections(); UpgradeManager.eval(slots, 2, 3); int speed = Math.min(UpgradeManager.getLevel(UpgradeType.SPEED), 3); @@ -74,6 +71,8 @@ public class TileEntityMachineLiquefactor extends TileEntityMachineBase implemen this.fillFluidInit(tank.getTankType()); } + this.sendFluid(); + NBTTagCompound data = new NBTTagCompound(); data.setLong("power", this.power); data.setInteger("progress", this.progress); @@ -82,6 +81,29 @@ public class TileEntityMachineLiquefactor extends TileEntityMachineBase implemen this.networkPack(data, 50); } } + + private void updateConnections() { + for(DirPos pos : getConPos()) { + this.trySubscribe(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + } + } + + private void sendFluid() { + for(DirPos pos : getConPos()) { + this.sendFluid(tank.getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + } + } + + private DirPos[] getConPos() { + return new DirPos[] { + new DirPos(xCoord, yCoord + 4, zCoord, Library.POS_Y), + new DirPos(xCoord, yCoord - 1, zCoord, Library.NEG_Y), + new DirPos(xCoord + 2, yCoord + 1, zCoord, Library.POS_X), + new DirPos(xCoord - 2, yCoord + 1, zCoord, Library.NEG_X), + new DirPos(xCoord, yCoord + 1, zCoord + 2, Library.POS_Z), + new DirPos(xCoord, yCoord + 1, zCoord - 2, Library.NEG_Z) + }; + } @Override public boolean isItemValidForSlot(int i, ItemStack itemStack) { @@ -246,4 +268,9 @@ public class TileEntityMachineLiquefactor extends TileEntityMachineBase implemen public double getMaxRenderDistanceSquared() { return 65536.0D; } + + @Override + public FluidTank[] getSendingTanks() { + return new FluidTank[] { tank }; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineRefinery.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineRefinery.java index 5ee6b9559..56c436a5d 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineRefinery.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineRefinery.java @@ -15,8 +15,10 @@ import com.hbm.inventory.recipes.RefineryRecipes; import com.hbm.lib.Library; import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.util.Tuple.Quintet; +import com.hbm.util.fauxpointtwelve.DirPos; import api.hbm.energy.IEnergyUser; +import api.hbm.fluid.IFluidStandardTransceiver; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.entity.player.EntityPlayer; @@ -26,7 +28,7 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.Vec3; -public class TileEntityMachineRefinery extends TileEntityMachineBase implements IEnergyUser, IFluidContainer, IFluidAcceptor, IFluidSource, IControlReceiver { +public class TileEntityMachineRefinery extends TileEntityMachineBase implements IEnergyUser, IFluidContainer, IFluidAcceptor, IFluidSource, IControlReceiver, IFluidStandardTransceiver { public long power = 0; public int sulfur = 0; @@ -192,14 +194,23 @@ public class TileEntityMachineRefinery extends TileEntityMachineBase implements } private void updateConnections() { - this.trySubscribe(worldObj, xCoord + 2, yCoord, zCoord + 1, Library.POS_X); - this.trySubscribe(worldObj, xCoord + 2, yCoord, zCoord - 1, Library.POS_X); - this.trySubscribe(worldObj, xCoord - 2, yCoord, zCoord + 1, Library.NEG_X); - this.trySubscribe(worldObj, xCoord - 2, yCoord, zCoord - 1, Library.NEG_X); - this.trySubscribe(worldObj, xCoord + 1, yCoord, zCoord + 2, Library.POS_Z); - this.trySubscribe(worldObj, xCoord - 1, yCoord, zCoord + 2, Library.POS_Z); - this.trySubscribe(worldObj, xCoord + 1, yCoord, zCoord - 2, Library.NEG_Z); - this.trySubscribe(worldObj, xCoord - 1, yCoord, zCoord - 2, Library.NEG_Z); + for(DirPos pos : getConPos()) { + this.trySubscribe(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + this.trySubscribe(tanks[0].getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + } + } + + public DirPos[] getConPos() { + return new DirPos[] { + new DirPos(xCoord + 2, yCoord, zCoord + 1, Library.POS_X), + new DirPos(xCoord + 2, yCoord, zCoord - 1, Library.POS_X), + new DirPos(xCoord - 2, yCoord, zCoord + 1, Library.NEG_X), + new DirPos(xCoord - 2, yCoord, zCoord - 1, Library.NEG_X), + new DirPos(xCoord + 1, yCoord, zCoord + 2, Library.POS_Z), + new DirPos(xCoord - 1, yCoord, zCoord + 2, Library.POS_Z), + new DirPos(xCoord + 1, yCoord, zCoord - 2, Library.NEG_Z), + new DirPos(xCoord - 1, yCoord, zCoord - 2, Library.NEG_Z) + }; } public long getPowerScaled(long i) { @@ -326,6 +337,10 @@ public class TileEntityMachineRefinery extends TileEntityMachineBase implements if(data.hasKey("toggle")) { + for(DirPos pos : getConPos()) { + this.tryUnsubscribe(tanks[0].getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ()); + } + if(tanks[0].getTankType() == Fluids.HOTOIL) { tanks[0].setTankType(Fluids.HOTCRACKOIL); } else { @@ -333,4 +348,14 @@ public class TileEntityMachineRefinery extends TileEntityMachineBase implements } } } + + @Override + public FluidTank[] getSendingTanks() { + return new FluidTank[] { tanks[1], tanks[2], tanks[3], tanks[4] }; + } + + @Override + public FluidTank[] getReceivingTanks() { + return new FluidTank[] { tanks[0] }; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineSolidifier.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineSolidifier.java index c899366c7..36fda0b9a 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineSolidifier.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineSolidifier.java @@ -1,8 +1,5 @@ package com.hbm.tileentity.machine.oil; -import java.util.ArrayList; -import java.util.List; - import com.hbm.interfaces.IFluidAcceptor; import com.hbm.inventory.FluidTank; import com.hbm.inventory.UpgradeManager; @@ -13,15 +10,17 @@ import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import com.hbm.lib.Library; import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.util.Tuple.Pair; +import com.hbm.util.fauxpointtwelve.DirPos; import api.hbm.energy.IEnergyUser; +import api.hbm.fluid.IFluidStandardReceiver; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; -public class TileEntityMachineSolidifier extends TileEntityMachineBase implements IEnergyUser, IFluidAcceptor { +public class TileEntityMachineSolidifier extends TileEntityMachineBase implements IEnergyUser, IFluidAcceptor, IFluidStandardReceiver { public long power; public static final long maxPower = 100000; @@ -51,12 +50,7 @@ public class TileEntityMachineSolidifier extends TileEntityMachineBase implement tank.setType(4, slots); tank.updateTank(this); - this.trySubscribe(worldObj, xCoord, yCoord + 4, zCoord, Library.POS_Y); - this.trySubscribe(worldObj, xCoord, yCoord - 1, zCoord, Library.NEG_Y); - this.trySubscribe(worldObj, xCoord + 2, yCoord + 1, zCoord, Library.POS_X); - this.trySubscribe(worldObj, xCoord - 2, yCoord + 1, zCoord, Library.NEG_X); - this.trySubscribe(worldObj, xCoord, yCoord + 1, zCoord + 2, Library.POS_Z); - this.trySubscribe(worldObj, xCoord, yCoord + 1, zCoord - 2, Library.NEG_Z); + this.updateConnections(); UpgradeManager.eval(slots, 2, 3); int speed = Math.min(UpgradeManager.getLevel(UpgradeType.SPEED), 3); @@ -78,6 +72,24 @@ public class TileEntityMachineSolidifier extends TileEntityMachineBase implement this.networkPack(data, 50); } } + + private void updateConnections() { + for(DirPos pos : getConPos()) { + this.trySubscribe(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + this.trySubscribe(tank.getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + } + } + + private DirPos[] getConPos() { + return new DirPos[] { + new DirPos(xCoord, yCoord + 4, zCoord, Library.POS_Y), + new DirPos(xCoord, yCoord - 1, zCoord, Library.NEG_Y), + new DirPos(xCoord + 2, yCoord + 1, zCoord, Library.POS_X), + new DirPos(xCoord - 2, yCoord + 1, zCoord, Library.NEG_X), + new DirPos(xCoord, yCoord + 1, zCoord + 2, Library.POS_Z), + new DirPos(xCoord, yCoord + 1, zCoord - 2, Library.NEG_Z) + }; + } @Override public boolean canExtractItem(int slot, ItemStack stack, int side) { @@ -230,4 +242,9 @@ public class TileEntityMachineSolidifier extends TileEntityMachineBase implement public double getMaxRenderDistanceSquared() { return 65536.0D; } + + @Override + public FluidTank[] getReceivingTanks() { + return new FluidTank[] { tank }; + } } diff --git a/src/main/resources/assets/hbm/textures/gui/generators/gui_flare_stack.png b/src/main/resources/assets/hbm/textures/gui/generators/gui_flare_stack.png index 3656afe84a479131a294b9180dae43d1056097b7..69e2c398b048bd466e77f1f67a8dd9885fa377ac 100644 GIT binary patch literal 4398 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 V+WZzWcK;RtsEg(o$_?D&{|?2FuSEa= From aa385f2a214cbf03b2f77d9d5487b5939ab89e2b Mon Sep 17 00:00:00 2001 From: Bob Date: Tue, 17 May 2022 22:27:34 +0200 Subject: [PATCH 11/80] finished flare stack upgrades, more assemfac GUI work --- .../hbm/blocks/machine/MachineGasFlare.java | 3 +- .../container/ContainerAssemfac.java | 47 +++++- .../container/ContainerMachineGasFlare.java | 18 ++- .../container/ContainerMachinePress.java | 135 ++++++++---------- .../hbm/inventory/gui/GUIMachineGasFlare.java | 7 +- .../inventory/recipes/AssemblerRecipes.java | 2 +- .../hbm/items/machine/ItemMachineUpgrade.java | 4 + .../oil/TileEntityMachineGasFlare.java | 28 +++- src/main/resources/assets/hbm/lang/en_US.lang | 4 +- 9 files changed, 151 insertions(+), 97 deletions(-) diff --git a/src/main/java/com/hbm/blocks/machine/MachineGasFlare.java b/src/main/java/com/hbm/blocks/machine/MachineGasFlare.java index 31e5a3e07..8aa2f243e 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineGasFlare.java +++ b/src/main/java/com/hbm/blocks/machine/MachineGasFlare.java @@ -57,11 +57,12 @@ public class MachineGasFlare extends BlockDummyable implements ITooltipProvider @Override public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { - list.add(EnumChatFormatting.GOLD + "Can burn or vent gasses"); + list.add(EnumChatFormatting.GOLD + "Can burn fluids and vent gasses"); list.add(EnumChatFormatting.GOLD + "Burns up to " + EnumChatFormatting.RED + "10mB/t"); list.add(EnumChatFormatting.GOLD + "Vents up to " + EnumChatFormatting.RED + "50mB/t"); list.add(""); list.add(EnumChatFormatting.YELLOW + "Fuel efficiency:"); list.add(EnumChatFormatting.YELLOW + "-Flammable Gasses: " + EnumChatFormatting.RED + "50%"); + list.add(EnumChatFormatting.YELLOW + "-Flammable Liquids: " + EnumChatFormatting.RED + "10%"); } } diff --git a/src/main/java/com/hbm/inventory/container/ContainerAssemfac.java b/src/main/java/com/hbm/inventory/container/ContainerAssemfac.java index 2b70861d2..cdcefdb25 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerAssemfac.java +++ b/src/main/java/com/hbm/inventory/container/ContainerAssemfac.java @@ -1,10 +1,13 @@ package com.hbm.inventory.container; +import com.hbm.inventory.SlotUpgrade; import com.hbm.tileentity.machine.TileEntityMachineAssemfac; 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 ContainerAssemfac extends Container { @@ -12,11 +15,51 @@ public class ContainerAssemfac extends Container { public ContainerAssemfac(InventoryPlayer playerInv, TileEntityMachineAssemfac tile) { assemfac = tile; + + //Battery + this.addSlotToContainer(new Slot(tile, 0, 234, 218)); + + for(int i = 0; i < 4; i++) { + this.addSlotToContainer(new SlotUpgrade(tile, 1 + i, 5, 172 + i * 18)); + } + + for(int i = 0; i < 4; i++) { + for(int j = 0; j < 2; j++) { + int offX = 7 + j * 118; + int offY = 14 + i * 38; + int startIndex = 5 + (i * 2 + j) * 14; + + for(int k = 0; k < 2; k++) { + for(int l = 0; l < 6; l++) { + this.addSlotToContainer(new Slot(tile, startIndex + k * 6 + l, offX + l * 16, offY + k * 16)); + } + } + } + } + + for(int i = 0; i < 8; i++) { + this.addSlotToContainer(new Slot(tile, 17 + i * 14, 106, 13 + i * 19 - (i % 2 == 1 ? 1 : 0))); + this.addSlotToContainer(new Slot(tile, 18 + i * 14, 234, 13 + i * 16)); + } + + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 9; j++) { + this.addSlotToContainer(new Slot(playerInv, j + i * 9 + 9, 34 + j * 18, 174 + i * 18)); + } + } + + for(int i = 0; i < 9; i++) { + this.addSlotToContainer(new Slot(playerInv, i, 34 + i * 18, 232)); + } } @Override - public boolean canInteractWith(EntityPlayer p_75145_1_) { - return false; + public boolean canInteractWith(EntityPlayer player) { + return assemfac.isUseableByPlayer(player); } + @Override + public ItemStack transferStackInSlot(EntityPlayer player, int index) { + return null; + } } diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineGasFlare.java b/src/main/java/com/hbm/inventory/container/ContainerMachineGasFlare.java index 2382ddd5c..6dbd8c93c 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerMachineGasFlare.java +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineGasFlare.java @@ -2,6 +2,7 @@ package com.hbm.inventory.container; import com.hbm.inventory.SlotMachineOutput; import com.hbm.items.machine.IItemFluidIdentifier; +import com.hbm.items.machine.ItemMachineUpgrade; import com.hbm.tileentity.machine.oil.TileEntityMachineGasFlare; import api.hbm.energy.IBatteryItem; @@ -28,6 +29,9 @@ public class ContainerMachineGasFlare extends Container { this.addSlotToContainer(new SlotMachineOutput(tedf, 2, 17, 53)); //Fluid ID this.addSlotToContainer(new Slot(tedf, 3, 35, 71)); + //Upgrades + this.addSlotToContainer(new Slot(tedf, 4, 80, 71)); + this.addSlotToContainer(new Slot(tedf, 5, 98, 71)); int offset = 37; @@ -56,22 +60,26 @@ public class ContainerMachineGasFlare extends Container { ItemStack var5 = var4.getStack(); var3 = var5.copy(); - if(par2 <= 3) { - if(!this.mergeItemStack(var5, 4, this.inventorySlots.size(), true)) { + if(par2 <= 5) { + if(!this.mergeItemStack(var5, 6, this.inventorySlots.size(), true)) { return null; } } else { if(var3.getItem() instanceof IItemFluidIdentifier) { - if(!this.mergeItemStack(var5, 3, 4, true)) { + if(!this.mergeItemStack(var5, 3, 4, false)) { return null; } } else if(var3.getItem() instanceof IBatteryItem) { - if(!this.mergeItemStack(var5, 0, 1, true)) { + if(!this.mergeItemStack(var5, 0, 1, false)) { + return null; + } + } else if(var3.getItem() instanceof ItemMachineUpgrade) { + if(!this.mergeItemStack(var5, 4, 6, false)) { return null; } } else { - if(!this.mergeItemStack(var5, 1, 2, true)) { + if(!this.mergeItemStack(var5, 1, 2, false)) { return null; } } diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachinePress.java b/src/main/java/com/hbm/inventory/container/ContainerMachinePress.java index 222ef70f6..db5db00ff 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerMachinePress.java +++ b/src/main/java/com/hbm/inventory/container/ContainerMachinePress.java @@ -12,137 +12,118 @@ import net.minecraft.item.ItemStack; public class ContainerMachinePress extends Container { -private TileEntityMachinePress nukeBoy; + private TileEntityMachinePress press; private int power; private int progress; private int burnTime; private int maxBurn; - + public ContainerMachinePress(InventoryPlayer invPlayer, TileEntityMachinePress tedf) { power = 0; progress = 0; burnTime = 0; maxBurn = 0; - - nukeBoy = tedf; - //Coal + press = tedf; + + // Coal this.addSlotToContainer(new Slot(tedf, 0, 26, 53)); - //Stamp + // Stamp this.addSlotToContainer(new Slot(tedf, 1, 80, 17)); - //Input + // Input this.addSlotToContainer(new Slot(tedf, 2, 80, 53)); - //Output + // Output this.addSlotToContainer(new SlotMachineOutput(tedf, 3, 140, 35)); - - for(int i = 0; i < 3; i++) - { - for(int j = 0; j < 9; j++) - { + + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 9; j++) { this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 84 + i * 18)); } } - - for(int i = 0; i < 9; i++) - { + + for(int i = 0; i < 9; i++) { this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 142)); } } - + @Override - public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) - { + public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) { ItemStack var3 = null; Slot var4 = (Slot) this.inventorySlots.get(par2); - - if (var4 != null && var4.getHasStack()) - { + + if(var4 != null && var4.getHasStack()) { ItemStack var5 = var4.getStack(); var3 = var5.copy(); - - if (par2 <= 3) { - if (!this.mergeItemStack(var5, 4, this.inventorySlots.size(), true)) - { + + if(par2 <= 3) { + if(!this.mergeItemStack(var5, 4, this.inventorySlots.size(), true)) { return null; } - } - else if (!this.mergeItemStack(var5, 2, 3, false)) - if (!this.mergeItemStack(var5, 0, 1, false)) - if (!this.mergeItemStack(var5, 1, 2, false)) + } else if(!this.mergeItemStack(var5, 2, 3, false)) + if(!this.mergeItemStack(var5, 0, 1, false)) + if(!this.mergeItemStack(var5, 1, 2, false)) return null; - - if (var5.stackSize == 0) - { + + if(var5.stackSize == 0) { var4.putStack((ItemStack) null); - } - else - { + } else { var4.onSlotChanged(); } } - + return var3; - } + } @Override public boolean canInteractWith(EntityPlayer player) { - return nukeBoy.isUseableByPlayer(player); + return press.isUseableByPlayer(player); } - + @Override public void detectAndSendChanges() { super.detectAndSendChanges(); - - for(int i = 0; i < this.crafters.size(); i++) - { - ICrafting par1 = (ICrafting)this.crafters.get(i); - - if(this.power != this.nukeBoy.power) - { - par1.sendProgressBarUpdate(this, 0, this.nukeBoy.power); + + for(int i = 0; i < this.crafters.size(); i++) { + ICrafting par1 = (ICrafting) this.crafters.get(i); + + if(this.power != this.press.power) { + par1.sendProgressBarUpdate(this, 0, this.press.power); } - - if(this.progress != this.nukeBoy.progress) - { - par1.sendProgressBarUpdate(this, 1, this.nukeBoy.progress); + + if(this.progress != this.press.progress) { + par1.sendProgressBarUpdate(this, 1, this.press.progress); } - - if(this.burnTime != this.nukeBoy.burnTime) - { - par1.sendProgressBarUpdate(this, 2, this.nukeBoy.burnTime); + + if(this.burnTime != this.press.burnTime) { + par1.sendProgressBarUpdate(this, 2, this.press.burnTime); } - - if(this.maxBurn != this.nukeBoy.maxBurn) - { - par1.sendProgressBarUpdate(this, 3, this.nukeBoy.maxBurn); + + if(this.maxBurn != this.press.maxBurn) { + par1.sendProgressBarUpdate(this, 3, this.press.maxBurn); } } - this.power = this.nukeBoy.power; - this.progress = this.nukeBoy.progress; - this.burnTime = this.nukeBoy.burnTime; - this.maxBurn = this.nukeBoy.maxBurn; + this.power = this.press.power; + this.progress = this.press.progress; + this.burnTime = this.press.burnTime; + this.maxBurn = this.press.maxBurn; } - + @Override public void updateProgressBar(int i, int j) { - if(i == 0) - { - nukeBoy.power = j; + if(i == 0) { + press.power = j; } - if(i == 1) - { - nukeBoy.progress = j; + if(i == 1) { + press.progress = j; } - if(i == 2) - { - nukeBoy.burnTime = j; + if(i == 2) { + press.burnTime = j; } - if(i == 3) - { - nukeBoy.maxBurn = j; + if(i == 3) { + press.maxBurn = j; } } } diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineGasFlare.java b/src/main/java/com/hbm/inventory/gui/GUIMachineGasFlare.java index cb4b41e86..06a29102d 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineGasFlare.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineGasFlare.java @@ -3,7 +3,6 @@ package com.hbm.inventory.gui; import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerMachineGasFlare; -import com.hbm.inventory.fluid.FluidType.FluidTrait; import com.hbm.inventory.fluid.types.FluidTypeFlammable; import com.hbm.lib.RefStrings; import com.hbm.packet.NBTControlPacket; @@ -77,10 +76,10 @@ public class GUIMachineGasFlare extends GuiInfoContainer { int j = (int)flare.getPowerScaled(52); drawTexturedModalRect(guiLeft + 143, guiTop + 69 - j, 176, 94 - j, 16, j); - if(flare.isOn) drawTexturedModalRect(guiLeft + 79, guiTop + 16, 176, 0, 35, 10); - if(flare.doesBurn) drawTexturedModalRect(guiLeft + 79, guiTop + 50, 176, 10, 35, 14); + if(flare.isOn) drawTexturedModalRect(guiLeft + 79, guiTop + 15, 176, 0, 35, 10); + if(flare.doesBurn) drawTexturedModalRect(guiLeft + 79, guiTop + 49, 176, 10, 35, 14); - if(flare.isOn && flare.doesBurn && flare.tank.getFill() > 0 && flare.tank.getTankType().traits.contains(FluidTrait.GASEOUS) && flare.tank.getTankType() instanceof FluidTypeFlammable) + if(flare.isOn && flare.doesBurn && flare.tank.getFill() > 0 && flare.tank.getTankType() instanceof FluidTypeFlammable) drawTexturedModalRect(guiLeft + 88, guiTop + 29, 176, 24, 18, 18); flare.tank.renderTank(guiLeft + 35, guiTop + 69, this.zLevel, 16, 52); diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java index faae99cec..5270cbf16 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java @@ -286,7 +286,7 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModBlocks.machine_shredder, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 2), new OreDictStack(STEEL.plate(), 4), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.wire_red_copper, 2), new ComparableStack(ModBlocks.steel_beam, 2), new ComparableStack(Blocks.iron_bars, 2), new ComparableStack(ModBlocks.red_wire_coated, 1), },200); makeRecipe(new ComparableStack(ModBlocks.machine_well, 1), new AStack[] {new ComparableStack(ModBlocks.steel_scaffold, 20), new ComparableStack(ModBlocks.steel_beam, 8), new ComparableStack(ModItems.tank_steel, 2), new ComparableStack(ModItems.motor, 1), new ComparableStack(ModItems.pipes_steel, 3), new ComparableStack(ModItems.drill_titanium, 1), new ComparableStack(ModItems.wire_red_copper, 6), },250); makeRecipe(new ComparableStack(ModBlocks.machine_pumpjack, 1), new AStack[] {new ComparableStack(ModBlocks.steel_scaffold, 8), new OreDictStack(STEEL.block(), 8), new ComparableStack(ModItems.pipes_steel, 4), new ComparableStack(ModItems.tank_steel, 4), new OreDictStack(STEEL.ingot(), 24), new OreDictStack(STEEL.plate(), 16), new OreDictStack(AL.plate(), 6), new ComparableStack(ModItems.drill_titanium, 1), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.wire_red_copper, 8), },400); - makeRecipe(new ComparableStack(ModBlocks.machine_flare, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 8), new OreDictStack(CU.plate(), 4), new ComparableStack(ModItems.tank_steel, 1), new ComparableStack(ModBlocks.deco_pipe_quad, 8), new ComparableStack(ModItems.hull_small_steel, 4), new ComparableStack(ModItems.thermo_element, 3), },200); + makeRecipe(new ComparableStack(ModBlocks.machine_flare, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 12), new OreDictStack(IRON.ingot(), 12), new OreDictStack(CU.plate(), 4), new ComparableStack(ModItems.tank_steel, 1), new ComparableStack(ModBlocks.deco_pipe_quad, 8), new ComparableStack(ModItems.hull_small_steel, 4), new ComparableStack(ModItems.thermo_element, 3), },200); makeRecipe(new ComparableStack(ModBlocks.machine_refinery, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 16), new OreDictStack(STEEL.plate(), 20), new OreDictStack(CU.plate(), 16), new ComparableStack(ModItems.hull_big_steel, 6), new ComparableStack(ModItems.pipes_steel, 2), new ComparableStack(ModItems.coil_tungsten, 8), new ComparableStack(ModItems.wire_red_copper, 8), new ComparableStack(ModItems.circuit_copper, 2), new ComparableStack(ModItems.circuit_red_copper, 1), new ComparableStack(ModItems.plate_polymer, 8), },350); makeRecipe(new ComparableStack(ModBlocks.machine_epress, 1), new AStack[] {new OreDictStack(STEEL.plate(), 8), new ComparableStack(ModItems.plate_polymer, 4), new ComparableStack(ModItems.pipes_steel, 1), new ComparableStack(ModItems.bolt_tungsten, 4), new ComparableStack(ModItems.coil_copper, 2), new ComparableStack(ModItems.motor, 1), new ComparableStack(ModItems.circuit_copper, 1), new ComparableStack(ModItems.canister_full, 1, Fluids.LUBRICANT.getID()), },160); makeRecipe(new ComparableStack(ModBlocks.machine_chemplant, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 8), new OreDictStack(CU.plate(), 6), new ComparableStack(ModItems.tank_steel, 4), new ComparableStack(ModItems.hull_big_steel, 1), new ComparableStack(ModItems.coil_tungsten, 3), new ComparableStack(ModItems.circuit_copper, 2), new ComparableStack(ModItems.circuit_red_copper, 1), new ComparableStack(ModItems.plate_polymer, 8), },200); diff --git a/src/main/java/com/hbm/items/machine/ItemMachineUpgrade.java b/src/main/java/com/hbm/items/machine/ItemMachineUpgrade.java index 4bdb8a572..ca54f93d1 100644 --- a/src/main/java/com/hbm/items/machine/ItemMachineUpgrade.java +++ b/src/main/java/com/hbm/items/machine/ItemMachineUpgrade.java @@ -47,6 +47,8 @@ public class ItemMachineUpgrade extends Item { list.add("Delay -" + (20 * this.tier) + "% / Consumption +" + (1000 * this.tier) + "HE/t"); list.add(EnumChatFormatting.RED + "Cyclotron:"); list.add("Speed x" + (1 + this.tier)); + list.add(EnumChatFormatting.RED + "Flare Stack:"); + list.add("Speed x" + (1 + this.tier)); list.add(EnumChatFormatting.RED + "Maxwell:"); list.add("Damage +" + (0.25 * (double)this.tier) + "dmg/t"); } @@ -58,6 +60,8 @@ public class ItemMachineUpgrade extends Item { list.add("+" + (5 * this.tier) + "% chance of not consuming an item / Acid consumption +" + (1000 * this.tier) + "mB"); list.add(EnumChatFormatting.RED + "Cyclotron:"); list.add("-" + (100 - 100 / (this.tier + 1)) + "% chance of incrementing overheat counter"); + list.add(EnumChatFormatting.RED + "Flare Stack:"); + list.add("+" + (100 * this.tier / 3) + "% power production"); list.add(EnumChatFormatting.RED + "Maxwell:"); list.add("Range +" + (3 * this.tier) + "m"); } diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineGasFlare.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineGasFlare.java index 705cca046..1d8b0c05a 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineGasFlare.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineGasFlare.java @@ -7,10 +7,12 @@ import com.hbm.interfaces.IControlReceiver; import com.hbm.interfaces.IFluidAcceptor; import com.hbm.interfaces.IFluidContainer; import com.hbm.inventory.FluidTank; +import com.hbm.inventory.UpgradeManager; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.FluidType.FluidTrait; import com.hbm.inventory.fluid.types.FluidTypeFlammable; +import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import com.hbm.lib.Library; import com.hbm.main.MainRegistry; import com.hbm.tileentity.TileEntityMachineBase; @@ -35,7 +37,7 @@ public class TileEntityMachineGasFlare extends TileEntityMachineBase implements public boolean doesBurn = false; public TileEntityMachineGasFlare() { - super(4); + super(6); tank = new FluidTank(Fluids.GAS, 64000, 0); } @@ -102,6 +104,13 @@ public class TileEntityMachineGasFlare extends TileEntityMachineBase implements if(isOn && tank.getFill() > 0) { + UpgradeManager.eval(slots, 4, 5); + int burn = Math.min(UpgradeManager.getLevel(UpgradeType.SPEED), 3); + int yield = Math.min(UpgradeManager.getLevel(UpgradeType.EFFECT), 3); + + maxVent += maxVent * burn; + maxBurn += maxBurn * burn; + if(!doesBurn || !(tank.getTankType() instanceof FluidTypeFlammable)) { if(tank.getTankType().traits.contains(FluidTrait.GASEOUS)) { @@ -114,10 +123,19 @@ public class TileEntityMachineGasFlare extends TileEntityMachineBase implements } } else { - if(tank.getTankType().traits.contains(FluidTrait.GASEOUS) && tank.getTankType() instanceof FluidTypeFlammable) { + if(tank.getTankType() instanceof FluidTypeFlammable) { int eject = Math.min(maxBurn, tank.getFill()); tank.setFill(tank.getFill() - eject); - power += ((FluidTypeFlammable) tank.getTankType()).getHeatEnergy() * eject / 2_000; // divided by 1000 per mB and 2 for the 50% penalty + + int penalty = 2; + if(!tank.getTankType().traits.contains(FluidTrait.GASEOUS)) + penalty = 10; + + long powerProd = ((FluidTypeFlammable) tank.getTankType()).getHeatEnergy() * eject / 1_000; // divided by 1000 per mB + powerProd /= penalty; + powerProd += powerProd * yield / 3; + + power += powerProd; if(power > maxPower) power = maxPower; @@ -147,9 +165,9 @@ public class TileEntityMachineGasFlare extends TileEntityMachineBase implements } else { - if(isOn && tank.getFill() > 0 && tank.getTankType().traits.contains(FluidTrait.GASEOUS)) { + if(isOn && tank.getFill() > 0) { - if(!doesBurn || !(tank.getTankType() instanceof FluidTypeFlammable)) { + if((!doesBurn || !(tank.getTankType() instanceof FluidTypeFlammable)) && tank.getTankType().traits.contains(FluidTrait.GASEOUS)) { NBTTagCompound data = new NBTTagCompound(); data.setString("type", "tower"); diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 68bcb559f..b8158bc32 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -413,7 +413,7 @@ container.frackingTower=Hydraulic Fracking Tower container.fusionMultiblock=Big Fusion Reactor container.fusionaryWatzPlant=Fusionary Watz Plant container.gasCentrifuge=Gas Centrifuge -container.gasFlare=Gas Flare +container.gasFlare=Flare Stack container.generator=Nuclear Reactor container.hadron=Particle Accelerator container.iGenerator=Industrial Generator @@ -3728,7 +3728,7 @@ tile.machine_electric_furnace_on.name=Electric Furnace tile.machine_epress.name=Electric Press tile.machine_fel.name=FEL tile.machine_fensu.name=FEnSU -tile.machine_flare.name=Gas Flare +tile.machine_flare.name=Flare Stack tile.machine_fluidtank.name=Tank tile.machine_forcefield.name=Forcefield Emitter tile.machine_fraction_tower.name=Fractioning Tower From c28d268a5760e79ca28f8ca053a0cc13a15e105e Mon Sep 17 00:00:00 2001 From: Boblet Date: Wed, 18 May 2022 16:27:38 +0200 Subject: [PATCH 12/80] assemfac functionality --- .../TileEntityMachineAssemblerBase.java | 120 ++++++++++++++++++ .../machine/TileEntityMachineAssemfac.java | 13 +- .../TileEntityMachineChemplantBase.java | 1 + 3 files changed, 130 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemblerBase.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemblerBase.java index 3acb50d98..f01478ca2 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemblerBase.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemblerBase.java @@ -1,8 +1,16 @@ package com.hbm.tileentity.machine; +import java.util.List; + +import com.hbm.inventory.RecipesCommon.AStack; +import com.hbm.inventory.recipes.AssemblerRecipes; +import com.hbm.items.ModItems; +import com.hbm.lib.Library; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.InventoryUtil; import api.hbm.energy.IEnergyUser; +import net.minecraft.item.ItemStack; import net.minecraft.util.ChunkCoordinates; public abstract class TileEntityMachineAssemblerBase extends TileEntityMachineBase implements IEnergyUser { @@ -11,6 +19,9 @@ public abstract class TileEntityMachineAssemblerBase extends TileEntityMachineBa public int[] progress; public int[] maxProgress; public boolean isProgressing; + + int consumption = 100; + int speed = 100; public TileEntityMachineAssemblerBase(int scount) { super(scount); @@ -21,6 +32,115 @@ public abstract class TileEntityMachineAssemblerBase extends TileEntityMachineBa maxProgress = new int[count]; } + @Override + public void updateEntity() { + + if(!worldObj.isRemote) { + + int count = this.getRecipeCount(); + + this.isProgressing = false; + this.power = Library.chargeTEFromItems(slots, 0, power, this.getMaxPower()); + + for(int i = 0; i < count; i++) { + //loadItems(i); + //unloadItems(i); + } + + if(worldObj.getTotalWorldTime() % 10 == 0) { + + /*for(FluidTank tank : this.outTanks()) { + if(tank.getTankType() != Fluids.NONE && tank.getFill() > 0) { + this.fillFluidInit(tank.getTankType()); + } + }*/ + } + + + for(int i = 0; i < count; i++) { + if(!canProcess(i)) { + this.progress[i] = 0; + } else { + isProgressing = true; + process(i); + } + } + } + } + + protected boolean canProcess(int index) { + + int template = getTemplateIndex(index); + + if(slots[template] == null || slots[template].getItem() != ModItems.assembly_template) + return false; + + List recipe = AssemblerRecipes.getRecipeFromTempate(slots[template]); + ItemStack output = AssemblerRecipes.getOutputFromTempate(slots[template]); + + if(recipe == null) + return false; + + if(this.power < this.consumption) return false; + if(!hasRequiredItems(recipe, index)) return false; + if(!hasSpaceForItems(output, index)) return false; + + return true; + } + + private boolean hasRequiredItems(List recipe, int index) { + int[] indices = getSlotIndicesFromIndex(index); + return InventoryUtil.doesArrayHaveIngredients(slots, indices[0], indices[1], recipe.toArray(new AStack[0])); + } + + private boolean hasSpaceForItems(ItemStack recipe, int index) { + int[] indices = getSlotIndicesFromIndex(index); + return InventoryUtil.doesArrayHaveSpace(slots, indices[2], indices[2], new ItemStack[] { recipe }); + } + + protected void process(int index) { + + this.power -= this.consumption; + this.progress[index]++; + + if(slots[0] != null && slots[0].getItem() == ModItems.meteorite_sword_alloyed) + slots[0] = new ItemStack(ModItems.meteorite_sword_machined); //fisfndmoivndlmgindgifgjfdnblfm + + int template = getTemplateIndex(index); + + List recipe = AssemblerRecipes.getRecipeFromTempate(slots[template]); + ItemStack output = AssemblerRecipes.getOutputFromTempate(slots[template]); + int time = AssemblerRecipes.time.get(output); + + this.maxProgress[index] = time * this.speed / 100; + + if(this.progress[index] >= this.maxProgress[index]) { + consumeItems(recipe, index); + produceItems(output, index); + this.progress[index] = 0; + this.markDirty(); + } + } + + private void consumeItems(List recipe, int index) { + + int[] indices = getSlotIndicesFromIndex(index); + + for(AStack in : recipe) { + if(in != null) + InventoryUtil.tryConsumeAStack(slots, indices[0], indices[1], in); + } + } + + private void produceItems(ItemStack out, int index) { + + int[] indices = getSlotIndicesFromIndex(index); + + if(out != null) { + InventoryUtil.tryAddItemToInventory(slots, indices[2], indices[2], out.copy()); + } + } + public abstract int getRecipeCount(); public abstract int getTemplateIndex(int index); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemfac.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemfac.java index 3dc7f7122..44edf3006 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemfac.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemfac.java @@ -3,7 +3,6 @@ package com.hbm.tileentity.machine; import java.util.Random; import com.hbm.blocks.BlockDummyable; -import com.hbm.tileentity.TileEntityMachineBase; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -30,10 +29,16 @@ public class TileEntityMachineAssemfac extends TileEntityMachineAssemblerBase { @Override public void updateEntity() { + super.updateEntity(); - if(worldObj.isRemote) { - for(AssemblerArm arm : arms) { - arm.updateArm(); + if(!worldObj.isRemote) { + + } else { + + if(isProgressing) { + for(AssemblerArm arm : arms) { + arm.updateArm(); + } } } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplantBase.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplantBase.java index 30cb133ea..bb9b848df 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplantBase.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplantBase.java @@ -197,6 +197,7 @@ public abstract class TileEntityMachineChemplantBase extends TileEntityMachineBa InventoryUtil.tryAddItemToInventory(slots, indices[2], indices[3], out.copy()); } } + private void loadItems(int index) { int template = getTemplateIndex(index); From a68cad770431912e3f92cc3f270a9c49901f1e60 Mon Sep 17 00:00:00 2001 From: Bob Date: Wed, 18 May 2022 21:59:13 +0200 Subject: [PATCH 13/80] even more assemfac stuff --- .../com/hbm/inventory/gui/GUIAssemfac.java | 28 ++++++++ .../TileEntityMachineAssemblerBase.java | 13 +++- .../machine/TileEntityMachineAssemfac.java | 68 +++++++++++++++---- 3 files changed, 93 insertions(+), 16 deletions(-) diff --git a/src/main/java/com/hbm/inventory/gui/GUIAssemfac.java b/src/main/java/com/hbm/inventory/gui/GUIAssemfac.java index 880df1bd1..d9b3378ec 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIAssemfac.java +++ b/src/main/java/com/hbm/inventory/gui/GUIAssemfac.java @@ -15,6 +15,7 @@ import net.minecraft.util.ResourceLocation; public class GUIAssemfac extends GuiInfoContainer { private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/processing/gui_assemfac.png"); + private static ResourceLocation chemfac = new ResourceLocation(RefStrings.MODID + ":textures/gui/processing/gui_chemfac.png"); private TileEntityMachineAssemfac assemfac; public GUIAssemfac(InventoryPlayer invPlayer, TileEntityMachineAssemfac tedf) { @@ -28,6 +29,25 @@ public class GUIAssemfac extends GuiInfoContainer { @Override public void drawScreen(int mouseX, int mouseY, float f) { super.drawScreen(mouseX, mouseY, f); + + for(int i = 0; i < 8; i++) { + + if(assemfac.maxProgress[i] > 0) { + int progress = assemfac.progress[i] * 16 / assemfac.maxProgress[i]; + + if(progress > 0) { + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glDisable(GL11.GL_DEPTH_TEST); + int x = guiLeft + 234; + int y = guiTop + 13 + 16 * i; + GL11.glColorMask(true, true, true, false); + this.drawGradientRect(x, y, x + progress + 1, y + 16, -2130706433, -2130706433); + GL11.glColorMask(true, true, true, true); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glEnable(GL11.GL_DEPTH_TEST); + } + } + } } @Override @@ -39,6 +59,14 @@ public class GUIAssemfac extends GuiInfoContainer { Minecraft.getMinecraft().getTextureManager().bindTexture(texture); drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + Minecraft.getMinecraft().getTextureManager().bindTexture(chemfac); + + int p = (int) (assemfac.power * 52 / assemfac.getMaxPower()); + drawTexturedModalRect(guiLeft + 234, guiTop + 216 - p, 0, 219 - p, 16, p); + + if(assemfac.power > 0) + drawTexturedModalRect(guiLeft + 238, guiTop + 150, 0, 219, 9, 12); + if(Keyboard.isKeyDown(Keyboard.KEY_LMENU)) for(int i = 0; i < this.inventorySlots.inventorySlots.size(); i++) { Slot s = this.inventorySlots.getSlot(i); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemblerBase.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemblerBase.java index f01478ca2..c5202602a 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemblerBase.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemblerBase.java @@ -5,6 +5,7 @@ import java.util.List; import com.hbm.inventory.RecipesCommon.AStack; import com.hbm.inventory.recipes.AssemblerRecipes; import com.hbm.items.ModItems; +import com.hbm.items.machine.ItemAssemblyTemplate; import com.hbm.lib.Library; import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.util.InventoryUtil; @@ -110,7 +111,7 @@ public abstract class TileEntityMachineAssemblerBase extends TileEntityMachineBa List recipe = AssemblerRecipes.getRecipeFromTempate(slots[template]); ItemStack output = AssemblerRecipes.getOutputFromTempate(slots[template]); - int time = AssemblerRecipes.time.get(output); + int time = ItemAssemblyTemplate.getProcessTime(slots[template]); this.maxProgress[index] = time * this.speed / 100; @@ -141,6 +142,16 @@ public abstract class TileEntityMachineAssemblerBase extends TileEntityMachineBa } } + @Override + public long getPower() { + return this.power; + } + + @Override + public void setPower(long power) { + this.power = power; + } + public abstract int getRecipeCount(); public abstract int getTemplateIndex(int index); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemfac.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemfac.java index 44edf3006..8b3b7c981 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemfac.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemfac.java @@ -3,9 +3,14 @@ package com.hbm.tileentity.machine; import java.util.Random; import com.hbm.blocks.BlockDummyable; +import com.hbm.inventory.FluidTank; +import com.hbm.inventory.UpgradeManager; +import com.hbm.inventory.fluid.Fluids; +import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.ChunkCoordinates; import net.minecraftforge.common.util.ForgeDirection; @@ -14,12 +19,19 @@ public class TileEntityMachineAssemfac extends TileEntityMachineAssemblerBase { public AssemblerArm[] arms; + public FluidTank water; + public FluidTank steam; + public TileEntityMachineAssemfac() { super(14 * 8 + 4 + 1); //8 assembler groups with 14 slots, 4 upgrade slots, 1 battery slot + arms = new AssemblerArm[6]; for(int i = 0; i < arms.length; i++) { arms[i] = new AssemblerArm(i % 3 == 1 ? 1 : 0); //the second of every group of three becomes a welder } + + water = new FluidTank(Fluids.WATER, 64_000, 0); + steam = new FluidTank(Fluids.SPENTSTEAM, 64_000, 1); } @Override @@ -33,15 +45,54 @@ public class TileEntityMachineAssemfac extends TileEntityMachineAssemblerBase { if(!worldObj.isRemote) { + this.speed = 100; + this.consumption = 100; + + UpgradeManager.eval(slots, 1, 4); + + int speedLevel = Math.min(UpgradeManager.getLevel(UpgradeType.SPEED), 6); + int powerLevel = Math.min(UpgradeManager.getLevel(UpgradeType.POWER), 3); + int overLevel = UpgradeManager.getLevel(UpgradeType.OVERDRIVE); + + this.speed -= speedLevel * 15; + this.consumption += speedLevel * 300; + this.speed += powerLevel * 5; + this.consumption -= powerLevel * 30; + this.speed /= (overLevel + 1); + this.consumption *= (overLevel + 1); + + NBTTagCompound data = new NBTTagCompound(); + data.setLong("power", this.power); + data.setIntArray("progress", this.progress); + data.setIntArray("maxProgress", this.maxProgress); + data.setBoolean("isProgressing", isProgressing); + + water.writeToNBT(data, "w"); + steam.writeToNBT(data, "s"); + + this.networkPack(data, 150); + } else { - if(isProgressing) { - for(AssemblerArm arm : arms) { + for(AssemblerArm arm : arms) { + arm.updateInterp(); + if(isProgressing) { arm.updateArm(); } } } } + + @Override + public void networkUnpack(NBTTagCompound nbt) { + this.power = nbt.getLong("power"); + this.progress = nbt.getIntArray("progress"); + this.maxProgress = nbt.getIntArray("maxProgress"); + this.isProgressing = nbt.getBoolean("isProgressing"); + + water.readFromNBT(nbt, "w"); + steam.readFromNBT(nbt, "s"); + } public static class AssemblerArm { public double[] angles = new double[4]; @@ -76,7 +127,6 @@ public class TileEntityMachineAssemfac extends TileEntityMachineAssemblerBase { } public void updateArm() { - updateInterp(); if(actionDelay > 0) { actionDelay--; @@ -214,18 +264,6 @@ public class TileEntityMachineAssemfac extends TileEntityMachineAssemblerBase { return 65536.0D; } - @Override - public void setPower(long power) { - // TODO Auto-generated method stub - - } - - @Override - public long getPower() { - // TODO Auto-generated method stub - return 0; - } - @Override public long getMaxPower() { return 10_000_000; From c57031c5f0a9d41a4d95d8d421090d6c629ccfbe Mon Sep 17 00:00:00 2001 From: Bob Date: Thu, 19 May 2022 22:46:17 +0200 Subject: [PATCH 14/80] nicer debug particles, a bit of assemfac stuff, cart fixes --- .../java/api/hbm/energy/IEnergyConnector.java | 16 ++-- src/main/java/api/hbm/energy/IEnergyUser.java | 12 ++- .../java/api/hbm/fluid/IFluidConnector.java | 15 +++- src/main/java/api/hbm/fluid/IFluidUser.java | 13 +++- .../hbm/entity/cart/EntityMinecartCrate.java | 8 +- .../entity/cart/EntityMinecartDestroyer.java | 7 +- .../hbm/entity/cart/EntityMinecartOre.java | 8 +- .../com/hbm/inventory/gui/GUIAssemfac.java | 3 + .../items/machine/ItemAssemblyTemplate.java | 3 +- src/main/java/com/hbm/main/ClientProxy.java | 16 ++++ .../java/com/hbm/particle/ParticleDebug.java | 73 +++++++++++++++++++ .../machine/TileEntityDeuteriumTower.java | 26 ++----- .../machine/TileEntityMachineAssemfac.java | 42 ++++++++++- .../machine/TileEntityMachineChemfac.java | 8 +- .../storage/TileEntityMachineBAT9000.java | 8 +- 15 files changed, 204 insertions(+), 54 deletions(-) create mode 100644 src/main/java/com/hbm/particle/ParticleDebug.java diff --git a/src/main/java/api/hbm/energy/IEnergyConnector.java b/src/main/java/api/hbm/energy/IEnergyConnector.java index 663ed8c7b..d32fc22e7 100644 --- a/src/main/java/api/hbm/energy/IEnergyConnector.java +++ b/src/main/java/api/hbm/energy/IEnergyConnector.java @@ -74,11 +74,17 @@ public interface IEnergyConnector extends ILoadedTile { red = true; } - if(particleDebug) { + if(particleDebug) {// NBTTagCompound data = new NBTTagCompound(); - data.setString("type", "vanillaExt"); - data.setString("mode", red ? "reddust" : "bluedust"); - PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, x + world.rand.nextDouble(), y + world.rand.nextDouble(), z + world.rand.nextDouble()), new TargetPoint(world.provider.dimensionId, x + 0.5, y + 0.5, z + 0.5, 25)); + data.setString("type", "network"); + data.setString("mode", "power"); + double posX = x + 0.5 + dir.offsetX * 0.5 + world.rand.nextDouble() * 0.5 - 0.25; + double posY = y + 0.5 + dir.offsetY * 0.5 + world.rand.nextDouble() * 0.5 - 0.25; + double posZ = z + 0.5 + dir.offsetZ * 0.5 + world.rand.nextDouble() * 0.5 - 0.25; + data.setDouble("mX", -dir.offsetX * (red ? 0.025 : 0.1)); + data.setDouble("mY", -dir.offsetY * (red ? 0.025 : 0.1)); + data.setDouble("mZ", -dir.offsetZ * (red ? 0.025 : 0.1)); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, posX, posY, posZ), new TargetPoint(world.provider.dimensionId, posX, posY, posZ, 25)); } } @@ -94,7 +100,7 @@ public interface IEnergyConnector extends ILoadedTile { } } - public static final boolean particleDebug = false; + public static final boolean particleDebug = true; public default Vec3 getDebugParticlePos() { TileEntity te = (TileEntity) this; diff --git a/src/main/java/api/hbm/energy/IEnergyUser.java b/src/main/java/api/hbm/energy/IEnergyUser.java index 601730d3e..002dca53f 100644 --- a/src/main/java/api/hbm/energy/IEnergyUser.java +++ b/src/main/java/api/hbm/energy/IEnergyUser.java @@ -87,9 +87,15 @@ public interface IEnergyUser extends IEnergyConnector { if(particleDebug) { NBTTagCompound data = new NBTTagCompound(); - data.setString("type", "vanillaExt"); - data.setString("mode", red ? "reddust" : "greendust"); - PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, x + world.rand.nextDouble(), y + world.rand.nextDouble(), z + world.rand.nextDouble()), new TargetPoint(world.provider.dimensionId, x + 0.5, y + 0.5, z + 0.5, 25)); + data.setString("type", "network"); + data.setString("mode", "power"); + double posX = x + 0.5 - dir.offsetX * 0.5 + world.rand.nextDouble() * 0.5 - 0.25; + double posY = y + 0.5 - dir.offsetY * 0.5 + world.rand.nextDouble() * 0.5 - 0.25; + double posZ = z + 0.5 - dir.offsetZ * 0.5 + world.rand.nextDouble() * 0.5 - 0.25; + data.setDouble("mX", dir.offsetX * (red ? 0.025 : 0.1)); + data.setDouble("mY", dir.offsetY * (red ? 0.025 : 0.1)); + data.setDouble("mZ", dir.offsetZ * (red ? 0.025 : 0.1)); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, posX, posY, posZ), new TargetPoint(world.provider.dimensionId, posX, posY, posZ, 25)); } } diff --git a/src/main/java/api/hbm/fluid/IFluidConnector.java b/src/main/java/api/hbm/fluid/IFluidConnector.java index 9ec663305..f5b728959 100644 --- a/src/main/java/api/hbm/fluid/IFluidConnector.java +++ b/src/main/java/api/hbm/fluid/IFluidConnector.java @@ -62,9 +62,16 @@ public interface IFluidConnector { if(particleDebug) { NBTTagCompound data = new NBTTagCompound(); - data.setString("type", "vanillaExt"); - data.setString("mode", red ? "reddust" : "bluedust"); - PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, x + world.rand.nextDouble(), y + world.rand.nextDouble(), z + world.rand.nextDouble()), new TargetPoint(world.provider.dimensionId, x + 0.5, y + 0.5, z + 0.5, 25)); + data.setString("type", "network"); + data.setString("mode", "fluid"); + data.setInteger("color", type.getColor()); + double posX = x + 0.5 + dir.offsetX * 0.5 + world.rand.nextDouble() * 0.5 - 0.25; + double posY = y + 0.5 + dir.offsetY * 0.5 + world.rand.nextDouble() * 0.5 - 0.25; + double posZ = z + 0.5 + dir.offsetZ * 0.5 + world.rand.nextDouble() * 0.5 - 0.25; + data.setDouble("mX", -dir.offsetX * (red ? 0.025 : 0.1)); + data.setDouble("mY", -dir.offsetY * (red ? 0.025 : 0.1)); + data.setDouble("mZ", -dir.offsetZ * (red ? 0.025 : 0.1)); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, posX, posY, posZ), new TargetPoint(world.provider.dimensionId, posX, posY, posZ, 25)); } } @@ -80,5 +87,5 @@ public interface IFluidConnector { } } - public static final boolean particleDebug = false; + public static final boolean particleDebug = true; } diff --git a/src/main/java/api/hbm/fluid/IFluidUser.java b/src/main/java/api/hbm/fluid/IFluidUser.java index 402b8ceb4..92c86e7c6 100644 --- a/src/main/java/api/hbm/fluid/IFluidUser.java +++ b/src/main/java/api/hbm/fluid/IFluidUser.java @@ -48,9 +48,16 @@ public interface IFluidUser extends IFluidConnector { if(particleDebug) { NBTTagCompound data = new NBTTagCompound(); - data.setString("type", "vanillaExt"); - data.setString("mode", red ? "reddust" : "greendust"); - PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, x + world.rand.nextDouble(), y + world.rand.nextDouble(), z + world.rand.nextDouble()), new TargetPoint(world.provider.dimensionId, x + 0.5, y + 0.5, z + 0.5, 25)); + data.setString("type", "network"); + data.setString("mode", "fluid"); + data.setInteger("color", type.getColor()); + double posX = x + 0.5 - dir.offsetX * 0.5 + world.rand.nextDouble() * 0.5 - 0.25; + double posY = y + 0.5 - dir.offsetY * 0.5 + world.rand.nextDouble() * 0.5 - 0.25; + double posZ = z + 0.5 - dir.offsetZ * 0.5 + world.rand.nextDouble() * 0.5 - 0.25; + data.setDouble("mX", dir.offsetX * (red ? 0.025 : 0.1)); + data.setDouble("mY", dir.offsetY * (red ? 0.025 : 0.1)); + data.setDouble("mZ", dir.offsetZ * (red ? 0.025 : 0.1)); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, posX, posY, posZ), new TargetPoint(world.provider.dimensionId, posX, posY, posZ, 25)); } } diff --git a/src/main/java/com/hbm/entity/cart/EntityMinecartCrate.java b/src/main/java/com/hbm/entity/cart/EntityMinecartCrate.java index 78c19770f..baa4cced9 100644 --- a/src/main/java/com/hbm/entity/cart/EntityMinecartCrate.java +++ b/src/main/java/com/hbm/entity/cart/EntityMinecartCrate.java @@ -1,11 +1,11 @@ package com.hbm.entity.cart; import com.hbm.blocks.ModBlocks; -import com.hbm.inventory.OreDictManager.DictFrame; import com.hbm.items.ModItems; +import com.hbm.items.tool.ItemModMinecart; +import com.hbm.items.tool.ItemModMinecart.EnumCartBase; import com.hbm.items.tool.ItemModMinecart.EnumMinecart; import com.hbm.main.MainRegistry; -import com.hbm.tileentity.machine.TileEntityLockableBase; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import net.minecraft.block.Block; @@ -54,7 +54,7 @@ public class EntityMinecartCrate extends EntityMinecartContainerBase { @Override public void killMinecart(DamageSource p_94095_1_) { this.setDead(); - ItemStack itemstack = DictFrame.fromOne(ModItems.cart, EnumMinecart.CRATE); + ItemStack itemstack = ItemModMinecart.createCartItem(EnumCartBase.VANILLA, EnumMinecart.CRATE); NBTTagCompound nbt = new NBTTagCompound(); @@ -82,6 +82,6 @@ public class EntityMinecartCrate extends EntityMinecartContainerBase { @Override public ItemStack getCartItem() { - return DictFrame.fromOne(ModItems.cart, EnumMinecart.CRATE); + return ItemModMinecart.createCartItem(EnumCartBase.VANILLA, EnumMinecart.CRATE); } } diff --git a/src/main/java/com/hbm/entity/cart/EntityMinecartDestroyer.java b/src/main/java/com/hbm/entity/cart/EntityMinecartDestroyer.java index 81e01ecbc..dedf4673d 100644 --- a/src/main/java/com/hbm/entity/cart/EntityMinecartDestroyer.java +++ b/src/main/java/com/hbm/entity/cart/EntityMinecartDestroyer.java @@ -3,8 +3,9 @@ package com.hbm.entity.cart; import java.util.List; import com.hbm.blocks.ModBlocks; -import com.hbm.inventory.OreDictManager.DictFrame; import com.hbm.items.ModItems; +import com.hbm.items.tool.ItemModMinecart; +import com.hbm.items.tool.ItemModMinecart.EnumCartBase; import com.hbm.items.tool.ItemModMinecart.EnumMinecart; import com.hbm.main.MainRegistry; @@ -123,7 +124,7 @@ public class EntityMinecartDestroyer extends EntityMinecartContainerBase { @Override public void killMinecart(DamageSource p_94095_1_) { this.setDead(); - ItemStack itemstack = DictFrame.fromOne(ModItems.cart, EnumMinecart.DESTROYER); + ItemStack itemstack = ItemModMinecart.createCartItem(EnumCartBase.STEEL, EnumMinecart.DESTROYER); if(this.func_95999_t() != null) { itemstack.setStackDisplayName(this.func_95999_t()); @@ -134,6 +135,6 @@ public class EntityMinecartDestroyer extends EntityMinecartContainerBase { @Override public ItemStack getCartItem() { - return DictFrame.fromOne(ModItems.cart, EnumMinecart.DESTROYER); + return ItemModMinecart.createCartItem(EnumCartBase.STEEL, EnumMinecart.DESTROYER); } } diff --git a/src/main/java/com/hbm/entity/cart/EntityMinecartOre.java b/src/main/java/com/hbm/entity/cart/EntityMinecartOre.java index c45c67367..d9dcc0ec0 100644 --- a/src/main/java/com/hbm/entity/cart/EntityMinecartOre.java +++ b/src/main/java/com/hbm/entity/cart/EntityMinecartOre.java @@ -1,7 +1,7 @@ package com.hbm.entity.cart; -import com.hbm.inventory.OreDictManager.DictFrame; -import com.hbm.items.ModItems; +import com.hbm.items.tool.ItemModMinecart; +import com.hbm.items.tool.ItemModMinecart.EnumCartBase; import com.hbm.items.tool.ItemModMinecart.EnumMinecart; import net.minecraft.entity.Entity; @@ -44,7 +44,7 @@ public class EntityMinecartOre extends EntityMinecart { @Override public void killMinecart(DamageSource p_94095_1_) { this.setDead(); - ItemStack itemstack = DictFrame.fromOne(ModItems.cart, EnumMinecart.EMPTY); + ItemStack itemstack = ItemModMinecart.createCartItem(EnumCartBase.STEEL, EnumMinecart.EMPTY); if(this.func_95999_t() != null) { itemstack.setStackDisplayName(this.func_95999_t()); @@ -55,6 +55,6 @@ public class EntityMinecartOre extends EntityMinecart { @Override public ItemStack getCartItem() { - return DictFrame.fromOne(ModItems.cart, EnumMinecart.EMPTY); + return ItemModMinecart.createCartItem(EnumCartBase.STEEL, EnumMinecart.EMPTY); } } diff --git a/src/main/java/com/hbm/inventory/gui/GUIAssemfac.java b/src/main/java/com/hbm/inventory/gui/GUIAssemfac.java index d9b3378ec..b934da0ef 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIAssemfac.java +++ b/src/main/java/com/hbm/inventory/gui/GUIAssemfac.java @@ -66,6 +66,9 @@ public class GUIAssemfac extends GuiInfoContainer { if(assemfac.power > 0) drawTexturedModalRect(guiLeft + 238, guiTop + 150, 0, 219, 9, 12); + + assemfac.water.renderTank(guiLeft + 234, guiTop + 161, this.zLevel, 7, 52); + assemfac.steam.renderTank(guiLeft + 243, guiTop + 161, this.zLevel, 7, 52); if(Keyboard.isKeyDown(Keyboard.KEY_LMENU)) for(int i = 0; i < this.inventorySlots.inventorySlots.size(); i++) { diff --git a/src/main/java/com/hbm/items/machine/ItemAssemblyTemplate.java b/src/main/java/com/hbm/items/machine/ItemAssemblyTemplate.java index f97e53b07..5f6bc340f 100644 --- a/src/main/java/com/hbm/items/machine/ItemAssemblyTemplate.java +++ b/src/main/java/com/hbm/items/machine/ItemAssemblyTemplate.java @@ -114,7 +114,8 @@ public class ItemAssemblyTemplate extends Item { int count = AssemblerRecipes.recipeList.size(); for(int i = 0; i < count; i++) { - list.add(new ItemStack(item, 1, i)); + ComparableStack comp = AssemblerRecipes.recipeList.get(i); + list.add(writeType(new ItemStack(item), comp)); } } diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index 89bfb0072..5d975631f 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -1657,6 +1657,22 @@ public class ClientProxy extends ServerProxy { text.multipleParticleScaleBy(scale); Minecraft.getMinecraft().effectRenderer.addEffect(text); } + + if("network".equals(type)) { + ParticleDebug debug = null; + double mX = data.getDouble("mX"); + double mY = data.getDouble("mY"); + double mZ = data.getDouble("mZ"); + + if("power".equals(data.getString("mode"))) { + debug = new ParticleDebug(man, world, x, y, z, mX, mY, mZ); + } + if("fluid".equals(data.getString("mode"))) { + int color = data.getInteger("color"); + debug = new ParticleDebug(man, world, x, y, z, mX, mY, mZ, color); + } + Minecraft.getMinecraft().effectRenderer.addEffect(debug); + } } private HashMap vanished = new HashMap(); diff --git a/src/main/java/com/hbm/particle/ParticleDebug.java b/src/main/java/com/hbm/particle/ParticleDebug.java new file mode 100644 index 000000000..8eb9cb4ec --- /dev/null +++ b/src/main/java/com/hbm/particle/ParticleDebug.java @@ -0,0 +1,73 @@ +package com.hbm.particle; + +import org.lwjgl.opengl.GL11; + +import com.hbm.lib.RefStrings; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.particle.EntityFX; +import net.minecraft.client.renderer.RenderHelper; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.client.renderer.texture.TextureManager; +import net.minecraft.util.ResourceLocation; +import net.minecraft.world.World; + +@SideOnly(Side.CLIENT) +public class ParticleDebug extends EntityFX { + + private static final ResourceLocation power = new ResourceLocation(RefStrings.MODID + ":textures/particle/debug_power.png"); + private static final ResourceLocation fluid = new ResourceLocation(RefStrings.MODID + ":textures/particle/debug_fluid.png"); + private TextureManager theRenderEngine; + private int type; + + public ParticleDebug(TextureManager texman, World world, double x, double y, double z, double motionX, double motionY, double motionZ) { + super(world, x, y, z); + this.theRenderEngine = texman; + this.particleMaxAge = 10; + this.type = 0; + this.motionX = motionX; + this.motionY = motionY; + this.motionZ = motionZ; + this.noClip = true; + } + + public ParticleDebug(TextureManager texman, World world, double x, double y, double z, double motionX, double motionY, double motionZ, int color) { + this(texman, world, x, y, z, motionX, motionY, motionZ); + this.type = 1; + this.particleRed = ((color & 0xff0000) >> 16) / 255F; + this.particleGreen = ((color & 0x00ff00) >> 8) / 255F; + this.particleBlue = (color & 0x0000ff) / 255F; + } + + public int getFXLayer() { + return 3; + } + + public void renderParticle(Tessellator tess, float interp, float x, float y, float z, float tx, float tz) { + + this.theRenderEngine.bindTexture(type == 0 ? power : fluid); + + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + RenderHelper.disableStandardItemLighting(); + + tess.startDrawingQuads(); + tess.setNormal(0.0F, 1.0F, 0.0F); + tess.setBrightness(240); + + float scale = 0.05F; + tess.setColorRGBA_F(this.particleRed, this.particleGreen, this.particleBlue, this.particleAlpha); + + float pX = (float) (this.prevPosX + (this.posX - this.prevPosX) * (double) interp - interpPosX); + float pY = (float) (this.prevPosY + (this.posY - this.prevPosY) * (double) interp - interpPosY); + float pZ = (float) (this.prevPosZ + (this.posZ - this.prevPosZ) * (double) interp - interpPosZ); + + tess.addVertexWithUV((double) (pX - x * scale - tx * scale), (double) (pY - y * scale), (double) (pZ - z * scale - tz * scale), 1, 1); + tess.addVertexWithUV((double) (pX - x * scale + tx * scale), (double) (pY + y * scale), (double) (pZ - z * scale + tz * scale), 1, 0); + tess.addVertexWithUV((double) (pX + x * scale + tx * scale), (double) (pY + y * scale), (double) (pZ + z * scale + tz * scale), 0, 0); + tess.addVertexWithUV((double) (pX + x * scale - tx * scale), (double) (pY - y * scale), (double) (pZ + z * scale - tz * scale), 0, 1); + tess.draw(); + + GL11.glPolygonOffset(0.0F, 0.0F); + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityDeuteriumTower.java b/src/main/java/com/hbm/tileentity/machine/TileEntityDeuteriumTower.java index 68c6dab6d..aaba4b26d 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityDeuteriumTower.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityDeuteriumTower.java @@ -95,28 +95,18 @@ public class TileEntityDeuteriumTower extends TileEntityDeuteriumExtractor { private DirPos[] getConPos() { - int offsetX = 0; - int offsetZ = 0; - ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); ForgeDirection rot = dir.getRotation(ForgeDirection.DOWN); - offsetX = -dir.offsetX; - offsetZ = -rot.offsetZ; - - if(dir == ForgeDirection.NORTH || dir == ForgeDirection.SOUTH) { - offsetX = rot.offsetX; - offsetZ = dir.offsetZ; - } return new DirPos[] { - new DirPos(this.xCoord + offsetX * 2, this.yCoord, this.zCoord - offsetZ * 1, Library.POS_X), - new DirPos(this.xCoord + offsetX * 2, this.yCoord, this.zCoord - offsetZ * 0, Library.POS_X), - new DirPos(this.xCoord + offsetX * 1, this.yCoord, this.zCoord - offsetZ * 2, Library.NEG_Z), - new DirPos(this.xCoord + offsetX * 0, this.yCoord, this.zCoord - offsetZ * 2, Library.NEG_Z), - new DirPos(this.xCoord + offsetX * 1, this.yCoord, this.zCoord + offsetZ * 1, Library.POS_Z), - new DirPos(this.xCoord + offsetX * 0, this.yCoord, this.zCoord + offsetZ * 1, Library.POS_Z), - new DirPos(this.xCoord - offsetX * 1, this.yCoord, this.zCoord + offsetZ * 0, Library.NEG_Z), - new DirPos(this.xCoord - offsetX * 1, this.yCoord, this.zCoord - offsetZ * 1, Library.NEG_Z) + new DirPos(this.xCoord - dir.offsetX * 2, this.yCoord, this.zCoord - dir.offsetZ * 2, dir.getOpposite()), + new DirPos(this.xCoord - dir.offsetX * 2 + rot.offsetX, this.yCoord, this.zCoord - dir.offsetZ * 2 + rot.offsetZ, dir.getOpposite()), + new DirPos(this.xCoord + dir.offsetX, this.yCoord, this.zCoord - dir.offsetZ, dir), + new DirPos(this.xCoord + dir.offsetX + rot.offsetX, this.yCoord, this.zCoord - dir.offsetZ + rot.offsetZ, dir), + new DirPos(this.xCoord - rot.offsetX, this.yCoord, this.zCoord - rot.offsetZ, rot.getOpposite()), + new DirPos(this.xCoord - dir.offsetX - rot.offsetX, this.yCoord, this.zCoord - dir.offsetZ - rot.offsetZ, rot.getOpposite()), + new DirPos(this.xCoord + rot.offsetX * 2, this.yCoord, this.zCoord + rot.offsetZ * 2, rot), + new DirPos(this.xCoord - dir.offsetX + rot.offsetX * 2, this.yCoord, this.zCoord - dir.offsetZ + rot.offsetZ * 2, rot), }; } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemfac.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemfac.java index 8b3b7c981..56dd87ed3 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemfac.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemfac.java @@ -7,7 +7,9 @@ import com.hbm.inventory.FluidTank; import com.hbm.inventory.UpgradeManager; import com.hbm.inventory.fluid.Fluids; import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; +import com.hbm.util.fauxpointtwelve.DirPos; +import api.hbm.fluid.IFluidStandardTransceiver; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.nbt.NBTTagCompound; @@ -15,7 +17,7 @@ import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.ChunkCoordinates; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineAssemfac extends TileEntityMachineAssemblerBase { +public class TileEntityMachineAssemfac extends TileEntityMachineAssemblerBase implements IFluidStandardTransceiver { public AssemblerArm[] arms; @@ -45,6 +47,10 @@ public class TileEntityMachineAssemfac extends TileEntityMachineAssemblerBase { if(!worldObj.isRemote) { + if(worldObj.getTotalWorldTime() % 20 == 0) { + this.updateConnections(); + } + this.speed = 100; this.consumption = 100; @@ -94,6 +100,30 @@ public class TileEntityMachineAssemfac extends TileEntityMachineAssemblerBase { steam.readFromNBT(nbt, "s"); } + private void updateConnections() { + for(DirPos pos : getConPos()) { + this.trySubscribe(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + this.trySubscribe(water.getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + } + } + + public DirPos[] getConPos() { + + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + + return new DirPos[] { + new DirPos(xCoord - dir.offsetX * 3 + rot.offsetX * 5, yCoord, zCoord - dir.offsetZ * 3 + rot.offsetZ * 5, rot), + new DirPos(xCoord + dir.offsetX * 2 + rot.offsetX * 5, yCoord, zCoord + dir.offsetZ * 2 + rot.offsetZ * 5, rot), + new DirPos(xCoord - dir.offsetX * 3 - rot.offsetX * 4, yCoord, zCoord - dir.offsetZ * 3 - rot.offsetZ * 4, rot.getOpposite()), + new DirPos(xCoord + dir.offsetX * 2 - rot.offsetX * 4, yCoord, zCoord + dir.offsetZ * 2 - rot.offsetZ * 4, rot.getOpposite()), + new DirPos(xCoord - dir.offsetX * 5 + rot.offsetX * 3, yCoord, zCoord - dir.offsetZ * 5 + rot.offsetZ * 3, dir.getOpposite()), + new DirPos(xCoord - dir.offsetX * 5 - rot.offsetX * 2, yCoord, zCoord - dir.offsetZ * 5 - rot.offsetZ * 2, dir.getOpposite()), + new DirPos(xCoord + dir.offsetX * 4 + rot.offsetX * 3, yCoord, zCoord + dir.offsetZ * 4 + rot.offsetZ * 3, dir), + new DirPos(xCoord + dir.offsetX * 4 - rot.offsetX * 2, yCoord, zCoord + dir.offsetZ * 4 - rot.offsetZ * 2, dir) + }; + } + public static class AssemblerArm { public double[] angles = new double[4]; public double[] prevAngles = new double[4]; @@ -324,4 +354,14 @@ public class TileEntityMachineAssemfac extends TileEntityMachineAssemblerBase { return outpos; } + + @Override + public FluidTank[] getSendingTanks() { + return new FluidTank[] { steam }; + } + + @Override + public FluidTank[] getReceivingTanks() { + return new FluidTank[] { water }; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemfac.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemfac.java index fb9f93a6c..b64ef2345 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemfac.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemfac.java @@ -161,12 +161,12 @@ public class TileEntityMachineChemfac extends TileEntityMachineChemplantBase { ForgeDirection rot = dir.getRotation(ForgeDirection.DOWN); for(int i = 0; i < 6; i++) { - this.trySubscribe(worldObj, xCoord + dir.offsetX * (2 - i) + rot.offsetX * 3, yCoord + 4, zCoord + dir.offsetZ * (2 - i) + rot.offsetZ * 3, rot); - this.trySubscribe(worldObj, xCoord + dir.offsetX * (2 - i) - rot.offsetX * 2, yCoord + 4, zCoord + dir.offsetZ * (2 - i) - rot.offsetZ * 2, rot.getOpposite()); + this.trySubscribe(worldObj, xCoord + dir.offsetX * (3 - i) + rot.offsetX * 3, yCoord + 4, zCoord + dir.offsetZ * (3 - i) + rot.offsetZ * 3, Library.POS_Y); + this.trySubscribe(worldObj, xCoord + dir.offsetX * (3 - i) - rot.offsetX * 2, yCoord + 4, zCoord + dir.offsetZ * (3 - i) - rot.offsetZ * 2, Library.POS_Y); for(int j = 0; j < 2; j++) { - this.trySubscribe(worldObj, xCoord + dir.offsetX * (2 - i) + rot.offsetX * 5, yCoord + 1 + j, zCoord + dir.offsetZ * (2 - i) + rot.offsetZ * 5, rot); - this.trySubscribe(worldObj, xCoord + dir.offsetX * (2 - i) - rot.offsetX * 4, yCoord + 1 + j, zCoord + dir.offsetZ * (2 - i) - rot.offsetZ * 4, rot.getOpposite()); + this.trySubscribe(worldObj, xCoord + dir.offsetX * (3 - i) + rot.offsetX * 5, yCoord + 1 + j, zCoord + dir.offsetZ * (3 - i) + rot.offsetZ * 5, rot); + this.trySubscribe(worldObj, xCoord + dir.offsetX * (3 - i) - rot.offsetX * 4, yCoord + 1 + j, zCoord + dir.offsetZ * (3 - i) - rot.offsetZ * 4, rot.getOpposite()); } } } diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBAT9000.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBAT9000.java index 2c64945ad..955fe63b4 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBAT9000.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBAT9000.java @@ -36,8 +36,8 @@ public class TileEntityMachineBAT9000 extends TileEntityBarrel { this.trySubscribe(type, world, xCoord + 1, yCoord, zCoord - 3, Library.NEG_Z); this.trySubscribe(type, world, xCoord - 1, yCoord, zCoord - 3, Library.NEG_Z); this.trySubscribe(type, world, xCoord + 3, yCoord, zCoord + 1, Library.POS_X); - this.trySubscribe(type, world, xCoord - 3, yCoord, zCoord + 1, Library.POS_X); - this.trySubscribe(type, world, xCoord + 3, yCoord, zCoord - 1, Library.NEG_X); + this.trySubscribe(type, world, xCoord - 3, yCoord, zCoord + 1, Library.NEG_X); + this.trySubscribe(type, world, xCoord + 3, yCoord, zCoord - 1, Library.POS_X); this.trySubscribe(type, world, xCoord - 3, yCoord, zCoord - 1, Library.NEG_X); } @@ -71,8 +71,8 @@ public class TileEntityMachineBAT9000 extends TileEntityBarrel { sendFluid(type, worldObj, xCoord + 1, yCoord, zCoord - 3, Library.NEG_Z); sendFluid(type, worldObj, xCoord - 1, yCoord, zCoord - 3, Library.NEG_Z); sendFluid(type, worldObj, xCoord + 3, yCoord, zCoord + 1, Library.POS_X); - sendFluid(type, worldObj, xCoord - 3, yCoord, zCoord + 1, Library.POS_X); - sendFluid(type, worldObj, xCoord + 3, yCoord, zCoord - 1, Library.NEG_X); + sendFluid(type, worldObj, xCoord - 3, yCoord, zCoord + 1, Library.NEG_X); + sendFluid(type, worldObj, xCoord + 3, yCoord, zCoord - 1, Library.POS_X); sendFluid(type, worldObj, xCoord - 3, yCoord, zCoord - 1, Library.NEG_X); } From 3fed1d8d8d6b1552b8205a01ace2b1c5b205edbc Mon Sep 17 00:00:00 2001 From: Boblet Date: Fri, 20 May 2022 14:43:45 +0200 Subject: [PATCH 15/80] ported a few more machines to the new fluid API --- .../machine/TileEntityCoreReceiver.java | 9 +- .../machine/TileEntityMachineTurbine.java | 16 ++- .../machine/TileEntityReactorZirnox.java | 113 ++++++++++-------- .../hbm/textures/items/circuit_demo.png | Bin 0 -> 237 bytes .../hbm/textures/items/circuit_demo2.png | Bin 0 -> 450 bytes .../hbm/textures/items/circuit_demo3.png | Bin 0 -> 253 bytes .../hbm/textures/items/circuit_demo4.png | Bin 0 -> 350 bytes .../hbm/textures/items/circuit_demo5.png | Bin 0 -> 576 bytes .../hbm/textures/items/circuit_demo6.png | Bin 0 -> 255 bytes 9 files changed, 87 insertions(+), 51 deletions(-) create mode 100644 src/main/resources/assets/hbm/textures/items/circuit_demo.png create mode 100644 src/main/resources/assets/hbm/textures/items/circuit_demo2.png create mode 100644 src/main/resources/assets/hbm/textures/items/circuit_demo3.png create mode 100644 src/main/resources/assets/hbm/textures/items/circuit_demo4.png create mode 100644 src/main/resources/assets/hbm/textures/items/circuit_demo5.png create mode 100644 src/main/resources/assets/hbm/textures/items/circuit_demo6.png diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreReceiver.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreReceiver.java index dbe789d6e..ec5e842dd 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreReceiver.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreReceiver.java @@ -11,6 +11,7 @@ import com.hbm.tileentity.TileEntityMachineBase; import api.hbm.block.ILaserable; import api.hbm.energy.IEnergyGenerator; +import api.hbm.fluid.IFluidStandardReceiver; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.init.Blocks; @@ -20,7 +21,7 @@ import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityCoreReceiver extends TileEntityMachineBase implements IEnergyGenerator, IFluidAcceptor, ILaserable { +public class TileEntityCoreReceiver extends TileEntityMachineBase implements IEnergyGenerator, IFluidAcceptor, ILaserable, IFluidStandardReceiver { public long power; public long joules; @@ -42,6 +43,7 @@ public class TileEntityCoreReceiver extends TileEntityMachineBase implements IEn if (!worldObj.isRemote) { tank.updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); + this.subscribeToAllAround(tank.getTankType(), this); power = joules * 5000; @@ -163,4 +165,9 @@ public class TileEntityCoreReceiver extends TileEntityMachineBase implements IEn nbt.setLong("joules", joules); tank.writeToNBT(nbt, "tank"); } + + @Override + public FluidTank[] getReceivingTanks() { + return new FluidTank[] { tank }; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbine.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbine.java index 4acfb031a..d21369773 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbine.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbine.java @@ -17,6 +17,7 @@ import com.hbm.tileentity.TileEntityLoadedBase; import api.hbm.energy.IBatteryItem; import api.hbm.energy.IEnergyGenerator; +import api.hbm.fluid.IFluidStandardTransceiver; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.ISidedInventory; @@ -25,7 +26,7 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineTurbine extends TileEntityLoadedBase implements ISidedInventory, IFluidContainer, IFluidAcceptor, IFluidSource, IEnergyGenerator { +public class TileEntityMachineTurbine extends TileEntityLoadedBase implements ISidedInventory, IFluidContainer, IFluidAcceptor, IFluidSource, IEnergyGenerator, IFluidStandardTransceiver { private ItemStack slots[]; @@ -221,6 +222,7 @@ public class TileEntityMachineTurbine extends TileEntityLoadedBase implements IS age = 0; } + this.subscribeToAllAround(tanks[0].getTankType(), this); fillFluidInit(tanks[1].getTankType()); for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) @@ -252,6 +254,8 @@ public class TileEntityMachineTurbine extends TileEntityLoadedBase implements IS power = maxPower; } + this.sendFluidToAll(tanks[1].getTankType(), this); + tanks[1].unloadTank(5, 6, slots); for(int i = 0; i < 2; i++) @@ -349,4 +353,14 @@ public class TileEntityMachineTurbine extends TileEntityLoadedBase implements IS public void setPower(long i) { this.power = i; } + + @Override + public FluidTank[] getSendingTanks() { + return new FluidTank[] { tanks[1] }; + } + + @Override + public FluidTank[] getReceivingTanks() { + return new FluidTank[] { tanks[0] }; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityReactorZirnox.java b/src/main/java/com/hbm/tileentity/machine/TileEntityReactorZirnox.java index f5885f311..d48cacb7d 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityReactorZirnox.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityReactorZirnox.java @@ -26,7 +26,9 @@ import com.hbm.items.machine.ItemZirnoxRod; import com.hbm.lib.Library; import com.hbm.main.MainRegistry; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.fauxpointtwelve.DirPos; +import api.hbm.fluid.IFluidStandardTransceiver; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.entity.player.EntityPlayer; @@ -36,7 +38,7 @@ import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.Vec3; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityReactorZirnox extends TileEntityMachineBase implements IFluidContainer, IFluidAcceptor, IFluidSource, IControlReceiver { +public class TileEntityReactorZirnox extends TileEntityMachineBase implements IFluidContainer, IFluidAcceptor, IFluidSource, IControlReceiver, IFluidStandardTransceiver { public int heat; public static final int maxHeat = 100000; @@ -120,54 +122,30 @@ public class TileEntityReactorZirnox extends TileEntityMachineBase implements IF private int[] getNeighbouringSlots(int id) { switch(id) { - case 0: - return new int[] { 1, 7 }; - case 1: - return new int[] { 0, 2, 8 }; - case 2: - return new int[] { 1, 9 }; - case 3: - return new int[] { 4, 10 }; - case 4: - return new int[] { 3, 5, 11 }; - case 5: - return new int[] { 4, 6, 12 }; - case 6: - return new int[] { 5, 13 }; - case 7: - return new int[] { 0, 8, 14 }; - case 8: - return new int[] { 1, 7, 9, 15 }; - case 9: - return new int[] { 2, 8, 16}; - case 10: - return new int[] { 3, 11, 17 }; - case 11: - return new int[] { 4, 10, 12, 18 }; - case 12: - return new int[] { 5, 11, 13, 19 }; - case 13: - return new int[] { 6, 12, 20 }; - case 14: - return new int[] { 7, 15, 21 }; - case 15: - return new int[] { 8, 14, 16, 22 }; - case 16: - return new int[] { 9, 15, 23 }; - case 17: - return new int[] { 10, 18 }; - case 18: - return new int[] { 11, 17, 19 }; - case 19: - return new int[] { 12, 18, 20 }; - case 20: - return new int[] { 13, 19 }; - case 21: - return new int[] { 14, 22 }; - case 22: - return new int[] { 15, 21, 23 }; - case 23: - return new int[] { 16, 22 }; + case 0: return new int[] { 1, 7 }; + case 1: return new int[] { 0, 2, 8 }; + case 2: return new int[] { 1, 9 }; + case 3: return new int[] { 4, 10 }; + case 4: return new int[] { 3, 5, 11 }; + case 5: return new int[] { 4, 6, 12 }; + case 6: return new int[] { 5, 13 }; + case 7: return new int[] { 0, 8, 14 }; + case 8: return new int[] { 1, 7, 9, 15 }; + case 9: return new int[] { 2, 8, 16}; + case 10: return new int[] { 3, 11, 17 }; + case 11: return new int[] { 4, 10, 12, 18 }; + case 12: return new int[] { 5, 11, 13, 19 }; + case 13: return new int[] { 6, 12, 20 }; + case 14: return new int[] { 7, 15, 21 }; + case 15: return new int[] { 8, 14, 16, 22 }; + case 16: return new int[] { 9, 15, 23 }; + case 17: return new int[] { 10, 18 }; + case 18: return new int[] { 11, 17, 19 }; + case 19: return new int[] { 12, 18, 20 }; + case 20: return new int[] { 13, 19 }; + case 21: return new int[] { 14, 22 }; + case 22: return new int[] { 15, 21, 23 }; + case 23: return new int[] { 16, 22 }; } return null; @@ -187,6 +165,10 @@ public class TileEntityReactorZirnox extends TileEntityMachineBase implements IF if(age == 9 || age == 19) { fillFluidInit(steam.getTankType()); } + + if(worldObj.getTotalWorldTime() % 20 == 0) { + this.updateConnections(); + } carbonDioxide.loadTank(24, 26, slots); water.loadTank(25, 27, slots); @@ -217,6 +199,10 @@ public class TileEntityReactorZirnox extends TileEntityMachineBase implements IF } } + + for(DirPos pos : getConPos()) { + this.sendFluid(steam.getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + } checkIfMeltdown(); @@ -395,6 +381,25 @@ public class TileEntityReactorZirnox extends TileEntityMachineBase implements IF fillFluid(this.xCoord + rot.offsetX * -3, this.yCoord + 1, this.zCoord + rot.offsetZ * -3, getTact(), type); fillFluid(this.xCoord + rot.offsetX * -3, this.yCoord + 3, this.zCoord + rot.offsetZ * -3, getTact(), type); } + + private void updateConnections() { + for(DirPos pos : getConPos()) { + this.trySubscribe(water.getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + this.trySubscribe(carbonDioxide.getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + } + } + + private DirPos[] getConPos() { + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + + return new DirPos[] { + new DirPos(this.xCoord + rot.offsetX * 3, this.yCoord + 1, this.zCoord + rot.offsetZ * 3, rot), + new DirPos(this.xCoord + rot.offsetX * 3, this.yCoord + 3, this.zCoord + rot.offsetZ * 3, rot), + new DirPos(this.xCoord + rot.offsetX * -3, this.yCoord + 1, this.zCoord + rot.offsetZ * -3, rot.getOpposite()), + new DirPos(this.xCoord + rot.offsetX * -3, this.yCoord + 3, this.zCoord + rot.offsetZ * -3, rot.getOpposite()) + }; + } public boolean getTact() { if(age >= 0 && age < 10) { @@ -496,4 +501,14 @@ public class TileEntityReactorZirnox extends TileEntityMachineBase implements IF this.markDirty(); } + @Override + public FluidTank[] getSendingTanks() { + return new FluidTank[] { steam }; + } + + @Override + public FluidTank[] getReceivingTanks() { + return new FluidTank[] { water, carbonDioxide }; + } + } \ No newline at end of file diff --git a/src/main/resources/assets/hbm/textures/items/circuit_demo.png b/src/main/resources/assets/hbm/textures/items/circuit_demo.png new file mode 100644 index 0000000000000000000000000000000000000000..bf2fda53ffb2d6eddec65363b4272486e3c0d43d GIT binary patch literal 237 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf5Ow-PVFe{<%XnVkQ}z@LWzSjbKq0HX}*L!;{& zRd?%$a(jdRRPMdOG&J|yWf26}EvLMVUF|>w=wAE5lsLNLIQr=I^Qk@nf&d#mlW50f zeRr9k^XN}IyNVacPC>N>bLYLB&XkZr;ajL2Vtyz9XtxSRPHsF~$>E}>VDYw}{8rIg zSnr(heZRU2?(evqj-wsTarA+ObRTnPJ&2%0h6RC$@Gb1Wr2Py!Y#qzR05AV_eHkYRA|g324j4toJeCTtEe)D&VfMt5T7w?CI*Ngy0Rh6OTW&za4<4Y3(2Cs2+? sJD?pQ>|JIW)%vurEVFYz!1 yOxtab_5bAaTo)@nS5l{Z(RHcAx#fTD`>YvexEl3awyOi(&*16m=d#Wzp$PyU6ht3ZI!c5@n$+ndv>ae-lynxN&kYs{ zQMxr-uy$;q-<`(x$1{ICeE4fbc5`p!V)w6FMc-d6)g)*Zp5O#twTjFjDC69bjtFKD&i*a~ zzf19!0nv9g&TxJZX3(aJOoz7HRFNgCn5_Yrw*Xc_Cs0iiaWO&HELpqx=ycDR!uj`n z=m4NV2G8*Gs3z$gM0mJ2a(P}=5MmkUZiRh_!YAARe1uN-bh<~}OfYn(?ZqtVJ^j#(Axc^Jh-{Df}P!0X>X}=`O!VQ2+n{07*qoM6N<$f>~>nv;Y7A literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/circuit_demo5.png b/src/main/resources/assets/hbm/textures/items/circuit_demo5.png new file mode 100644 index 0000000000000000000000000000000000000000..b2e7c5b4b75c4d388c5537bd950cbd6272fbac0e GIT binary patch literal 576 zcmV-G0>AxXvTz=-0yx4w}~yf>sijr;d@?q&-vhA zml}zS56>C^NeJ!rj@sYAEPcrE{%(`yZ!?si*VN)m&qzX$gs}OfqyX%bZuXRgBo))E zY2!LA>^X(&!1nzb*Uxw+<|`zn7#8)Iu|`4?f+Q^(_kK`++yZ9>J89t`%mNVe6`PdN zeT_c+i$Qz6qpYsYTzLwwkp*DO%OOb%oE0P`01QipFV8CD=wmUxnl|=~qPlbifNO8| zkc5TAqs$*~oQodz3Uqrgu^h2ugZ&MR>qOc=n8j+_yiHed9mwx25MCal2O;4=GpxY( z7xmLieDEnp%mXVaNJ_Bcg6lxH2l_}89>ZJb>vU5vFj2IQ0Jl0n$?q(n zk2Lx)5I8&v1_2;G3mM;FY98%L11ASuPo{yf8yA)E}MS0ET-ys8mw*9(0ym*ZFFlJ>Iv}Dd>*zSJ#Bg+dxnaqGajBPVd-sBC8TBmx}gmeF{ z|5e|=@3;P;JUONM`r;?gr=FbQ5b(jqQ16-9x+!cAei*!&Zl!54`G~05-j9~*Gm2&$ z?ccOB=vJ{L^A=eVYdfZmf0vop^+beNeNeXeEu?AAa9EeW{DIKEg@43K7Ui Date: Sat, 21 May 2022 21:29:45 +0200 Subject: [PATCH 16/80] the lord yeeteth and the lord yoinketh away --- .../java/api/hbm/energy/IEnergyConnector.java | 2 +- .../java/api/hbm/fluid/IFluidConnector.java | 2 +- .../java/com/hbm/blocks/bomb/LaunchPad.java | 2 - .../hbm/blocks/machine/MachineAssemfac.java | 24 + .../java/com/hbm/config/GeneralConfig.java | 4 +- .../com/hbm/inventory/gui/GUIAssemfac.java | 9 +- .../java/com/hbm/main/ResourceManager.java | 6 +- .../hbm/render/entity/mob/RenderBalls.java | 2 +- .../hbm/render/item/ItemRenderLibrary.java | 39 +- .../item/weapon/ItemRenderWeaponObj.java | 2 +- .../hbm/render/tileentity/RenderAssemfac.java | 4 +- .../render/tileentity/RenderBigTurbine.java | 2 +- .../hbm/render/tileentity/RenderTurbofan.java | 87 +- .../com/hbm/render/util/ErrorPronter.java | 2 +- .../TileEntityMachineAssemblerBase.java | 116 +- .../machine/TileEntityMachineAssemfac.java | 20 + .../machine/TileEntityTowerSmall.java | 18 + src/main/resources/assets/hbm/lang/de_DE.lang | 1 + src/main/resources/assets/hbm/lang/en_US.lang | 1 + .../assets/hbm/models/machines/turbofan.obj | 9317 +++++++++++++++++ .../hbm/textures/items/circuit_aluminium.png | Bin 285 -> 382 bytes .../hbm/textures/items/circuit_copper.png | Bin 283 -> 445 bytes .../hbm/textures/items/circuit_gold.png | Bin 304 -> 513 bytes .../assets/hbm/textures/items/circuit_raw.png | Bin 470 -> 522 bytes .../hbm/textures/items/circuit_red_copper.png | Bin 300 -> 432 bytes .../textures/items/circuit_schrabidium.png | Bin 308 -> 538 bytes .../textures/items/circuit_simple_overlay.png | Bin 0 -> 353 bytes .../hbm/textures/models/cyclotronTexture.png | Bin 240167 -> 0 bytes .../hbm/textures/models/machines/turbofan.png | Bin 0 -> 2038 bytes .../models/machines/turbofan_back.png | Bin 0 -> 292 bytes .../hbm/textures/models/mining_drill.png | Bin 554497 -> 14089 bytes .../hbm/textures/models/textureIGen.png | Bin 26347 -> 0 bytes .../hbm/textures/models/turbofan_body.png | Bin 88375 -> 0 bytes 33 files changed, 9568 insertions(+), 92 deletions(-) create mode 100644 src/main/resources/assets/hbm/models/machines/turbofan.obj create mode 100644 src/main/resources/assets/hbm/textures/items/circuit_simple_overlay.png delete mode 100755 src/main/resources/assets/hbm/textures/models/cyclotronTexture.png create mode 100644 src/main/resources/assets/hbm/textures/models/machines/turbofan.png create mode 100644 src/main/resources/assets/hbm/textures/models/machines/turbofan_back.png delete mode 100755 src/main/resources/assets/hbm/textures/models/textureIGen.png delete mode 100755 src/main/resources/assets/hbm/textures/models/turbofan_body.png diff --git a/src/main/java/api/hbm/energy/IEnergyConnector.java b/src/main/java/api/hbm/energy/IEnergyConnector.java index d32fc22e7..a935a42c2 100644 --- a/src/main/java/api/hbm/energy/IEnergyConnector.java +++ b/src/main/java/api/hbm/energy/IEnergyConnector.java @@ -100,7 +100,7 @@ public interface IEnergyConnector extends ILoadedTile { } } - public static final boolean particleDebug = true; + public static final boolean particleDebug = false; public default Vec3 getDebugParticlePos() { TileEntity te = (TileEntity) this; diff --git a/src/main/java/api/hbm/fluid/IFluidConnector.java b/src/main/java/api/hbm/fluid/IFluidConnector.java index f5b728959..634412cbf 100644 --- a/src/main/java/api/hbm/fluid/IFluidConnector.java +++ b/src/main/java/api/hbm/fluid/IFluidConnector.java @@ -87,5 +87,5 @@ public interface IFluidConnector { } } - public static final boolean particleDebug = true; + public static final boolean particleDebug = false; } diff --git a/src/main/java/com/hbm/blocks/bomb/LaunchPad.java b/src/main/java/com/hbm/blocks/bomb/LaunchPad.java index 5a2c04ff5..b73c26c91 100644 --- a/src/main/java/com/hbm/blocks/bomb/LaunchPad.java +++ b/src/main/java/com/hbm/blocks/bomb/LaunchPad.java @@ -277,8 +277,6 @@ public class LaunchPad extends BlockContainer implements IBomb { MainRegistry.logger.log(Level.INFO, "[MISSILE] Tried to launch missile at " + x + " / " + y + " / " + z + " to " + xCoord + " / " + zCoord + "!"); return BombReturnCode.LAUNCHED; } - - return BombReturnCode.ERROR_MISSING_COMPONENT; } if(entity.slots[0] != null && entity.slots[0].getItem() == ModItems.missile_carrier && entity.power >= 75000) { diff --git a/src/main/java/com/hbm/blocks/machine/MachineAssemfac.java b/src/main/java/com/hbm/blocks/machine/MachineAssemfac.java index c680a1949..14a57c952 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineAssemfac.java +++ b/src/main/java/com/hbm/blocks/machine/MachineAssemfac.java @@ -8,6 +8,7 @@ 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 MachineAssemfac extends BlockDummyable { @@ -36,4 +37,27 @@ public class MachineAssemfac extends BlockDummyable { public int getOffset() { return 3; } + + @Override + public void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) { + super.fillSpace(world, x, y, z, dir, o); + + x += dir.offsetX * o; + z += dir.offsetZ * o; + ForgeDirection rot = dir.getRotation(ForgeDirection.DOWN); + + this.safeRem = true; + + this.makeExtra(world, x + dir.offsetX * 3 + rot.offsetX * 2, y, z + dir.offsetZ * 3 + rot.offsetZ * 2); + this.makeExtra(world, x + dir.offsetX * 3 - rot.offsetX * 3, y, z + dir.offsetZ * 3 - rot.offsetZ * 3); + this.makeExtra(world, x - dir.offsetX * 4 + rot.offsetX * 2, y, z - dir.offsetZ * 4 + rot.offsetZ * 2); + this.makeExtra(world, x - dir.offsetX * 4 - rot.offsetX * 3, y, z - dir.offsetZ * 4 - rot.offsetZ * 3); + + this.makeExtra(world, x + rot.offsetX * 3 + dir.offsetX * 2, y, z + rot.offsetZ * 3 + dir.offsetZ * 2); + this.makeExtra(world, x + rot.offsetX * 3 - dir.offsetX * 3, y, z + rot.offsetZ * 3 - dir.offsetZ * 3); + this.makeExtra(world, x - rot.offsetX * 4 + dir.offsetX * 2, y, z - rot.offsetZ * 4 + dir.offsetZ * 2); + this.makeExtra(world, x - rot.offsetX * 4 - dir.offsetX * 3, y, z - rot.offsetZ * 4 - dir.offsetZ * 3); + + this.safeRem = false; + } } diff --git a/src/main/java/com/hbm/config/GeneralConfig.java b/src/main/java/com/hbm/config/GeneralConfig.java index 60b32cff9..3200633b5 100644 --- a/src/main/java/com/hbm/config/GeneralConfig.java +++ b/src/main/java/com/hbm/config/GeneralConfig.java @@ -93,7 +93,7 @@ public class GeneralConfig { final String CATEGORY_LBSM = CommonConfig.CATEGORY_LBSM; - config.addCustomCategoryComment(CATEGORY_528, + config.addCustomCategoryComment(CATEGORY_LBSM, "Will most likely break standard progression!\n" + "However, the game gets generally easier and more enjoyable for casual players.\n" + "Progression-braking recipes are usually not too severe, so the mode is generally server-friendly!"); @@ -109,7 +109,7 @@ public class GeneralConfig { enableLBSMUnlockAnvil = CommonConfig.createConfigBool(config, CATEGORY_LBSM, "LBSM_recipeUnlockAnvil", "When enabled, all anvil recipes are available at tier 1", true); enableLBSMSimpleCrafting = CommonConfig.createConfigBool(config, CATEGORY_LBSM, "LBSM_recipeSimpleCrafting", "When enabled, some uncraftable or more expansive items get simple crafting recipes. Scorched uranium also becomes washable", true); enableLBSMSimpleMedicineRecipes = CommonConfig.createConfigBool(config, CATEGORY_LBSM, "LBSM_recipeSimpleMedicine", "When enabled, makes some medicine recipes (line ones that require bismuth) much more affordable", true); - schrabRate = CommonConfig.createConfigInt(config, CATEGORY_528, "LBSM_schrabOreRate", "Changes the amount of uranium ore needed on average to create one schrabidium ore using nukes. Standard mode value is 100", 20); + schrabRate = CommonConfig.createConfigInt(config, CATEGORY_LBSM, "LBSM_schrabOreRate", "Changes the amount of uranium ore needed on average to create one schrabidium ore using nukes. Standard mode value is 100", 20); if(enable528) enableLBSM = false; } diff --git a/src/main/java/com/hbm/inventory/gui/GUIAssemfac.java b/src/main/java/com/hbm/inventory/gui/GUIAssemfac.java index b934da0ef..eea97e13b 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIAssemfac.java +++ b/src/main/java/com/hbm/inventory/gui/GUIAssemfac.java @@ -29,6 +29,11 @@ public class GUIAssemfac extends GuiInfoContainer { @Override public void drawScreen(int mouseX, int mouseY, float f) { super.drawScreen(mouseX, mouseY, f); + + this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 234, guiTop + 164, 16, 52, assemfac.power, assemfac.getMaxPower()); + + assemfac.water.renderTankInfo(this, mouseX, mouseY, guiLeft + 209, guiTop + 181, 9, 54); + assemfac.steam.renderTankInfo(this, mouseX, mouseY, guiLeft + 218, guiTop + 181, 9, 54); for(int i = 0; i < 8; i++) { @@ -67,8 +72,8 @@ public class GUIAssemfac extends GuiInfoContainer { if(assemfac.power > 0) drawTexturedModalRect(guiLeft + 238, guiTop + 150, 0, 219, 9, 12); - assemfac.water.renderTank(guiLeft + 234, guiTop + 161, this.zLevel, 7, 52); - assemfac.steam.renderTank(guiLeft + 243, guiTop + 161, this.zLevel, 7, 52); + assemfac.water.renderTank(guiLeft + 210, guiTop + 234, this.zLevel, 7, 52); + assemfac.steam.renderTank(guiLeft + 219, guiTop + 234, this.zLevel, 7, 52); if(Keyboard.isKeyDown(Keyboard.KEY_LMENU)) for(int i = 0; i < this.inventorySlots.inventorySlots.size(); i++) { diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index bb63159dc..038518f9e 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -84,6 +84,7 @@ public class ResourceManager { //Turbofan public static final IModelCustom turbofan_body = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/turbofan_body.obj")); public static final IModelCustom turbofan_blades = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/turbofan_blades.obj")); + public static final IModelCustom turbofan = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/turbofan.obj")); //Large Turbine public static final IModelCustom turbine = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/turbine.obj")); @@ -301,6 +302,7 @@ public class ResourceManager { ////Textures TEs public static final ResourceLocation universal = new ResourceLocation(RefStrings.MODID, "textures/models/TheGadget3_.png"); + public static final ResourceLocation universal_bright = new ResourceLocation(RefStrings.MODID, "textures/models/turbofan_blades.png"); public static final ResourceLocation turret_heavy_base_tex = new ResourceLocation(RefStrings.MODID, "textures/models/turret_heavy_base.png"); @@ -378,8 +380,8 @@ public class ResourceManager { public static final ResourceLocation orbus_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/orbus.png"); //Turbofan - public static final ResourceLocation turbofan_body_tex = new ResourceLocation(RefStrings.MODID, "textures/models/turbofan_body.png"); - public static final ResourceLocation turbofan_blades_tex = new ResourceLocation(RefStrings.MODID, "textures/models/turbofan_blades.png"); + public static final ResourceLocation turbofan_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/turbofan.png"); + public static final ResourceLocation turbofan_back_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/turbofan_back.png"); //Large Turbine public static final ResourceLocation turbine_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/turbine.png"); diff --git a/src/main/java/com/hbm/render/entity/mob/RenderBalls.java b/src/main/java/com/hbm/render/entity/mob/RenderBalls.java index 3e6aa0f89..2a13025aa 100644 --- a/src/main/java/com/hbm/render/entity/mob/RenderBalls.java +++ b/src/main/java/com/hbm/render/entity/mob/RenderBalls.java @@ -35,7 +35,7 @@ public class RenderBalls extends Render { @Override protected ResourceLocation getEntityTexture(Entity p_110775_1_) { - return ResourceManager.turbofan_blades_tex; + return ResourceManager.universal_bright; } } diff --git a/src/main/java/com/hbm/render/item/ItemRenderLibrary.java b/src/main/java/com/hbm/render/item/ItemRenderLibrary.java index 6d707e972..21d91dbb3 100644 --- a/src/main/java/com/hbm/render/item/ItemRenderLibrary.java +++ b/src/main/java/com/hbm/render/item/ItemRenderLibrary.java @@ -42,11 +42,11 @@ public class ItemRenderLibrary { } public void renderCommon() { GL11.glShadeModel(GL11.GL_SMOOTH); - bindTexture(ResourceManager.cyclotron_tex); ResourceManager.cyclotron.renderPart("Body"); - bindTexture(ResourceManager.cyclotron_ashes); ResourceManager.cyclotron.renderPart("B1"); - bindTexture(ResourceManager.cyclotron_book); ResourceManager.cyclotron.renderPart("B2"); - bindTexture(ResourceManager.cyclotron_gavel); ResourceManager.cyclotron.renderPart("B3"); - bindTexture(ResourceManager.cyclotron_coin); ResourceManager.cyclotron.renderPart("B4"); + bindTexture(ResourceManager.cyclotron_tex); ResourceManager.cyclotron.renderPart("Body"); + bindTexture(ResourceManager.cyclotron_ashes); ResourceManager.cyclotron.renderPart("B1"); + bindTexture(ResourceManager.cyclotron_book); ResourceManager.cyclotron.renderPart("B2"); + bindTexture(ResourceManager.cyclotron_gavel); ResourceManager.cyclotron.renderPart("B3"); + bindTexture(ResourceManager.cyclotron_coin); ResourceManager.cyclotron.renderPart("B4"); GL11.glShadeModel(GL11.GL_FLAT); }}); @@ -149,7 +149,7 @@ public class ItemRenderLibrary { GL11.glShadeModel(GL11.GL_SMOOTH); GL11.glDisable(GL11.GL_CULL_FACE); bindTexture(ResourceManager.turbine_tex); ResourceManager.turbine.renderPart("Body"); - bindTexture(ResourceManager.turbofan_blades_tex); ResourceManager.turbine.renderPart("Blades"); + bindTexture(ResourceManager.universal_bright); ResourceManager.turbine.renderPart("Blades"); GL11.glEnable(GL11.GL_CULL_FACE); GL11.glShadeModel(GL11.GL_FLAT); }}); @@ -381,9 +381,13 @@ public class ItemRenderLibrary { GL11.glScaled(2, 2, 2); } public void renderCommon() { - bindTexture(ResourceManager.turbofan_body_tex); ResourceManager.turbofan_body.renderAll(); - GL11.glTranslated(0, 1.5, 0); - bindTexture(ResourceManager.turbofan_blades_tex); ResourceManager.turbofan_blades.renderAll(); + GL11.glShadeModel(GL11.GL_SMOOTH); + bindTexture(ResourceManager.turbofan_tex); + ResourceManager.turbofan.renderPart("Body"); + ResourceManager.turbofan.renderPart("Blades"); + bindTexture(ResourceManager.turbofan_back_tex); + ResourceManager.turbofan.renderPart("Afterburner"); + GL11.glShadeModel(GL11.GL_FLAT); }}); renderers.put(Item.getItemFromBlock(ModBlocks.plasma_heater), new ItemRenderBase() { @@ -1286,6 +1290,23 @@ public class ItemRenderLibrary { ResourceManager.charger.renderPart("Slide"); GL11.glShadeModel(GL11.GL_FLAT); }}); + + renderers.put(Item.getItemFromBlock(ModBlocks.machine_assemfac), new ItemRenderBase( ) { + public void renderInventory() { + GL11.glScaled(2.5, 2.5, 2.5); + } + public void renderCommon() { + GL11.glScaled(0.5, 0.5, 0.5); + GL11.glShadeModel(GL11.GL_SMOOTH); + bindTexture(ResourceManager.assemfac_tex); ResourceManager.assemfac.renderPart("Factory"); + for(int i = 1; i < 7; i++) { + ResourceManager.assemfac.renderPart("Pivot" + i); + ResourceManager.assemfac.renderPart("Arm" + i); + ResourceManager.assemfac.renderPart("Piston" + i); + ResourceManager.assemfac.renderPart("Striker" + i); + } + GL11.glShadeModel(GL11.GL_FLAT); + }}); } private static void bindTexture(ResourceLocation res) { diff --git a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponObj.java b/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponObj.java index 9f7a4ba5d..0e8e2603e 100644 --- a/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponObj.java +++ b/src/main/java/com/hbm/render/item/weapon/ItemRenderWeaponObj.java @@ -48,7 +48,7 @@ public class ItemRenderWeaponObj implements IItemRenderer { Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.hk69_tex); if(item.getItem() == ModItems.gun_deagle) - Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.turbofan_blades_tex); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.universal_bright); if(item.getItem() == ModItems.gun_ks23) Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.ks23_tex); diff --git a/src/main/java/com/hbm/render/tileentity/RenderAssemfac.java b/src/main/java/com/hbm/render/tileentity/RenderAssemfac.java index 1c910e322..5a962bba3 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderAssemfac.java +++ b/src/main/java/com/hbm/render/tileentity/RenderAssemfac.java @@ -34,8 +34,8 @@ public class RenderAssemfac extends TileEntitySpecialRenderer { bindTexture(ResourceManager.assemfac_tex); ResourceManager.assemfac.renderPart("Factory"); - double rot = Math.sin((double)(System.currentTimeMillis() / 500D)) * 25 - 20; - double rot2 = Math.sin((double)(System.currentTimeMillis() / 400D)) * 10; + //double rot = Math.sin((double)(System.currentTimeMillis() / 500D)) * 25 - 20; + //double rot2 = Math.sin((double)(System.currentTimeMillis() / 400D)) * 10; double hOff; double sOff; diff --git a/src/main/java/com/hbm/render/tileentity/RenderBigTurbine.java b/src/main/java/com/hbm/render/tileentity/RenderBigTurbine.java index 5e412f2d2..6a9dae639 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderBigTurbine.java +++ b/src/main/java/com/hbm/render/tileentity/RenderBigTurbine.java @@ -43,7 +43,7 @@ public class RenderBigTurbine extends TileEntitySpecialRenderer { GL11.glRotatef(turbine.lastRotor + (turbine.rotor - turbine.lastRotor) * f, 0, 0, 1); GL11.glTranslated(0, -1, 0); - bindTexture(ResourceManager.turbofan_blades_tex); + bindTexture(ResourceManager.universal_bright); ResourceManager.turbine.renderPart("Blades"); GL11.glEnable(GL11.GL_CULL_FACE); diff --git a/src/main/java/com/hbm/render/tileentity/RenderTurbofan.java b/src/main/java/com/hbm/render/tileentity/RenderTurbofan.java index a696472fa..b66921a83 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderTurbofan.java +++ b/src/main/java/com/hbm/render/tileentity/RenderTurbofan.java @@ -9,65 +9,40 @@ import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; import net.minecraft.tileentity.TileEntity; public class RenderTurbofan extends TileEntitySpecialRenderer { - - public RenderTurbofan() { } - @Override - public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float f) - { - GL11.glPushMatrix(); - GL11.glTranslated(x + 0.5D, y, z + 0.5D); - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glDisable(GL11.GL_CULL_FACE); - GL11.glRotatef(180, 0F, 1F, 0F); - GL11.glRotatef(270, 0F, 1F, 0F); - switch(tileEntity.getBlockMetadata()) - { - case 2: - GL11.glRotatef(90, 0F, 1F, 0F); break; - case 4: - GL11.glRotatef(180, 0F, 1F, 0F); break; - case 3: - GL11.glRotatef(270, 0F, 1F, 0F); break; - case 5: - GL11.glRotatef(0, 0F, 1F, 0F); break; - } + public RenderTurbofan() { + } - bindTexture(ResourceManager.turbofan_body_tex); - - ResourceManager.turbofan_body.renderAll(); - - GL11.glPopMatrix(); - - renderTileEntityAt2(tileEntity, x, y, z, f); - } - - public void renderTileEntityAt2(TileEntity tileEntity, double x, double y, double z, float f) - { - GL11.glPushMatrix(); - GL11.glTranslated(x + 0.5D, y + 1.5D, z + 0.5D); - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glDisable(GL11.GL_CULL_FACE); - GL11.glRotatef(180, 0F, 1F, 0F); - GL11.glRotatef(270, 0F, 1F, 0F); - switch(tileEntity.getBlockMetadata()) - { - case 2: - GL11.glRotatef(90, 0F, 1F, 0F); break; - case 4: - GL11.glRotatef(180, 0F, 1F, 0F); break; - case 3: - GL11.glRotatef(270, 0F, 1F, 0F); break; - case 5: - GL11.glRotatef(0, 0F, 1F, 0F); break; - } + @Override + public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float f) { + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5D, y, z + 0.5D); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glEnable(GL11.GL_CULL_FACE); - if(tileEntity instanceof TileEntityMachineTurbofan) - GL11.glRotatef(((TileEntityMachineTurbofan)tileEntity).spin, 0F, 0F, -1F); + GL11.glRotatef(180, 0F, 1F, 0F); + GL11.glRotatef(270, 0F, 1F, 0F); + + switch(tileEntity.getBlockMetadata()) { + case 2: GL11.glRotatef(90, 0F, 1F, 0F); break; + case 4: GL11.glRotatef(180, 0F, 1F, 0F); break; + case 3: GL11.glRotatef(270, 0F, 1F, 0F); break; + case 5: GL11.glRotatef(0, 0F, 1F, 0F); break; + } - bindTexture(ResourceManager.turbofan_blades_tex); - ResourceManager.turbofan_blades.renderAll(); + GL11.glShadeModel(GL11.GL_SMOOTH); + bindTexture(ResourceManager.turbofan_tex); + ResourceManager.turbofan.renderPart("Body"); + GL11.glPushMatrix(); + GL11.glTranslated(0, 1.5, 0); + GL11.glRotated(((TileEntityMachineTurbofan) tileEntity).spin, 0, 0, 1); + GL11.glTranslated(0, -1.5, 0); + ResourceManager.turbofan.renderPart("Blades"); + GL11.glPopMatrix(); + bindTexture(ResourceManager.turbofan_back_tex); + ResourceManager.turbofan.renderPart("Afterburner"); + GL11.glShadeModel(GL11.GL_FLAT); - GL11.glPopMatrix(); - } + GL11.glPopMatrix(); + } } diff --git a/src/main/java/com/hbm/render/util/ErrorPronter.java b/src/main/java/com/hbm/render/util/ErrorPronter.java index 410fe0fd5..421e83c08 100644 --- a/src/main/java/com/hbm/render/util/ErrorPronter.java +++ b/src/main/java/com/hbm/render/util/ErrorPronter.java @@ -15,7 +15,7 @@ public class ErrorPronter { GL11.glScaled(2, 2, 2); GL11.glColor3d(Math.sin(System.currentTimeMillis() % 1000 / 1000D * Math.PI) * 0.5 + 0.5, 0.0, 0.0); - Minecraft.getMinecraft().getTextureManager().bindTexture(ResourceManager.turbofan_blades_tex); + Minecraft.getMinecraft().getTextureManager().bindTexture(ResourceManager.universal_bright); ResourceManager.error.renderAll(); GL11.glEnable(GL11.GL_CULL_FACE); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemblerBase.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemblerBase.java index c5202602a..733ff4993 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemblerBase.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemblerBase.java @@ -11,7 +11,9 @@ import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.util.InventoryUtil; import api.hbm.energy.IEnergyUser; +import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; import net.minecraft.util.ChunkCoordinates; public abstract class TileEntityMachineAssemblerBase extends TileEntityMachineBase implements IEnergyUser { @@ -44,17 +46,8 @@ public abstract class TileEntityMachineAssemblerBase extends TileEntityMachineBa this.power = Library.chargeTEFromItems(slots, 0, power, this.getMaxPower()); for(int i = 0; i < count; i++) { - //loadItems(i); - //unloadItems(i); - } - - if(worldObj.getTotalWorldTime() % 10 == 0) { - - /*for(FluidTank tank : this.outTanks()) { - if(tank.getTankType() != Fluids.NONE && tank.getFill() > 0) { - this.fillFluidInit(tank.getTankType()); - } - }*/ + loadItems(i); + unloadItems(i); } @@ -141,6 +134,107 @@ public abstract class TileEntityMachineAssemblerBase extends TileEntityMachineBa InventoryUtil.tryAddItemToInventory(slots, indices[2], indices[2], out.copy()); } } + + private void loadItems(int index) { + + int template = getTemplateIndex(index); + if(slots[template] == null || slots[template].getItem() != ModItems.assembly_template) + return; + + List recipe = AssemblerRecipes.getRecipeFromTempate(slots[template]); + + if(recipe != null) { + + ChunkCoordinates[] positions = getInputPositions(); + int[] indices = getSlotIndicesFromIndex(index); + + for(ChunkCoordinates coord : positions) { + + TileEntity te = worldObj.getTileEntity(coord.posX, coord.posY, coord.posZ); + + if(te instanceof IInventory) { + + IInventory inv = (IInventory) te; + + for(AStack ingredient : recipe) { + + if(!InventoryUtil.doesArrayHaveIngredients(slots, indices[0], indices[1], ingredient)) { + + for(int i = 0; i < inv.getSizeInventory(); i++) { + + ItemStack stack = inv.getStackInSlot(i); + if(ingredient.matchesRecipe(stack, true)) { + + for(int j = indices[0]; j <= indices[1]; j++) { + + if(slots[j] != null && slots[j].stackSize < slots[j].getMaxStackSize() & InventoryUtil.doesStackDataMatch(slots[j], stack)) { + inv.decrStackSize(i, 1); + slots[j].stackSize++; + return; + } + } + + for(int j = indices[0]; j <= indices[1]; j++) { + + if(slots[j] == null) { + slots[j] = stack.copy(); + slots[j].stackSize = 1; + inv.decrStackSize(i, 1); + return; + } + } + } + } + } + } + } + } + } + } + + private void unloadItems(int index) { + + ChunkCoordinates[] positions = getOutputPositions(); + int[] indices = getSlotIndicesFromIndex(index); + + for(ChunkCoordinates coord : positions) { + + TileEntity te = worldObj.getTileEntity(coord.posX, coord.posY, coord.posZ); + + if(te instanceof IInventory) { + + IInventory inv = (IInventory) te; + + int i = indices[2]; + + ItemStack out = slots[i]; + + if(out != null) { + + for(int j = 0; j < inv.getSizeInventory(); j++) { + ItemStack target = inv.getStackInSlot(j); + + if(InventoryUtil.doesStackDataMatch(out, target) && target.stackSize < target.getMaxStackSize() && target.stackSize < inv.getInventoryStackLimit()) { + this.decrStackSize(i, 1); + target.stackSize++; + return; + } + } + + for(int j = 0; j < inv.getSizeInventory(); j++) { + + if(inv.getStackInSlot(j) == null && inv.isItemValidForSlot(j, out)) { + ItemStack copy = out.copy(); + copy.stackSize = 1; + inv.setInventorySlotContents(j, copy); + this.decrStackSize(i, 1); + return; + } + } + } + } + } + } @Override public long getPower() { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemfac.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemfac.java index 56dd87ed3..6cf009d19 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemfac.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemfac.java @@ -67,6 +67,10 @@ public class TileEntityMachineAssemfac extends TileEntityMachineAssemblerBase im this.speed /= (overLevel + 1); this.consumption *= (overLevel + 1); + for(DirPos pos : getConPos()) { + this.sendFluid(steam.getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + } + NBTTagCompound data = new NBTTagCompound(); data.setLong("power", this.power); data.setIntArray("progress", this.progress); @@ -100,6 +104,22 @@ public class TileEntityMachineAssemfac extends TileEntityMachineAssemblerBase im steam.readFromNBT(nbt, "s"); } + private int getWaterRequired() { + return 1000 / this.speed; + } + + @Override + protected boolean canProcess(int index) { + return super.canProcess(index) && this.water.getFill() >= getWaterRequired() && this.steam.getFill() + getWaterRequired() <= this.steam.getMaxFill(); + } + + @Override + protected void process(int index) { + super.process(index); + this.water.setFill(this.water.getFill() - getWaterRequired()); + this.steam.setFill(this.steam.getFill() + getWaterRequired()); + } + private void updateConnections() { for(DirPos pos : getConPos()) { this.trySubscribe(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityTowerSmall.java b/src/main/java/com/hbm/tileentity/machine/TileEntityTowerSmall.java index 10df2b276..525859f77 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityTowerSmall.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityTowerSmall.java @@ -3,11 +3,13 @@ package com.hbm.tileentity.machine; import com.hbm.inventory.FluidTank; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; +import com.hbm.lib.Library; import com.hbm.main.MainRegistry; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraftforge.common.util.ForgeDirection; @@ -42,6 +44,22 @@ public class TileEntityTowerSmall extends TileEntityCondenser { } } + @Override + public void subscribeToAllAround(FluidType type, TileEntity te) { + this.trySubscribe(this.tanks[0].getTankType(), worldObj, xCoord + 3, yCoord, zCoord, Library.POS_X); + this.trySubscribe(this.tanks[0].getTankType(), worldObj, xCoord - 3, yCoord, zCoord, Library.NEG_X); + this.trySubscribe(this.tanks[0].getTankType(), worldObj, xCoord, yCoord, zCoord + 3, Library.POS_Z); + this.trySubscribe(this.tanks[0].getTankType(), worldObj, xCoord, yCoord, zCoord - 3, Library.NEG_Z); + } + + @Override + public void sendFluidToAll(FluidType type, TileEntity te) { + this.sendFluid(this.tanks[1].getTankType(), worldObj, xCoord + 3, yCoord, zCoord, Library.POS_X); + this.sendFluid(this.tanks[1].getTankType(), worldObj, xCoord - 3, yCoord, zCoord, Library.NEG_X); + this.sendFluid(this.tanks[1].getTankType(), worldObj, xCoord, yCoord, zCoord + 3, Library.POS_Z); + this.sendFluid(this.tanks[1].getTankType(), worldObj, xCoord, yCoord, zCoord - 3, Library.NEG_Z); + } + @Override public void fillFluidInit(FluidType type) { diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index ba794b528..950c219b3 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -3300,6 +3300,7 @@ tile.machine_arc_furnace_off.name=Lichtbogenofen tile.machine_arc_furnace_on.name=Lichtbogenofen tile.machine_armor_table.name=Rüstungsmodifikationstisch tile.machine_assembler.name=Fertigungsmaschine +tile.machine_assemfac.name=Fertigungsfabrik tile.machine_bat9000.name=Big-Ass Tank 9000 tile.machine_battery.name=Energiespeicherblock tile.machine_battery_potato.name=Kartoffelbatterieblock diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index b8158bc32..dc3f6b587 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -3692,6 +3692,7 @@ tile.machine_arc_furnace_off.name=Arc Furnace tile.machine_arc_furnace_on.name=Arc Furnace tile.machine_armor_table.name=Armor Modification Table tile.machine_assembler.name=Assembly Machine +tile.machine_assemfac.name=Assembly Factory tile.machine_bat9000.name=Big-Ass Tank 9000 tile.machine_battery.name=Energy Storage Block tile.machine_battery_potato.name=Potato Battery Block diff --git a/src/main/resources/assets/hbm/models/machines/turbofan.obj b/src/main/resources/assets/hbm/models/machines/turbofan.obj new file mode 100644 index 000000000..859739cba --- /dev/null +++ b/src/main/resources/assets/hbm/models/machines/turbofan.obj @@ -0,0 +1,9317 @@ +# Blender v2.79 (sub 0) OBJ File: 'turbofan.blend' +# www.blender.org +o Blades +v -0.000000 1.375000 3.000000 +v 1.312500 1.375000 3.000000 +v -0.000000 1.625000 2.750000 +v 1.312500 1.625000 2.750000 +v -1.312500 1.625000 3.000000 +v -0.000000 1.500000 2.812500 +v -0.000000 1.437500 2.875000 +v 1.312500 1.437500 2.875000 +v 1.312500 1.500000 2.812500 +v -0.000000 1.625000 3.000000 +v -0.000000 1.375000 2.750000 +v -1.312500 1.375000 2.750000 +v -0.000000 1.500000 2.812500 +v -0.000000 1.562500 2.875000 +v -1.312500 1.562500 2.875000 +v -1.312500 1.500000 2.812500 +v -0.125000 1.500000 3.000000 +v -0.125000 0.187500 3.000000 +v 0.125000 1.500000 2.750000 +v 0.125000 0.187500 2.750000 +v 0.125000 2.812500 3.000000 +v -0.000000 1.500000 2.812500 +v -0.062500 1.500000 2.875000 +v -0.062500 0.187500 2.875000 +v -0.000000 0.187500 2.812500 +v 0.125000 1.500000 3.000000 +v -0.125000 1.500000 2.750000 +v -0.125000 2.812500 2.750000 +v -0.000000 1.500000 2.812500 +v 0.062500 1.500000 2.875000 +v 0.062500 2.812500 2.875000 +v 0.000000 2.812500 2.812500 +v -0.088388 1.411612 3.000000 +v 0.839689 0.483534 3.000000 +v 0.088388 1.588388 2.750000 +v 1.016466 0.660311 2.750000 +v -0.839689 2.516466 3.000000 +v -0.000000 1.500000 2.812500 +v -0.044194 1.455806 2.875000 +v 0.883883 0.527729 2.875000 +v 0.928078 0.571923 2.812500 +v 0.088388 1.588388 3.000000 +v -0.088388 1.411612 2.750000 +v -1.016466 2.339690 2.750000 +v -0.000000 1.500000 2.812500 +v 0.044194 1.544194 2.875000 +v -0.883883 2.472272 2.875000 +v -0.928078 2.428078 2.812500 +v -0.088388 1.588388 3.000000 +v -1.016466 0.660311 3.000000 +v 0.088388 1.411612 2.750000 +v -0.839689 0.483534 2.750000 +v 1.016466 2.339689 3.000000 +v -0.000000 1.500000 2.812500 +v -0.044194 1.544194 2.875000 +v -0.972272 0.616117 2.875000 +v -0.928078 0.571923 2.812500 +v 0.088388 1.411612 3.000000 +v -0.088388 1.588388 2.750000 +v 0.839689 2.516466 2.750000 +v -0.000000 1.500000 2.812500 +v 0.044194 1.455806 2.875000 +v 0.972272 2.383883 2.875000 +v 0.928078 2.428078 2.812500 +v -0.047836 1.384515 3.000000 +v 1.164756 0.882243 3.000000 +v 0.047835 1.615485 2.750000 +v 1.260427 1.113213 2.750000 +v -1.164757 2.117757 3.000000 +v -0.000000 1.500000 2.812500 +v -0.023918 1.442258 2.875000 +v 1.188674 0.939986 2.875000 +v 1.212592 0.997728 2.812500 +v 0.047835 1.615485 3.000000 +v -0.047836 1.384515 2.750000 +v -1.260427 1.886787 2.750000 +v -0.000000 1.500000 2.812500 +v 0.023918 1.557743 2.875000 +v -1.188674 2.060015 2.875000 +v -1.212592 2.002273 2.812500 +v -0.115485 1.547836 3.000000 +v -0.617757 0.335244 3.000000 +v 0.115485 1.452165 2.750000 +v -0.386787 0.239573 2.750000 +v 0.617757 2.664757 3.000000 +v -0.000000 1.500000 2.812500 +v -0.057743 1.523918 2.875000 +v -0.560015 0.311326 2.875000 +v -0.502272 0.287408 2.812500 +v 0.115485 1.452165 3.000000 +v -0.115485 1.547836 2.750000 +v 0.386787 2.760427 2.750000 +v -0.000000 1.500000 2.812500 +v 0.057742 1.476083 2.875000 +v 0.560015 2.688674 2.875000 +v 0.502272 2.712592 2.812500 +v -0.115485 1.452165 3.000000 +v 0.386787 0.239573 3.000000 +v 0.115485 1.547835 2.750000 +v 0.617757 0.335244 2.750000 +v -0.386787 2.760427 3.000000 +v -0.000000 1.500000 2.812500 +v -0.057743 1.476082 2.875000 +v 0.444529 0.263491 2.875000 +v 0.502272 0.287408 2.812500 +v 0.115485 1.547835 3.000000 +v -0.115485 1.452165 2.750000 +v -0.617757 2.664757 2.750000 +v -0.000000 1.500000 2.812500 +v 0.057742 1.523918 2.875000 +v -0.444529 2.736510 2.875000 +v -0.502272 2.712592 2.812500 +v -0.047836 1.615485 3.000000 +v -1.260427 1.113214 3.000000 +v 0.047835 1.384515 2.750000 +v -1.164757 0.882243 2.750000 +v 1.260427 1.886787 3.000000 +v -0.000000 1.500000 2.812500 +v -0.023918 1.557743 2.875000 +v -1.236510 1.055470 2.875000 +v -1.212592 0.997728 2.812500 +v 0.047835 1.384515 3.000000 +v -0.047836 1.615485 2.750000 +v 1.164756 2.117757 2.750000 +v -0.000000 1.500000 2.812500 +v 0.023918 1.442258 2.875000 +v 1.236509 1.944530 2.875000 +v 1.212592 2.002272 2.812500 +v -0.024386 1.377402 3.000000 +v 1.262894 1.121346 3.000000 +v 0.024386 1.622599 2.750000 +v 1.311667 1.366542 2.750000 +v -1.262895 1.878654 3.000000 +v -0.000000 1.500000 2.812500 +v -0.012193 1.438701 2.875000 +v 1.275087 1.182645 2.875000 +v 1.287281 1.243944 2.812500 +v 0.024386 1.622599 3.000000 +v -0.024386 1.377402 2.750000 +v -1.311667 1.633458 2.750000 +v -0.000000 1.500000 2.812500 +v 0.012193 1.561299 2.875000 +v -1.275088 1.817356 2.875000 +v -1.287281 1.756056 2.812500 +v -0.122598 1.524386 3.000000 +v -0.378654 0.237106 3.000000 +v 0.122598 1.475614 2.750000 +v -0.133458 0.188334 2.750000 +v 0.378654 2.762895 3.000000 +v -0.000000 1.500000 2.812500 +v -0.061299 1.512194 2.875000 +v -0.317355 0.224913 2.875000 +v -0.256056 0.212719 2.812500 +v 0.122598 1.475614 3.000000 +v -0.122598 1.524386 2.750000 +v 0.133458 2.811667 2.750000 +v -0.000000 1.500000 2.812500 +v 0.061299 1.487807 2.875000 +v 0.317355 2.775088 2.875000 +v 0.256056 2.787281 2.812500 +v -0.103934 1.430554 3.000000 +v 0.625252 0.339250 3.000000 +v 0.103934 1.569447 2.750000 +v 0.833120 0.478143 2.750000 +v -0.625252 2.660750 3.000000 +v -0.000000 1.500000 2.812500 +v -0.051967 1.465277 2.875000 +v 0.677219 0.373973 2.875000 +v 0.729186 0.408696 2.812500 +v 0.103934 1.569447 3.000000 +v -0.103934 1.430554 2.750000 +v -0.833120 2.521858 2.750000 +v -0.000000 1.500000 2.812500 +v 0.051967 1.534723 2.875000 +v -0.677219 2.626027 2.875000 +v -0.729186 2.591304 2.812500 +v -0.069446 1.603934 3.000000 +v -1.160750 0.874748 3.000000 +v 0.069446 1.396067 2.750000 +v -1.021858 0.666881 2.750000 +v 1.160750 2.125252 3.000000 +v -0.000000 1.500000 2.812500 +v -0.034723 1.551967 2.875000 +v -1.126027 0.822781 2.875000 +v -1.091304 0.770814 2.812500 +v 0.069446 1.396067 3.000000 +v -0.069446 1.603934 2.750000 +v 1.021858 2.333120 2.750000 +v -0.000000 1.500000 2.812500 +v 0.034723 1.448033 2.875000 +v 1.126027 2.177219 2.875000 +v 1.091304 2.229186 2.812500 +v -0.069446 1.396067 3.000000 +v 1.021857 0.666881 3.000000 +v 0.069446 1.603934 2.750000 +v 1.160750 0.874748 2.750000 +v -1.021858 2.333120 3.000000 +v -0.000000 1.500000 2.812500 +v -0.034723 1.448033 2.875000 +v 1.056581 0.718847 2.875000 +v 1.091304 0.770814 2.812500 +v 0.069446 1.603934 3.000000 +v -0.069446 1.396067 2.750000 +v -1.160750 2.125253 2.750000 +v -0.000000 1.500000 2.812500 +v 0.034723 1.551967 2.875000 +v -1.056581 2.281153 2.875000 +v -1.091304 2.229186 2.812500 +v -0.103934 1.569447 3.000000 +v -0.833120 0.478143 3.000000 +v 0.103934 1.430554 2.750000 +v -0.625252 0.339250 2.750000 +v 0.833120 2.521858 3.000000 +v -0.000000 1.500000 2.812500 +v -0.051967 1.534723 2.875000 +v -0.781153 0.443419 2.875000 +v -0.729186 0.408696 2.812500 +v 0.103934 1.430554 3.000000 +v -0.103934 1.569447 2.750000 +v 0.625252 2.660750 2.750000 +v -0.000000 1.500000 2.812500 +v 0.051967 1.465277 2.875000 +v 0.781153 2.556581 2.875000 +v 0.729186 2.591304 2.812500 +v -0.122598 1.475614 3.000000 +v 0.133458 0.188334 3.000000 +v 0.122598 1.524386 2.750000 +v 0.378654 0.237106 2.750000 +v -0.133458 2.811667 3.000000 +v -0.000000 1.500000 2.812500 +v -0.061299 1.487807 2.875000 +v 0.194757 0.200526 2.875000 +v 0.256056 0.212720 2.812500 +v 0.122598 1.524386 3.000000 +v -0.122598 1.475614 2.750000 +v -0.378654 2.762895 2.750000 +v -0.000000 1.500000 2.812500 +v 0.061299 1.512194 2.875000 +v -0.194757 2.799474 2.875000 +v -0.256056 2.787281 2.812500 +v -0.024386 1.622599 3.000000 +v -1.311667 1.366542 3.000000 +v 0.024386 1.377402 2.750000 +v -1.262895 1.121346 2.750000 +v 1.311667 1.633458 3.000000 +v -0.000000 1.500000 2.812500 +v -0.012193 1.561299 2.875000 +v -1.299474 1.305243 2.875000 +v -1.287281 1.243944 2.812500 +v 0.024386 1.377402 3.000000 +v -0.024386 1.622599 2.750000 +v 1.262894 1.878654 2.750000 +v -0.000000 1.500000 2.812500 +v 0.012193 1.438701 2.875000 +v 1.299474 1.694757 2.875000 +v 1.287280 1.756056 2.812500 +v -0.000000 1.437500 2.375000 +v 0.937500 1.437500 2.375000 +v -0.000000 1.562500 2.312500 +v 0.937500 1.562500 2.312500 +v -0.000000 1.562500 2.375000 +v -0.937500 1.562500 2.375000 +v -0.000000 1.437500 2.312500 +v -0.937500 1.437500 2.312500 +v -0.062500 1.500000 2.375000 +v -0.062500 0.562500 2.375000 +v 0.062500 1.500000 2.312500 +v 0.062500 0.562500 2.312500 +v 0.062500 1.500000 2.375000 +v 0.062500 2.437500 2.375000 +v -0.062500 1.500000 2.312500 +v -0.062500 2.437500 2.312500 +v -0.044194 1.455806 2.375000 +v 0.618718 0.792893 2.375000 +v 0.044194 1.544194 2.312500 +v 0.707106 0.881282 2.312500 +v 0.044194 1.544194 2.375000 +v -0.618719 2.207107 2.375000 +v -0.044195 1.455806 2.312500 +v -0.707107 2.118718 2.312500 +v -0.044194 1.544194 2.375000 +v -0.707107 0.881282 2.375000 +v 0.044194 1.455806 2.312500 +v -0.618719 0.792893 2.312500 +v 0.044194 1.455806 2.375000 +v 0.707107 2.118718 2.375000 +v -0.044194 1.544194 2.312500 +v 0.618718 2.207107 2.312500 +v -0.023918 1.442257 2.375000 +v 0.842219 1.083492 2.375000 +v 0.023917 1.557743 2.312500 +v 0.890054 1.198977 2.312500 +v 0.023917 1.557743 2.375000 +v -0.842220 1.916508 2.375000 +v -0.023918 1.442257 2.312500 +v -0.890055 1.801023 2.312500 +v -0.057743 1.523918 2.375000 +v -0.416509 0.657781 2.375000 +v 0.057742 1.476082 2.312500 +v -0.301024 0.609945 2.312500 +v 0.057742 1.476082 2.375000 +v 0.416508 2.342219 2.375000 +v -0.057743 1.523918 2.312500 +v 0.301023 2.390055 2.312500 +v -0.057743 1.476082 2.375000 +v 0.301023 0.609945 2.375000 +v 0.057742 1.523918 2.312500 +v 0.416508 0.657781 2.312500 +v 0.057742 1.523918 2.375000 +v -0.301024 2.390055 2.375000 +v -0.057743 1.476082 2.312500 +v -0.416508 2.342218 2.312500 +v -0.023918 1.557743 2.375000 +v -0.890055 1.198977 2.375000 +v 0.023917 1.442257 2.312500 +v -0.842220 1.083492 2.312500 +v 0.023917 1.442257 2.375000 +v 0.890054 1.801023 2.375000 +v -0.023918 1.557743 2.312500 +v 0.842219 1.916508 2.312500 +v -0.012193 1.438701 2.375000 +v 0.907293 1.255804 2.375000 +v 0.012193 1.561298 2.312500 +v 0.931679 1.378402 2.312500 +v 0.012193 1.561299 2.375000 +v -0.907293 1.744196 2.375000 +v -0.012193 1.438702 2.312500 +v -0.931680 1.621598 2.312500 +v -0.061299 1.512194 2.375000 +v -0.244197 0.592707 2.375000 +v 0.061299 1.487806 2.312500 +v -0.121598 0.568321 2.312500 +v 0.061299 1.487806 2.375000 +v 0.244196 2.407293 2.375000 +v -0.061299 1.512194 2.312500 +v 0.121598 2.431679 2.312500 +v -0.051967 1.465277 2.375000 +v 0.468880 0.685774 2.375000 +v 0.051967 1.534723 2.312500 +v 0.572814 0.755220 2.312500 +v 0.051967 1.534723 2.375000 +v -0.468881 2.314226 2.375000 +v -0.051967 1.465277 2.312500 +v -0.572814 2.244780 2.312500 +v -0.034723 1.551967 2.375000 +v -0.814226 1.031120 2.375000 +v 0.034723 1.448033 2.312500 +v -0.744780 0.927186 2.312500 +v 0.034723 1.448033 2.375000 +v 0.814226 1.968880 2.375000 +v -0.034723 1.551967 2.312500 +v 0.744779 2.072814 2.312500 +v -0.034723 1.448032 2.375000 +v 0.744779 0.927186 2.375000 +v 0.034723 1.551968 2.312500 +v 0.814225 1.031119 2.312500 +v 0.034723 1.551968 2.375000 +v -0.744780 2.072814 2.375000 +v -0.034724 1.448032 2.312500 +v -0.814226 1.968881 2.312500 +v -0.051967 1.534723 2.375000 +v -0.572814 0.755220 2.375000 +v 0.051967 1.465277 2.312500 +v -0.468881 0.685774 2.312500 +v 0.051967 1.465277 2.375000 +v 0.572814 2.244780 2.375000 +v -0.051967 1.534723 2.312500 +v 0.468880 2.314226 2.312500 +v -0.061299 1.487806 2.375000 +v 0.121598 0.568321 2.375000 +v 0.061299 1.512194 2.312500 +v 0.244196 0.592707 2.312500 +v 0.061299 1.512194 2.375000 +v -0.121598 2.431679 2.375000 +v -0.061299 1.487806 2.312500 +v -0.244197 2.407292 2.312500 +v -0.012193 1.561299 2.375000 +v -0.931680 1.378403 2.375000 +v 0.012193 1.438701 2.312500 +v -0.907293 1.255804 2.312500 +v 0.012193 1.438701 2.375000 +v 0.931679 1.621597 2.375000 +v -0.012193 1.561299 2.312500 +v 0.907293 1.744196 2.312500 +v 0.500000 1.562500 -2.500000 +v 0.937500 1.562500 -2.500000 +v 0.500000 1.437500 -2.375000 +v 0.937500 1.437500 -2.375000 +v -0.500000 1.437500 -2.500000 +v -0.937500 1.437500 -2.500000 +v -0.500000 1.562500 -2.375000 +v -0.937500 1.562500 -2.375000 +v 0.062500 1.000000 -2.500000 +v 0.062500 0.562500 -2.500000 +v -0.062500 1.000000 -2.375000 +v -0.062500 0.562500 -2.375000 +v -0.062500 2.000000 -2.500000 +v -0.062500 2.437500 -2.500000 +v 0.062500 2.000000 -2.375000 +v 0.062500 2.437500 -2.375000 +v 0.397747 1.190641 -2.500000 +v 0.707106 0.881282 -2.500000 +v 0.309359 1.102252 -2.375000 +v 0.618718 0.792893 -2.375000 +v -0.397748 1.809360 -2.500000 +v -0.707107 2.118719 -2.500000 +v -0.309359 1.897748 -2.375000 +v -0.618719 2.207107 -2.375000 +v -0.309360 1.102252 -2.500000 +v -0.618719 0.792893 -2.500000 +v -0.397748 1.190641 -2.375000 +v -0.707107 0.881282 -2.375000 +v 0.309359 1.897748 -2.500000 +v 0.618718 2.207107 -2.500000 +v 0.397747 1.809360 -2.375000 +v 0.707107 2.118718 -2.375000 +v 0.485857 1.366401 -2.500000 +v 0.890054 1.198977 -2.500000 +v 0.438022 1.250916 -2.375000 +v 0.842219 1.083492 -2.375000 +v -0.485858 1.633599 -2.500000 +v -0.890055 1.801023 -2.500000 +v -0.438022 1.749084 -2.375000 +v -0.842219 1.916509 -2.375000 +v -0.133600 1.014143 -2.500000 +v -0.301024 0.609945 -2.500000 +v -0.249085 1.061978 -2.375000 +v -0.416509 0.657781 -2.375000 +v 0.133599 1.985857 -2.500000 +v 0.301023 2.390055 -2.500000 +v 0.249084 1.938022 -2.375000 +v 0.416508 2.342219 -2.375000 +v 0.249084 1.061978 -2.500000 +v 0.416508 0.657781 -2.500000 +v 0.133599 1.014143 -2.375000 +v 0.301023 0.609945 -2.375000 +v -0.249084 1.938022 -2.500000 +v -0.416508 2.342219 -2.500000 +v -0.133599 1.985857 -2.375000 +v -0.301023 2.390055 -2.375000 +v -0.438022 1.250916 -2.500000 +v -0.842220 1.083492 -2.500000 +v -0.485858 1.366401 -2.375000 +v -0.890055 1.198977 -2.375000 +v 0.438022 1.749084 -2.500000 +v 0.842219 1.916508 -2.500000 +v 0.485857 1.633599 -2.375000 +v 0.890054 1.801023 -2.375000 +v 0.502586 1.463754 -2.500000 +v 0.931679 1.378402 -2.500000 +v 0.478199 1.341156 -2.375000 +v 0.907293 1.255804 -2.375000 +v -0.502586 1.536246 -2.500000 +v -0.931679 1.621598 -2.500000 +v -0.478200 1.658844 -2.375000 +v -0.907293 1.744197 -2.375000 +v -0.036246 0.997414 -2.500000 +v -0.121598 0.568321 -2.500000 +v -0.158845 1.021801 -2.375000 +v -0.244197 0.592707 -2.375000 +v 0.036246 2.002586 -2.500000 +v 0.121598 2.431679 -2.500000 +v 0.158844 1.978200 -2.375000 +v 0.244196 2.407293 -2.375000 +v 0.329752 1.118989 -2.500000 +v 0.572814 0.755220 -2.500000 +v 0.225818 1.049542 -2.375000 +v 0.468880 0.685774 -2.375000 +v -0.329752 1.881012 -2.500000 +v -0.572814 2.244780 -2.500000 +v -0.225818 1.950458 -2.375000 +v -0.468880 2.314226 -2.375000 +v -0.381012 1.170248 -2.500000 +v -0.744780 0.927186 -2.500000 +v -0.450458 1.274182 -2.375000 +v -0.814226 1.031120 -2.375000 +v 0.381012 1.829752 -2.500000 +v 0.744779 2.072814 -2.500000 +v 0.450458 1.725819 -2.375000 +v 0.814226 1.968880 -2.375000 +v 0.450458 1.274182 -2.500000 +v 0.814226 1.031120 -2.500000 +v 0.381011 1.170248 -2.375000 +v 0.744779 0.927186 -2.375000 +v -0.450458 1.725819 -2.500000 +v -0.814226 1.968881 -2.500000 +v -0.381012 1.829752 -2.375000 +v -0.744780 2.072814 -2.375000 +v -0.225819 1.049542 -2.500000 +v -0.468881 0.685774 -2.500000 +v -0.329752 1.118989 -2.375000 +v -0.572814 0.755221 -2.375000 +v 0.225818 1.950458 -2.500000 +v 0.468880 2.314226 -2.500000 +v 0.329752 1.881012 -2.375000 +v 0.572814 2.244780 -2.375000 +v 0.158844 1.021801 -2.500000 +v 0.244196 0.592707 -2.500000 +v 0.036246 0.997415 -2.375000 +v 0.121598 0.568321 -2.375000 +v -0.158844 1.978200 -2.500000 +v -0.244196 2.407293 -2.500000 +v -0.036246 2.002586 -2.375000 +v -0.121598 2.431680 -2.375000 +v -0.478200 1.341156 -2.500000 +v -0.907293 1.255804 -2.500000 +v -0.502586 1.463754 -2.375000 +v -0.931679 1.378402 -2.375000 +v 0.478199 1.658844 -2.500000 +v 0.907293 1.744196 -2.500000 +v 0.502586 1.536246 -2.375000 +v 0.931679 1.621598 -2.375000 +v 0.000000 1.875000 3.000000 +v -0.143507 1.846455 3.000000 +v -0.265165 1.765165 3.000000 +v -0.346455 1.643507 3.000000 +v -0.375000 1.500000 3.000000 +v -0.346455 1.356494 3.000000 +v -0.265165 1.234835 3.000000 +v -0.143507 1.153545 3.000000 +v 0.000000 1.125000 3.000000 +v 0.143506 1.153545 3.000000 +v 0.265165 1.234835 3.000000 +v 0.346455 1.356494 3.000000 +v 0.375000 1.500000 3.000000 +v 0.346455 1.643507 3.000000 +v 0.265165 1.765165 3.000000 +v 0.143506 1.846455 3.000000 +v 0.000000 1.640625 3.375000 +v -0.053815 1.629921 3.375000 +v -0.099437 1.599437 3.375000 +v -0.129920 1.553815 3.375000 +v -0.140625 1.500000 3.375000 +v -0.129920 1.446185 3.375000 +v -0.099437 1.400563 3.375000 +v -0.053815 1.370080 3.375000 +v 0.000000 1.359375 3.375000 +v 0.053815 1.370080 3.375000 +v 0.099437 1.400563 3.375000 +v 0.129920 1.446185 3.375000 +v 0.140625 1.500000 3.375000 +v 0.129920 1.553815 3.375000 +v 0.099437 1.599437 3.375000 +v 0.053815 1.629921 3.375000 +v 0.000000 1.500000 3.500000 +v 0.000000 1.875000 2.750000 +v -0.143507 1.846455 2.750000 +v -0.265165 1.765165 2.750000 +v -0.346455 1.643507 2.750000 +v -0.375000 1.500000 2.750000 +v -0.346455 1.356494 2.750000 +v -0.265165 1.234835 2.750000 +v -0.143507 1.153545 2.750000 +v 0.000000 1.125000 2.750000 +v 0.143506 1.153545 2.750000 +v 0.265165 1.234835 2.750000 +v 0.346455 1.356494 2.750000 +v 0.375000 1.500000 2.750000 +v 0.346455 1.643507 2.750000 +v 0.265165 1.765165 2.750000 +v 0.143506 1.846455 2.750000 +v 0.071753 1.673227 2.750000 +v 0.132582 1.632583 2.750000 +v 0.173227 1.571754 2.750000 +v 0.187500 1.500000 2.750000 +v 0.173227 1.428247 2.750000 +v 0.132582 1.367417 2.750000 +v 0.071753 1.326773 2.750000 +v 0.000000 1.312500 2.750000 +v -0.071753 1.326773 2.750000 +v -0.132583 1.367417 2.750000 +v -0.173227 1.428247 2.750000 +v -0.187500 1.500000 2.750000 +v -0.173227 1.571754 2.750000 +v -0.132583 1.632583 2.750000 +v -0.071753 1.673227 2.750000 +v 0.000000 1.687500 2.750000 +v 0.071753 1.673227 1.125000 +v 0.132582 1.632583 1.125000 +v 0.173227 1.571754 1.125000 +v 0.187500 1.500000 1.125000 +v 0.173227 1.428247 1.125000 +v 0.132582 1.367417 1.125000 +v 0.071753 1.326773 1.125000 +v 0.000000 1.312500 1.125000 +v -0.071753 1.326773 1.125000 +v -0.132583 1.367417 1.125000 +v -0.173227 1.428247 1.125000 +v -0.187500 1.500000 1.125000 +v -0.173227 1.571754 1.125000 +v -0.132583 1.632583 1.125000 +v -0.071753 1.673227 1.125000 +v 0.000000 1.687500 1.125000 +v -0.000000 1.375000 3.000000 +v 1.312500 1.375000 3.000000 +v -0.000000 1.625000 2.750000 +v 1.312500 1.625000 2.750000 +v -1.312500 1.625000 3.000000 +v -0.000000 1.500000 2.812500 +v -0.000000 1.437500 2.875000 +v 1.312500 1.437500 2.875000 +v 1.312500 1.500000 2.812500 +v -0.000000 1.625000 3.000000 +v -0.000000 1.375000 2.750000 +v -1.312500 1.375000 2.750000 +v -0.000000 1.500000 2.812500 +v -0.000000 1.562500 2.875000 +v -1.312500 1.562500 2.875000 +v -1.312500 1.500000 2.812500 +v -0.125000 1.500000 3.000000 +v -0.125000 0.187500 3.000000 +v 0.125000 1.500000 2.750000 +v 0.125000 0.187500 2.750000 +v 0.125000 2.812500 3.000000 +v -0.000000 1.500000 2.812500 +v -0.062500 1.500000 2.875000 +v -0.062500 0.187500 2.875000 +v -0.000000 0.187500 2.812500 +v 0.125000 1.500000 3.000000 +v -0.125000 1.500000 2.750000 +v -0.125000 2.812500 2.750000 +v -0.000000 1.500000 2.812500 +v 0.062500 1.500000 2.875000 +v 0.062500 2.812500 2.875000 +v 0.000000 2.812500 2.812500 +v -0.088388 1.411612 3.000000 +v 0.839689 0.483534 3.000000 +v 0.088388 1.588388 2.750000 +v 1.016466 0.660311 2.750000 +v -0.839689 2.516466 3.000000 +v -0.000000 1.500000 2.812500 +v -0.044194 1.455806 2.875000 +v 0.883883 0.527729 2.875000 +v 0.928078 0.571923 2.812500 +v 0.088388 1.588388 3.000000 +v -0.088388 1.411612 2.750000 +v -1.016466 2.339690 2.750000 +v -0.000000 1.500000 2.812500 +v 0.044194 1.544194 2.875000 +v -0.883883 2.472272 2.875000 +v -0.928078 2.428078 2.812500 +v -0.088388 1.588388 3.000000 +v -1.016466 0.660311 3.000000 +v 0.088388 1.411612 2.750000 +v -0.839689 0.483534 2.750000 +v 1.016466 2.339689 3.000000 +v -0.000000 1.500000 2.812500 +v -0.044194 1.544194 2.875000 +v -0.972272 0.616117 2.875000 +v -0.928078 0.571923 2.812500 +v 0.088388 1.411612 3.000000 +v -0.088388 1.588388 2.750000 +v 0.839689 2.516466 2.750000 +v -0.000000 1.500000 2.812500 +v 0.044194 1.455806 2.875000 +v 0.972272 2.383883 2.875000 +v 0.928078 2.428078 2.812500 +v -0.047836 1.384515 3.000000 +v 1.164756 0.882243 3.000000 +v 0.047835 1.615485 2.750000 +v 1.260427 1.113213 2.750000 +v -1.164757 2.117757 3.000000 +v -0.000000 1.500000 2.812500 +v -0.023918 1.442258 2.875000 +v 1.188674 0.939986 2.875000 +v 1.212592 0.997728 2.812500 +v 0.047835 1.615485 3.000000 +v -0.047836 1.384515 2.750000 +v -1.260427 1.886787 2.750000 +v -0.000000 1.500000 2.812500 +v 0.023918 1.557743 2.875000 +v -1.188674 2.060015 2.875000 +v -1.212592 2.002273 2.812500 +v -0.115485 1.547836 3.000000 +v -0.617757 0.335244 3.000000 +v 0.115485 1.452165 2.750000 +v -0.386787 0.239573 2.750000 +v 0.617757 2.664757 3.000000 +v -0.000000 1.500000 2.812500 +v -0.057743 1.523918 2.875000 +v -0.560015 0.311326 2.875000 +v -0.502272 0.287408 2.812500 +v 0.115485 1.452165 3.000000 +v -0.115485 1.547836 2.750000 +v 0.386787 2.760427 2.750000 +v -0.000000 1.500000 2.812500 +v 0.057742 1.476083 2.875000 +v 0.560015 2.688674 2.875000 +v 0.502272 2.712592 2.812500 +v -0.115485 1.452165 3.000000 +v 0.386787 0.239573 3.000000 +v 0.115485 1.547835 2.750000 +v 0.617757 0.335244 2.750000 +v -0.386787 2.760427 3.000000 +v -0.000000 1.500000 2.812500 +v -0.057743 1.476082 2.875000 +v 0.444529 0.263491 2.875000 +v 0.502272 0.287408 2.812500 +v 0.115485 1.547835 3.000000 +v -0.115485 1.452165 2.750000 +v -0.617757 2.664757 2.750000 +v -0.000000 1.500000 2.812500 +v 0.057742 1.523918 2.875000 +v -0.444529 2.736510 2.875000 +v -0.502272 2.712592 2.812500 +v -0.047836 1.615485 3.000000 +v -1.260427 1.113214 3.000000 +v 0.047835 1.384515 2.750000 +v -1.164757 0.882243 2.750000 +v 1.260427 1.886787 3.000000 +v -0.000000 1.500000 2.812500 +v -0.023918 1.557743 2.875000 +v -1.236510 1.055470 2.875000 +v -1.212592 0.997728 2.812500 +v 0.047835 1.384515 3.000000 +v -0.047836 1.615485 2.750000 +v 1.164756 2.117757 2.750000 +v -0.000000 1.500000 2.812500 +v 0.023918 1.442258 2.875000 +v 1.236509 1.944530 2.875000 +v 1.212592 2.002272 2.812500 +v -0.024386 1.377402 3.000000 +v 1.262894 1.121346 3.000000 +v 0.024386 1.622599 2.750000 +v 1.311667 1.366542 2.750000 +v -1.262895 1.878654 3.000000 +v -0.000000 1.500000 2.812500 +v -0.012193 1.438701 2.875000 +v 1.275087 1.182645 2.875000 +v 1.287281 1.243944 2.812500 +v 0.024386 1.622599 3.000000 +v -0.024386 1.377402 2.750000 +v -1.311667 1.633458 2.750000 +v -0.000000 1.500000 2.812500 +v 0.012193 1.561299 2.875000 +v -1.275088 1.817356 2.875000 +v -1.287281 1.756056 2.812500 +v -0.122598 1.524386 3.000000 +v -0.378654 0.237106 3.000000 +v 0.122598 1.475614 2.750000 +v -0.133458 0.188334 2.750000 +v 0.378654 2.762895 3.000000 +v -0.000000 1.500000 2.812500 +v -0.061299 1.512194 2.875000 +v -0.317355 0.224913 2.875000 +v -0.256056 0.212719 2.812500 +v 0.122598 1.475614 3.000000 +v -0.122598 1.524386 2.750000 +v 0.133458 2.811667 2.750000 +v -0.000000 1.500000 2.812500 +v 0.061299 1.487807 2.875000 +v 0.317355 2.775088 2.875000 +v 0.256056 2.787281 2.812500 +v -0.103934 1.430554 3.000000 +v 0.625252 0.339250 3.000000 +v 0.103934 1.569447 2.750000 +v 0.833120 0.478143 2.750000 +v -0.625252 2.660750 3.000000 +v -0.000000 1.500000 2.812500 +v -0.051967 1.465277 2.875000 +v 0.677219 0.373973 2.875000 +v 0.729186 0.408696 2.812500 +v 0.103934 1.569447 3.000000 +v -0.103934 1.430554 2.750000 +v -0.833120 2.521858 2.750000 +v -0.000000 1.500000 2.812500 +v 0.051967 1.534723 2.875000 +v -0.677219 2.626027 2.875000 +v -0.729186 2.591304 2.812500 +v -0.069446 1.603934 3.000000 +v -1.160750 0.874748 3.000000 +v 0.069446 1.396067 2.750000 +v -1.021858 0.666881 2.750000 +v 1.160750 2.125252 3.000000 +v -0.000000 1.500000 2.812500 +v -0.034723 1.551967 2.875000 +v -1.126027 0.822781 2.875000 +v -1.091304 0.770814 2.812500 +v 0.069446 1.396067 3.000000 +v -0.069446 1.603934 2.750000 +v 1.021858 2.333120 2.750000 +v -0.000000 1.500000 2.812500 +v 0.034723 1.448033 2.875000 +v 1.126027 2.177219 2.875000 +v 1.091304 2.229186 2.812500 +v -0.069446 1.396067 3.000000 +v 1.021857 0.666881 3.000000 +v 0.069446 1.603934 2.750000 +v 1.160750 0.874748 2.750000 +v -1.021858 2.333120 3.000000 +v -0.000000 1.500000 2.812500 +v -0.034723 1.448033 2.875000 +v 1.056581 0.718847 2.875000 +v 1.091304 0.770814 2.812500 +v 0.069446 1.603934 3.000000 +v -0.069446 1.396067 2.750000 +v -1.160750 2.125253 2.750000 +v -0.000000 1.500000 2.812500 +v 0.034723 1.551967 2.875000 +v -1.056581 2.281153 2.875000 +v -1.091304 2.229186 2.812500 +v -0.103934 1.569447 3.000000 +v -0.833120 0.478143 3.000000 +v 0.103934 1.430554 2.750000 +v -0.625252 0.339250 2.750000 +v 0.833120 2.521858 3.000000 +v -0.000000 1.500000 2.812500 +v -0.051967 1.534723 2.875000 +v -0.781153 0.443419 2.875000 +v -0.729186 0.408696 2.812500 +v 0.103934 1.430554 3.000000 +v -0.103934 1.569447 2.750000 +v 0.625252 2.660750 2.750000 +v -0.000000 1.500000 2.812500 +v 0.051967 1.465277 2.875000 +v 0.781153 2.556581 2.875000 +v 0.729186 2.591304 2.812500 +v -0.122598 1.475614 3.000000 +v 0.133458 0.188334 3.000000 +v 0.122598 1.524386 2.750000 +v 0.378654 0.237106 2.750000 +v -0.133458 2.811667 3.000000 +v -0.000000 1.500000 2.812500 +v -0.061299 1.487807 2.875000 +v 0.194757 0.200526 2.875000 +v 0.256056 0.212720 2.812500 +v 0.122598 1.524386 3.000000 +v -0.122598 1.475614 2.750000 +v -0.378654 2.762895 2.750000 +v -0.000000 1.500000 2.812500 +v 0.061299 1.512194 2.875000 +v -0.194757 2.799474 2.875000 +v -0.256056 2.787281 2.812500 +v -0.024386 1.622599 3.000000 +v -1.311667 1.366542 3.000000 +v 0.024386 1.377402 2.750000 +v -1.262895 1.121346 2.750000 +v 1.311667 1.633458 3.000000 +v -0.000000 1.500000 2.812500 +v -0.012193 1.561299 2.875000 +v -1.299474 1.305243 2.875000 +v -1.287281 1.243944 2.812500 +v 0.024386 1.377402 3.000000 +v -0.024386 1.622599 2.750000 +v 1.262894 1.878654 2.750000 +v -0.000000 1.500000 2.812500 +v 0.012193 1.438701 2.875000 +v 1.299474 1.694757 2.875000 +v 1.287280 1.756056 2.812500 +vt 0.827586 0.888889 +vt 0.770115 0.901961 +vt 0.770115 0.888889 +vt 0.827586 0.888889 +vt 0.770115 0.901961 +vt 0.770115 0.888889 +vt 0.827586 0.888889 +vt 0.770115 0.901961 +vt 0.770115 0.888889 +vt 0.827586 0.888889 +vt 0.770115 0.901961 +vt 0.770115 0.888889 +vt 0.770115 0.888889 +vt 0.827586 0.901961 +vt 0.770115 0.901961 +vt 0.827586 0.888889 +vt 0.770115 0.901961 +vt 0.770115 0.888889 +vt 0.827586 0.888889 +vt 0.770115 0.901961 +vt 0.770115 0.888889 +vt 0.770115 0.888889 +vt 0.827586 0.901961 +vt 0.770115 0.901961 +vt 0.827586 0.888889 +vt 0.770115 0.901961 +vt 0.770115 0.888889 +vt 0.827586 0.888889 +vt 0.770115 0.901961 +vt 0.770115 0.888889 +vt 0.827586 0.888889 +vt 0.770115 0.901961 +vt 0.770115 0.888889 +vt 0.827586 0.888889 +vt 0.770115 0.901961 +vt 0.770115 0.888889 +vt 0.770115 0.888889 +vt 0.827586 0.901961 +vt 0.770115 0.901961 +vt 0.770115 0.888889 +vt 0.827586 0.901961 +vt 0.770115 0.901961 +vt 0.827586 0.888889 +vt 0.770115 0.901961 +vt 0.770115 0.888889 +vt 0.827586 0.888889 +vt 0.770115 0.901961 +vt 0.770115 0.888889 +vt 0.827586 0.888889 +vt 0.770115 0.901961 +vt 0.770115 0.888889 +vt 0.827586 0.888889 +vt 0.770115 0.901961 +vt 0.770115 0.888889 +vt 0.827586 0.888889 +vt 0.770115 0.901961 +vt 0.770115 0.888889 +vt 0.827586 0.888889 +vt 0.770115 0.901961 +vt 0.770115 0.888889 +vt 0.770115 0.888889 +vt 0.827586 0.901961 +vt 0.770115 0.901961 +vt 0.770115 0.888889 +vt 0.827586 0.901961 +vt 0.770115 0.901961 +vt 0.770115 0.888889 +vt 0.827586 0.901961 +vt 0.770115 0.901961 +vt 0.770115 0.888889 +vt 0.827586 0.901961 +vt 0.770115 0.901961 +vt 0.770115 0.888889 +vt 0.827586 0.901961 +vt 0.770115 0.901961 +vt 0.770115 0.888889 +vt 0.827586 0.901961 +vt 0.770115 0.901961 +vt 0.827586 0.888889 +vt 0.770115 0.901961 +vt 0.770115 0.888889 +vt 0.827586 0.888889 +vt 0.770115 0.901961 +vt 0.770115 0.888889 +vt 0.770115 0.888889 +vt 0.827586 0.901961 +vt 0.770115 0.901961 +vt 0.770115 0.888889 +vt 0.827586 0.901961 +vt 0.770115 0.901961 +vt 0.827586 0.888889 +vt 0.770115 0.901961 +vt 0.770115 0.888889 +vt 0.827586 0.888889 +vt 0.770115 0.901961 +vt 0.770115 0.888889 +vt 0.796935 0.901961 +vt 0.770115 0.915033 +vt 0.770115 0.901961 +vt 0.796935 0.901961 +vt 0.770115 0.915033 +vt 0.770115 0.901961 +vt 0.796935 0.901961 +vt 0.770115 0.915033 +vt 0.770115 0.901961 +vt 0.796935 0.901961 +vt 0.770115 0.915033 +vt 0.770115 0.901961 +vt 0.770115 0.901961 +vt 0.796935 0.915033 +vt 0.770115 0.915033 +vt 0.796935 0.901961 +vt 0.770115 0.915033 +vt 0.770115 0.901961 +vt 0.796935 0.901961 +vt 0.770115 0.915033 +vt 0.770115 0.901961 +vt 0.796935 0.901961 +vt 0.770115 0.915033 +vt 0.770115 0.901961 +vt 0.796935 0.901961 +vt 0.770115 0.915033 +vt 0.770115 0.901961 +vt 0.796935 0.901961 +vt 0.770115 0.915033 +vt 0.770115 0.901961 +vt 0.770115 0.901961 +vt 0.796935 0.915033 +vt 0.770115 0.915033 +vt 0.796935 0.901961 +vt 0.770115 0.915033 +vt 0.770115 0.901961 +vt 0.770115 0.901961 +vt 0.796935 0.915033 +vt 0.770115 0.915033 +vt 0.796935 0.901961 +vt 0.770115 0.915033 +vt 0.770115 0.901961 +vt 0.796935 0.901961 +vt 0.770115 0.915033 +vt 0.770115 0.901961 +vt 0.796935 0.901961 +vt 0.770115 0.915033 +vt 0.770115 0.901961 +vt 0.770115 0.901961 +vt 0.796935 0.915033 +vt 0.770115 0.915033 +vt 0.796935 0.901961 +vt 0.770115 0.915033 +vt 0.770115 0.901961 +vt 0.770115 0.901961 +vt 0.796935 0.915033 +vt 0.770115 0.915033 +vt 0.796935 0.901961 +vt 0.770115 0.915033 +vt 0.770115 0.901961 +vt 0.770115 0.901961 +vt 0.796935 0.915033 +vt 0.770115 0.915033 +vt 0.796935 0.901961 +vt 0.770115 0.915033 +vt 0.770115 0.901961 +vt 0.796935 0.901961 +vt 0.770115 0.915033 +vt 0.770115 0.901961 +vt 0.796935 0.901961 +vt 0.770115 0.915033 +vt 0.770115 0.901961 +vt 0.796935 0.901961 +vt 0.770115 0.915033 +vt 0.770115 0.901961 +vt 0.770115 0.901961 +vt 0.796935 0.915033 +vt 0.770115 0.915033 +vt 0.796935 0.901961 +vt 0.770115 0.915033 +vt 0.770115 0.901961 +vt 0.796935 0.901961 +vt 0.770115 0.915033 +vt 0.770115 0.901961 +vt 0.770115 0.901961 +vt 0.796935 0.915033 +vt 0.770115 0.915033 +vt 0.796935 0.901961 +vt 0.770115 0.915033 +vt 0.770115 0.901961 +vt 0.796935 0.901961 +vt 0.770115 0.915033 +vt 0.770115 0.901961 +vt 0.796935 0.901961 +vt 0.770115 0.915033 +vt 0.770115 0.901961 +vt 0.988506 0.437909 +vt 1.000000 0.450980 +vt 0.988506 0.457516 +vt 0.988506 0.594771 +vt 1.000000 0.607843 +vt 0.988506 0.614379 +vt 1.000000 0.424837 +vt 1.000000 0.431373 +vt 0.988506 0.555556 +vt 1.000000 0.568627 +vt 0.988506 0.575163 +vt 1.000000 0.588235 +vt 0.988506 0.712418 +vt 1.000000 0.732026 +vt 0.988506 0.732026 +vt 0.988506 0.535948 +vt 1.000000 0.549020 +vt 1.000000 0.699346 +vt 1.000000 0.712418 +vt 1.000000 0.522876 +vt 1.000000 0.529412 +vt 0.988506 0.673203 +vt 1.000000 0.692810 +vt 0.988506 0.692810 +vt 0.988506 0.516340 +vt 1.000000 0.503268 +vt 1.000000 0.509804 +vt 1.000000 0.660131 +vt 1.000000 0.666667 +vt 0.988506 0.477124 +vt 1.000000 0.490196 +vt 0.988506 0.496732 +vt 0.988506 0.653595 +vt 1.000000 0.640523 +vt 1.000000 0.647059 +vt 1.000000 0.470588 +vt 1.000000 0.627451 +vt 0.988506 0.633987 +vt 0.827586 0.901961 +vt 0.827586 0.901961 +vt 0.827586 0.901961 +vt 0.827586 0.901961 +vt 0.827586 0.888889 +vt 0.827586 0.901961 +vt 0.827586 0.901961 +vt 0.827586 0.888889 +vt 0.827586 0.901961 +vt 0.827586 0.901961 +vt 0.827586 0.901961 +vt 0.827586 0.901961 +vt 0.827586 0.888889 +vt 0.827586 0.888889 +vt 0.827586 0.901961 +vt 0.827586 0.901961 +vt 0.827586 0.901961 +vt 0.827586 0.901961 +vt 0.827586 0.901961 +vt 0.827586 0.901961 +vt 0.827586 0.888889 +vt 0.827586 0.888889 +vt 0.827586 0.888889 +vt 0.827586 0.888889 +vt 0.827586 0.888889 +vt 0.827586 0.888889 +vt 0.827586 0.901961 +vt 0.827586 0.901961 +vt 0.827586 0.888889 +vt 0.827586 0.888889 +vt 0.827586 0.901961 +vt 0.827586 0.901961 +vt 0.796935 0.915033 +vt 0.796935 0.915033 +vt 0.796935 0.915033 +vt 0.796935 0.915033 +vt 0.796935 0.901961 +vt 0.796935 0.915033 +vt 0.796935 0.915033 +vt 0.796935 0.915033 +vt 0.796935 0.915033 +vt 0.796935 0.915033 +vt 0.796935 0.901961 +vt 0.796935 0.915033 +vt 0.796935 0.901961 +vt 0.796935 0.915033 +vt 0.796935 0.915033 +vt 0.796935 0.915033 +vt 0.796935 0.901961 +vt 0.796935 0.915033 +vt 0.796935 0.901961 +vt 0.796935 0.915033 +vt 0.796935 0.901961 +vt 0.796935 0.915033 +vt 0.796935 0.915033 +vt 0.796935 0.915033 +vt 0.796935 0.915033 +vt 0.796935 0.901961 +vt 0.796935 0.915033 +vt 0.796935 0.915033 +vt 0.796935 0.901961 +vt 0.796935 0.915033 +vt 0.796935 0.915033 +vt 0.796935 0.915033 +vt 1.000000 0.444444 +vt 1.000000 0.601307 +vt 0.988506 0.418301 +vt 1.000000 0.562092 +vt 1.000000 0.581699 +vt 1.000000 0.718954 +vt 1.000000 0.542484 +vt 1.000000 0.679739 +vt 1.000000 0.483660 +vt 1.000000 0.464052 +vt 1.000000 0.620915 +vt 0.769834 0.862660 +vt 0.850676 0.876239 +vt 0.769834 0.876238 +vt 0.850676 0.862660 +vt 0.769834 0.876238 +vt 0.769834 0.862660 +vt 0.850676 0.876239 +vt 0.769834 0.882501 +vt 0.850676 0.882501 +vt 0.769834 0.882501 +vt 0.850676 0.882501 +vt 0.769834 0.888726 +vt 0.769834 0.888726 +vt 0.850676 0.862660 +vt 0.769834 0.876239 +vt 0.769834 0.862660 +vt 0.850676 0.862660 +vt 0.769834 0.876239 +vt 0.769834 0.862660 +vt 0.850676 0.876239 +vt 0.769834 0.882501 +vt 0.850676 0.876239 +vt 0.769834 0.882501 +vt 0.850676 0.882501 +vt 0.769834 0.888726 +vt 0.850676 0.882501 +vt 0.769834 0.888726 +vt 0.850676 0.862660 +vt 0.769834 0.876239 +vt 0.769834 0.862660 +vt 0.850676 0.862660 +vt 0.769834 0.876239 +vt 0.769834 0.862660 +vt 0.850676 0.876239 +vt 0.769834 0.882501 +vt 0.850676 0.876239 +vt 0.769834 0.882501 +vt 0.850676 0.882501 +vt 0.769834 0.888726 +vt 0.850676 0.882501 +vt 0.769834 0.888726 +vt 0.769834 0.862660 +vt 0.850676 0.876239 +vt 0.769834 0.876239 +vt 0.850676 0.862660 +vt 0.769834 0.876239 +vt 0.769834 0.862660 +vt 0.850676 0.882501 +vt 0.769834 0.882501 +vt 0.769834 0.882501 +vt 0.769834 0.888726 +vt 0.850677 0.882501 +vt 0.769834 0.888726 +vt 0.769834 0.862660 +vt 0.850677 0.876239 +vt 0.769834 0.876239 +vt 0.850677 0.862660 +vt 0.769834 0.876238 +vt 0.769834 0.862660 +vt 0.850676 0.882501 +vt 0.769834 0.882501 +vt 0.769834 0.882501 +vt 0.850676 0.888727 +vt 0.769834 0.888726 +vt 0.850677 0.888726 +vt 0.769834 0.888726 +vt 0.850676 0.862660 +vt 0.769834 0.876239 +vt 0.769834 0.862660 +vt 0.850677 0.862660 +vt 0.769834 0.876239 +vt 0.769834 0.862660 +vt 0.850677 0.876239 +vt 0.769834 0.882501 +vt 0.850676 0.882501 +vt 0.769834 0.882501 +vt 0.850676 0.882501 +vt 0.769834 0.888726 +vt 0.769834 0.888726 +vt 0.850676 0.862660 +vt 0.769834 0.876239 +vt 0.769834 0.862660 +vt 0.850676 0.862660 +vt 0.769834 0.876239 +vt 0.769834 0.862660 +vt 0.850676 0.876239 +vt 0.769834 0.882501 +vt 0.850676 0.882501 +vt 0.769834 0.882501 +vt 0.850676 0.882501 +vt 0.769834 0.888726 +vt 0.769834 0.888726 +vt 0.769834 0.862660 +vt 0.850676 0.876239 +vt 0.769834 0.876239 +vt 0.850677 0.862660 +vt 0.769834 0.876239 +vt 0.769834 0.862660 +vt 0.850677 0.882501 +vt 0.769834 0.882501 +vt 0.850676 0.882501 +vt 0.769834 0.882501 +vt 0.769834 0.888726 +vt 0.769834 0.888726 +vt 0.850676 0.862660 +vt 0.769834 0.876239 +vt 0.769834 0.862660 +vt 0.850676 0.862660 +vt 0.769834 0.876239 +vt 0.769834 0.862660 +vt 0.850676 0.882501 +vt 0.769834 0.882501 +vt 0.850676 0.876239 +vt 0.769834 0.882501 +vt 0.769834 0.888726 +vt 0.850676 0.882501 +vt 0.769834 0.888726 +vt 0.850676 0.862660 +vt 0.769834 0.876239 +vt 0.769834 0.862660 +vt 0.769834 0.862660 +vt 0.850676 0.876239 +vt 0.769834 0.876239 +vt 0.769834 0.882501 +vt 0.850676 0.882501 +vt 0.769834 0.882501 +vt 0.850676 0.888726 +vt 0.769834 0.888726 +vt 0.769834 0.888726 +vt 0.769834 0.862660 +vt 0.850676 0.876239 +vt 0.769834 0.876239 +vt 0.769834 0.862660 +vt 0.850676 0.876239 +vt 0.769834 0.876238 +vt 0.769834 0.882501 +vt 0.769834 0.882501 +vt 0.850676 0.888726 +vt 0.769834 0.888726 +vt 0.850676 0.882501 +vt 0.769834 0.888726 +vt 0.769834 0.862660 +vt 0.850676 0.876239 +vt 0.769834 0.876239 +vt 0.850676 0.862660 +vt 0.769834 0.876239 +vt 0.769834 0.862660 +vt 0.850676 0.882501 +vt 0.769834 0.882501 +vt 0.769834 0.882501 +vt 0.850676 0.888726 +vt 0.769834 0.888726 +vt 0.850676 0.882501 +vt 0.769834 0.888727 +vt 0.769834 0.862660 +vt 0.850676 0.876239 +vt 0.769834 0.876239 +vt 0.850676 0.862660 +vt 0.769834 0.876239 +vt 0.769834 0.862660 +vt 0.850676 0.882501 +vt 0.769834 0.882501 +vt 0.769834 0.882501 +vt 0.769834 0.888726 +vt 0.850676 0.882501 +vt 0.769834 0.888726 +vt 0.850676 0.862660 +vt 0.769834 0.876239 +vt 0.769834 0.862660 +vt 0.850676 0.862660 +vt 0.769834 0.876239 +vt 0.769834 0.862660 +vt 0.850676 0.876239 +vt 0.769834 0.882501 +vt 0.850676 0.882501 +vt 0.769834 0.882501 +vt 0.850676 0.882501 +vt 0.769834 0.888726 +vt 0.769834 0.888726 +vt 0.850676 0.862660 +vt 0.769834 0.876239 +vt 0.769834 0.862660 +vt 0.769834 0.862660 +vt 0.850677 0.876239 +vt 0.769834 0.876239 +vt 0.850676 0.882501 +vt 0.769834 0.882501 +vt 0.850676 0.876239 +vt 0.769834 0.882501 +vt 0.769834 0.888726 +vt 0.850676 0.882501 +vt 0.769834 0.888726 +vt 0.850677 0.862660 +vt 0.769834 0.876239 +vt 0.769834 0.862660 +vt 0.850677 0.862660 +vt 0.769834 0.876239 +vt 0.769834 0.862660 +vt 0.850677 0.876239 +vt 0.769834 0.882501 +vt 0.850677 0.876239 +vt 0.769834 0.882501 +vt 0.850677 0.882501 +vt 0.769834 0.888726 +vt 0.850677 0.882501 +vt 0.769834 0.888726 +vt 0.973180 0.477124 +vt 0.950192 0.490196 +vt 0.950192 0.483660 +vt 0.973180 0.673203 +vt 0.950192 0.660131 +vt 0.973180 0.653595 +vt 0.973180 0.516340 +vt 0.950192 0.503268 +vt 0.973180 0.496732 +vt 0.973180 0.692810 +vt 0.950192 0.679739 +vt 0.950192 0.529412 +vt 0.950192 0.522876 +vt 0.973180 0.712418 +vt 0.950192 0.699346 +vt 0.973180 0.535948 +vt 0.950192 0.549020 +vt 0.950192 0.542484 +vt 0.950192 0.725490 +vt 0.950192 0.718954 +vt 0.973180 0.575163 +vt 0.950192 0.588235 +vt 0.950192 0.581699 +vt 0.950192 0.562092 +vt 0.973180 0.555556 +vt 0.973180 0.437909 +vt 0.950192 0.424837 +vt 0.973180 0.418301 +vt 0.973180 0.614379 +vt 0.950192 0.601307 +vt 0.973180 0.594771 +vt 0.973180 0.457516 +vt 0.950192 0.444444 +vt 0.973180 0.633987 +vt 0.950192 0.620915 +vt 0.950192 0.470588 +vt 0.950192 0.464052 +vt 0.950192 0.647059 +vt 0.950192 0.640523 +vt 0.938697 0.640523 +vt 0.950192 0.627451 +vt 0.938697 0.620915 +vt 0.950192 0.607843 +vt 0.938697 0.601307 +vt 0.938697 0.581699 +vt 0.950192 0.568627 +vt 0.938697 0.562092 +vt 0.938697 0.542484 +vt 0.938697 0.522876 +vt 0.950192 0.509804 +vt 0.938697 0.503268 +vt 0.938697 0.483660 +vt 0.938697 0.464052 +vt 0.950192 0.450980 +vt 0.938697 0.444444 +vt 0.950192 0.431373 +vt 0.938697 0.424837 +vt 0.938697 0.718954 +vt 0.950192 0.705882 +vt 0.938697 0.699346 +vt 0.950192 0.686275 +vt 0.938697 0.679739 +vt 0.950192 0.666667 +vt 0.938697 0.660131 +vt 0.973180 0.732026 +vt 0.670498 0.862745 +vt 0.770115 0.869281 +vt 0.670498 0.869281 +vt 0.670498 0.941176 +vt 0.770115 0.947712 +vt 0.670498 0.947712 +vt 0.670498 0.921569 +vt 0.770115 0.928105 +vt 0.670498 0.928105 +vt 0.670498 0.888889 +vt 0.770115 0.895425 +vt 0.670498 0.895425 +vt 0.670498 0.960784 +vt 0.770115 0.967320 +vt 0.670498 0.967320 +vt 0.670498 0.934641 +vt 0.770115 0.941176 +vt 0.670498 0.915033 +vt 0.770115 0.921569 +vt 0.670498 0.882353 +vt 0.770115 0.888889 +vt 0.670498 0.908497 +vt 0.770115 0.915033 +vt 0.670498 0.954248 +vt 0.770115 0.960784 +vt 0.670498 0.901961 +vt 0.770115 0.908497 +vt 0.670498 0.875817 +vt 0.770115 0.882353 +vt 0.770115 0.954248 +vt 0.770115 0.875817 +vt 0.770115 0.934641 +vt 0.770115 0.901961 +vt 0.769834 0.862660 +vt 0.850676 0.876239 +vt 0.850676 0.862660 +vt 0.769834 0.876238 +vt 0.850676 0.862660 +vt 0.769834 0.862660 +vt 0.769834 0.882501 +vt 0.850676 0.876239 +vt 0.769834 0.876238 +vt 0.850676 0.882501 +vt 0.769834 0.888726 +vt 0.850676 0.882501 +vt 0.769834 0.888726 +vt 0.769834 0.882501 +vt 0.769834 0.876239 +vt 0.850676 0.862660 +vt 0.769834 0.862660 +vt 0.769834 0.876239 +vt 0.850676 0.862660 +vt 0.769834 0.862660 +vt 0.769834 0.882501 +vt 0.850676 0.876239 +vt 0.769834 0.882501 +vt 0.850676 0.876239 +vt 0.769834 0.888726 +vt 0.850676 0.882501 +vt 0.769834 0.888726 +vt 0.850676 0.882501 +vt 0.769834 0.876239 +vt 0.850676 0.862660 +vt 0.769834 0.862660 +vt 0.769834 0.876239 +vt 0.850676 0.862660 +vt 0.769834 0.862660 +vt 0.769834 0.882501 +vt 0.850676 0.876239 +vt 0.850676 0.882501 +vt 0.850676 0.876239 +vt 0.769834 0.888726 +vt 0.850676 0.882501 +vt 0.769834 0.888726 +vt 0.769834 0.882501 +vt 0.769834 0.876239 +vt 0.850676 0.862660 +vt 0.769834 0.862660 +vt 0.769834 0.876239 +vt 0.850676 0.862660 +vt 0.769834 0.862660 +vt 0.850676 0.882501 +vt 0.850676 0.876239 +vt 0.769834 0.882501 +vt 0.850676 0.876239 +vt 0.769834 0.888726 +vt 0.769834 0.882501 +vt 0.769834 0.888726 +vt 0.850677 0.882501 +vt 0.769834 0.876239 +vt 0.850677 0.862660 +vt 0.769834 0.862660 +vt 0.769834 0.876238 +vt 0.850677 0.862660 +vt 0.769834 0.862660 +vt 0.769834 0.882501 +vt 0.850677 0.876239 +vt 0.850677 0.882501 +vt 0.850677 0.876239 +vt 0.769834 0.888726 +vt 0.850676 0.882501 +vt 0.769834 0.882501 +vt 0.850677 0.888726 +vt 0.769834 0.876239 +vt 0.850676 0.862660 +vt 0.769834 0.862660 +vt 0.769834 0.876239 +vt 0.850677 0.862660 +vt 0.769834 0.862660 +vt 0.769834 0.882501 +vt 0.850677 0.876239 +vt 0.850676 0.882501 +vt 0.850676 0.876239 +vt 0.769834 0.888726 +vt 0.850676 0.882501 +vt 0.769834 0.888726 +vt 0.769834 0.882501 +vt 0.769834 0.876239 +vt 0.850676 0.862660 +vt 0.769834 0.862660 +vt 0.769834 0.876239 +vt 0.850676 0.862660 +vt 0.769834 0.862660 +vt 0.769834 0.882501 +vt 0.850676 0.876239 +vt 0.850676 0.882501 +vt 0.850676 0.876239 +vt 0.769834 0.888726 +vt 0.850676 0.882501 +vt 0.769834 0.888726 +vt 0.769834 0.882501 +vt 0.769834 0.876239 +vt 0.850676 0.862660 +vt 0.769834 0.862660 +vt 0.769834 0.876239 +vt 0.850677 0.862660 +vt 0.769834 0.862660 +vt 0.769834 0.882501 +vt 0.850677 0.876239 +vt 0.850676 0.882501 +vt 0.850676 0.876239 +vt 0.769834 0.888726 +vt 0.850677 0.882501 +vt 0.769834 0.882501 +vt 0.850676 0.888726 +vt 0.769834 0.862660 +vt 0.850676 0.876239 +vt 0.850676 0.862660 +vt 0.769834 0.862660 +vt 0.850676 0.876239 +vt 0.850676 0.862660 +vt 0.769834 0.882501 +vt 0.769834 0.876239 +vt 0.769834 0.876239 +vt 0.850676 0.882501 +vt 0.769834 0.888726 +vt 0.850676 0.882501 +vt 0.769834 0.888726 +vt 0.769834 0.882501 +vt 0.769834 0.862660 +vt 0.850676 0.876239 +vt 0.850676 0.862660 +vt 0.769834 0.862660 +vt 0.850676 0.876239 +vt 0.850676 0.862660 +vt 0.769834 0.882501 +vt 0.769834 0.876239 +vt 0.769834 0.876239 +vt 0.850676 0.882501 +vt 0.850676 0.888726 +vt 0.850676 0.882501 +vt 0.769834 0.888726 +vt 0.769834 0.882501 +vt 0.769834 0.862660 +vt 0.850676 0.876239 +vt 0.850676 0.862660 +vt 0.769834 0.876238 +vt 0.850676 0.862660 +vt 0.769834 0.862660 +vt 0.769834 0.882501 +vt 0.850676 0.876239 +vt 0.769834 0.882501 +vt 0.769834 0.876239 +vt 0.850676 0.888726 +vt 0.850676 0.882501 +vt 0.769834 0.888726 +vt 0.850676 0.882501 +vt 0.769834 0.876239 +vt 0.850676 0.862660 +vt 0.769834 0.862660 +vt 0.769834 0.876239 +vt 0.850676 0.862660 +vt 0.769834 0.862660 +vt 0.769834 0.882501 +vt 0.850676 0.876239 +vt 0.850676 0.882501 +vt 0.850676 0.876239 +vt 0.769834 0.888726 +vt 0.850676 0.882501 +vt 0.769834 0.882501 +vt 0.850676 0.888726 +vt 0.769834 0.862660 +vt 0.850676 0.876239 +vt 0.850676 0.862660 +vt 0.769834 0.876239 +vt 0.850676 0.862660 +vt 0.769834 0.862660 +vt 0.769834 0.882501 +vt 0.850676 0.876239 +vt 0.769834 0.882501 +vt 0.769834 0.876239 +vt 0.850676 0.888726 +vt 0.850676 0.882501 +vt 0.769834 0.888726 +vt 0.850676 0.882501 +vt 0.769834 0.876239 +vt 0.850676 0.862660 +vt 0.769834 0.862660 +vt 0.769834 0.876239 +vt 0.850676 0.862660 +vt 0.769834 0.862660 +vt 0.769834 0.882501 +vt 0.850676 0.876239 +vt 0.850676 0.882501 +vt 0.850676 0.876239 +vt 0.850676 0.888726 +vt 0.850676 0.882501 +vt 0.769834 0.888726 +vt 0.769834 0.882501 +vt 0.769834 0.876239 +vt 0.850676 0.862660 +vt 0.769834 0.862660 +vt 0.769834 0.876239 +vt 0.850677 0.862660 +vt 0.769834 0.862660 +vt 0.850676 0.882501 +vt 0.850677 0.876239 +vt 0.769834 0.882501 +vt 0.850676 0.876239 +vt 0.769834 0.882501 +vt 0.850676 0.888726 +vt 0.769834 0.888726 +vt 0.850676 0.882501 +vt 0.769834 0.862660 +vt 0.850677 0.876239 +vt 0.850677 0.862660 +vt 0.769834 0.862660 +vt 0.850677 0.876239 +vt 0.850677 0.862660 +vt 0.769834 0.882501 +vt 0.769834 0.876239 +vt 0.769834 0.876239 +vt 0.850677 0.882501 +vt 0.769834 0.888726 +vt 0.850677 0.882501 +vt 0.769834 0.888726 +vt 0.769834 0.882501 +vt 0.850676 0.862660 +vt 0.850676 0.888727 +vt 0.850676 0.888726 +vt 0.850676 0.888726 +vt 0.850676 0.888726 +vt 0.850676 0.888726 +vt 0.850676 0.888726 +vt 0.850676 0.862660 +vt 0.850676 0.876239 +vt 0.850676 0.888726 +vt 0.850676 0.888726 +vt 0.850677 0.862660 +vt 0.850677 0.876239 +vt 0.850677 0.882501 +vt 0.850676 0.876239 +vt 0.850676 0.888726 +vt 0.850676 0.888726 +vt 0.850676 0.876239 +vt 0.850676 0.888726 +vt 0.850676 0.888726 +vt 0.850676 0.862660 +vt 0.850677 0.876239 +vt 0.850677 0.888726 +vt 0.850676 0.888726 +vt 0.850676 0.876239 +vt 0.850676 0.888727 +vt 0.850676 0.888726 +vt 0.850676 0.876239 +vt 0.850676 0.862660 +vt 0.850676 0.882501 +vt 0.850676 0.888726 +vt 0.850676 0.862660 +vt 0.850676 0.862660 +vt 0.850676 0.882501 +vt 0.850676 0.888726 +vt 0.850676 0.862660 +vt 0.850676 0.876239 +vt 0.850676 0.888726 +vt 0.850676 0.862660 +vt 0.850676 0.876239 +vt 0.850676 0.888726 +vt 0.850676 0.888726 +vt 0.850676 0.876239 +vt 0.850676 0.888726 +vt 0.850676 0.888726 +vt 0.850677 0.862660 +vt 0.850676 0.888726 +vt 0.850676 0.888726 +vt 0.850677 0.888727 +vt 0.850677 0.888727 +vt 0.770115 0.862745 +vt 0.850676 0.888727 +vt 0.850676 0.888726 +vt 0.850676 0.888726 +vt 0.850676 0.888726 +vt 0.850676 0.888726 +vt 0.850676 0.888726 +vt 0.850676 0.888726 +vt 0.850676 0.888726 +vt 0.850676 0.888727 +vt 0.769834 0.888726 +vt 0.850676 0.888726 +vt 0.850676 0.888726 +vt 0.850676 0.888726 +vt 0.850676 0.888726 +vt 0.850677 0.888726 +vt 0.769834 0.888726 +vt 0.850676 0.888727 +vt 0.850676 0.888726 +vt 0.769834 0.888726 +vt 0.850676 0.888726 +vt 0.769834 0.888726 +vt 0.850676 0.888726 +vt 0.850676 0.888726 +vt 0.769834 0.888727 +vt 0.769834 0.888726 +vt 0.850676 0.888726 +vt 0.769834 0.888726 +vt 0.850676 0.888726 +vt 0.769834 0.888726 +vt 0.850676 0.888726 +vt 0.850677 0.888727 +vt 0.850677 0.888727 +vn 0.0000 0.4472 0.8944 +vn 0.0000 -0.4472 0.8944 +vn 0.4472 -0.0000 0.8944 +vn -0.4472 0.0000 0.8944 +vn 0.3162 0.3162 0.8944 +vn -0.3162 -0.3162 0.8944 +vn 0.3162 -0.3162 0.8944 +vn -0.3162 0.3162 0.8944 +vn 0.1711 0.4132 0.8944 +vn -0.1711 -0.4132 0.8944 +vn 0.4132 -0.1711 0.8944 +vn -0.4132 0.1711 0.8944 +vn 0.4132 0.1711 0.8944 +vn -0.4132 -0.1711 0.8944 +vn 0.1711 -0.4132 0.8944 +vn -0.1711 0.4132 0.8944 +vn 0.0872 0.4386 0.8944 +vn -0.0872 -0.4386 0.8944 +vn 0.4386 -0.0872 0.8944 +vn -0.4386 0.0872 0.8944 +vn 0.3718 0.2485 0.8944 +vn -0.3718 -0.2485 0.8944 +vn 0.2485 -0.3718 0.8944 +vn -0.2485 0.3718 0.8944 +vn 0.2485 0.3718 0.8944 +vn -0.2485 -0.3718 0.8944 +vn 0.3718 -0.2485 0.8944 +vn -0.3718 0.2485 0.8944 +vn 0.4386 0.0872 0.8944 +vn -0.4386 -0.0872 0.8944 +vn 0.0872 -0.4386 0.8944 +vn -0.0872 0.4386 0.8944 +vn 0.0000 -0.7071 -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.5000 -0.5000 -0.7071 +vn 0.5000 0.5000 -0.7071 +vn -0.5000 0.5000 -0.7071 +vn 0.5000 -0.5000 -0.7071 +vn -0.2706 -0.6533 -0.7071 +vn 0.2706 0.6533 -0.7071 +vn -0.6533 0.2706 -0.7071 +vn 0.6533 -0.2706 -0.7071 +vn -0.6533 -0.2706 -0.7071 +vn 0.6533 0.2706 -0.7071 +vn -0.2706 0.6533 -0.7071 +vn 0.2706 -0.6533 -0.7071 +vn -0.1379 -0.6935 -0.7071 +vn 0.1379 0.6935 -0.7071 +vn -0.6935 0.1379 -0.7071 +vn 0.6935 -0.1379 -0.7071 +vn -0.5879 -0.3928 -0.7071 +vn 0.5879 0.3928 -0.7071 +vn -0.3928 0.5879 -0.7071 +vn 0.3928 -0.5879 -0.7071 +vn -0.3928 -0.5879 -0.7071 +vn 0.3928 0.5879 -0.7071 +vn -0.5879 0.3928 -0.7071 +vn 0.5879 -0.3928 -0.7071 +vn -0.6935 -0.1379 -0.7071 +vn 0.6935 0.1379 -0.7071 +vn -0.1380 0.6935 -0.7071 +vn 0.1379 -0.6935 -0.7071 +vn 0.0000 0.0000 -1.0000 +vn 0.1380 0.6935 -0.7071 +vn 0.6935 -0.1380 -0.7071 +vn -0.1379 0.6935 -0.7071 +vn 0.0000 -0.8944 0.4472 +vn 0.0000 -0.8112 0.5847 +vn 0.0000 0.8944 0.4472 +vn 0.0000 0.8112 0.5847 +vn 0.0000 0.5847 0.8112 +vn 0.0000 -0.5847 0.8112 +vn -0.8944 0.0000 0.4472 +vn -0.8112 0.0000 0.5847 +vn 0.8944 0.0000 0.4472 +vn 0.8112 0.0000 0.5847 +vn 0.5847 0.0000 0.8112 +vn -0.5847 0.0000 0.8112 +vn -0.6324 -0.6324 0.4472 +vn -0.5736 -0.5736 0.5847 +vn 0.6324 0.6324 0.4472 +vn 0.5736 0.5736 0.5847 +vn 0.4134 0.4134 0.8112 +vn -0.4134 -0.4134 0.8112 +vn -0.6324 0.6324 0.4472 +vn -0.5736 0.5736 0.5847 +vn 0.6324 -0.6324 0.4472 +vn 0.5736 -0.5736 0.5847 +vn 0.4134 -0.4134 0.8112 +vn -0.4134 0.4134 0.8112 +vn -0.3423 -0.8263 0.4472 +vn -0.3104 -0.7495 0.5847 +vn 0.3423 0.8263 0.4472 +vn 0.3104 0.7495 0.5847 +vn 0.2237 0.5402 0.8112 +vn -0.2237 -0.5402 0.8112 +vn -0.8263 0.3423 0.4472 +vn -0.7495 0.3104 0.5847 +vn 0.8263 -0.3423 0.4472 +vn 0.7495 -0.3104 0.5847 +vn 0.5402 -0.2237 0.8112 +vn -0.5402 0.2237 0.8112 +vn -0.8263 -0.3423 0.4472 +vn -0.7495 -0.3104 0.5847 +vn 0.8263 0.3423 0.4472 +vn 0.7495 0.3104 0.5847 +vn 0.5402 0.2237 0.8112 +vn -0.5402 -0.2237 0.8112 +vn -0.3423 0.8263 0.4472 +vn -0.3104 0.7495 0.5847 +vn 0.3423 -0.8263 0.4472 +vn 0.3104 -0.7495 0.5847 +vn 0.2237 -0.5402 0.8112 +vn -0.2237 0.5402 0.8112 +vn -0.1745 -0.8772 0.4472 +vn -0.1582 -0.7956 0.5847 +vn 0.1745 0.8772 0.4472 +vn 0.1582 0.7956 0.5847 +vn 0.1140 0.5735 0.8112 +vn -0.1140 -0.5735 0.8112 +vn -0.8772 0.1745 0.4472 +vn -0.7956 0.1582 0.5847 +vn 0.8772 -0.1745 0.4472 +vn 0.7956 -0.1582 0.5847 +vn 0.5735 -0.1140 0.8112 +vn -0.5735 0.1140 0.8112 +vn -0.7437 -0.4969 0.4472 +vn -0.6745 -0.4507 0.5847 +vn 0.7437 0.4969 0.4472 +vn 0.6745 0.4507 0.5847 +vn 0.4862 0.3248 0.8112 +vn -0.4862 -0.3248 0.8112 +vn -0.4969 0.7437 0.4472 +vn -0.4507 0.6745 0.5847 +vn 0.4969 -0.7437 0.4472 +vn 0.4507 -0.6745 0.5847 +vn 0.3248 -0.4862 0.8112 +vn -0.3248 0.4862 0.8112 +vn -0.4969 -0.7437 0.4472 +vn -0.4507 -0.6745 0.5847 +vn 0.4969 0.7437 0.4472 +vn 0.4507 0.6745 0.5847 +vn 0.3248 0.4862 0.8112 +vn -0.3248 -0.4862 0.8112 +vn -0.7437 0.4969 0.4472 +vn -0.6745 0.4507 0.5847 +vn 0.7437 -0.4969 0.4472 +vn 0.6745 -0.4507 0.5847 +vn 0.4862 -0.3248 0.8112 +vn -0.4862 0.3248 0.8112 +vn -0.8772 -0.1745 0.4472 +vn -0.7956 -0.1582 0.5847 +vn 0.8772 0.1745 0.4472 +vn 0.7956 0.1582 0.5847 +vn 0.5735 0.1140 0.8112 +vn -0.5735 -0.1140 0.8112 +vn -0.1745 0.8772 0.4472 +vn -0.1582 0.7956 0.5847 +vn 0.1745 -0.8772 0.4472 +vn 0.1582 -0.7956 0.5847 +vn 0.1140 -0.5735 0.8112 +vn -0.1140 0.5735 0.8112 +vn 0.8903 -0.3688 0.2670 +vn 0.7711 0.0000 0.6366 +vn 0.7124 -0.2951 0.6366 +vn -0.8903 -0.3688 0.2670 +vn -0.7711 0.0000 0.6366 +vn -0.9637 0.0000 0.2670 +vn 0.8903 0.3688 0.2670 +vn 0.9637 0.0000 0.2670 +vn -0.6814 -0.6814 0.2670 +vn -0.7124 -0.2951 0.6366 +vn 0.5453 0.5453 0.6366 +vn 0.7124 0.2951 0.6366 +vn -0.3688 -0.8903 0.2670 +vn -0.5453 -0.5453 0.6366 +vn 0.6814 0.6814 0.2670 +vn 0.2951 0.7124 0.6366 +vn 0.0000 -0.7711 0.6366 +vn -0.2951 -0.7124 0.6366 +vn 0.0000 0.9637 0.2670 +vn -0.2951 0.7124 0.6366 +vn 0.0000 0.7711 0.6366 +vn 0.3688 0.8903 0.2670 +vn 0.3688 -0.8903 0.2670 +vn 0.0000 -0.9637 0.2670 +vn -0.6814 0.6814 0.2670 +vn -0.3688 0.8903 0.2670 +vn 0.6814 -0.6814 0.2670 +vn 0.2951 -0.7124 0.6366 +vn -0.8903 0.3688 0.2670 +vn -0.5453 0.5453 0.6366 +vn 0.5453 -0.5453 0.6366 +vn -0.7124 0.2951 0.6366 +vn 0.0000 0.0000 1.0000 +vn 0.7462 0.0000 -0.6657 +vn -0.6894 -0.2855 -0.6657 +vn 0.6894 0.2855 -0.6657 +vn -0.5276 -0.5276 -0.6657 +vn 0.5276 0.5276 -0.6657 +vn -0.2855 -0.6894 -0.6657 +vn 0.2855 0.6894 -0.6657 +vn 0.0000 -0.7462 -0.6657 +vn -0.2855 0.6894 -0.6657 +vn 0.0000 0.7462 -0.6657 +vn 0.2855 -0.6894 -0.6657 +vn -0.5276 0.5276 -0.6657 +vn 0.5276 -0.5276 -0.6657 +vn -0.6894 0.2855 -0.6657 +vn 0.6894 -0.2855 -0.6657 +vn -0.7462 0.0000 -0.6657 +vn 0.0000 -0.6571 -0.7537 +vn 0.3827 -0.9239 0.0000 +vn 0.2515 -0.6071 -0.7537 +vn -0.6571 0.0000 -0.7537 +vn -0.9239 -0.3827 0.0000 +vn -0.6071 -0.2515 -0.7537 +vn -0.2515 0.6071 -0.7537 +vn -0.7071 0.7071 0.0000 +vn -0.4646 0.4646 -0.7537 +vn 0.6571 0.0000 -0.7537 +vn 0.9239 0.3827 0.0000 +vn 0.6071 0.2515 -0.7537 +vn -0.2515 -0.6071 -0.7537 +vn 0.0000 -1.0000 0.0000 +vn -0.6071 0.2515 -0.7537 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.6571 -0.7537 +vn -0.3827 0.9239 0.0000 +vn 0.6071 -0.2515 -0.7537 +vn 1.0000 0.0000 0.0000 +vn 0.2515 0.6071 -0.7537 +vn 0.0000 1.0000 0.0000 +vn -0.4646 -0.4646 -0.7537 +vn -0.3827 -0.9239 0.0000 +vn 0.4646 0.4646 -0.7537 +vn 0.3827 0.9239 0.0000 +vn 0.4646 -0.4646 -0.7537 +vn 0.9239 -0.3827 0.0000 +vn -0.7071 -0.7071 0.0000 +vn 0.7071 -0.7071 0.0000 +vn -0.9239 0.3827 0.0000 +vn 0.7071 0.7071 0.0000 +vn 0.0000 0.8944 -0.4472 +vn 0.0000 0.8112 -0.5847 +vn 0.0000 -0.8112 -0.5847 +vn 0.0000 -0.8944 -0.4472 +vn 0.0000 -0.5847 -0.8112 +vn 0.0000 0.5847 -0.8112 +vn 0.0000 -0.4472 -0.8944 +vn 0.0000 0.4472 -0.8944 +vn 0.8112 0.0000 -0.5847 +vn 0.8944 0.0000 -0.4472 +vn -0.8112 0.0000 -0.5847 +vn -0.8944 0.0000 -0.4472 +vn -0.5847 0.0000 -0.8112 +vn 0.5847 0.0000 -0.8112 +vn -0.4472 0.0000 -0.8944 +vn 0.4472 0.0000 -0.8944 +vn 0.5736 0.5736 -0.5847 +vn 0.6324 0.6324 -0.4472 +vn -0.5736 -0.5736 -0.5847 +vn -0.6324 -0.6324 -0.4472 +vn -0.4134 -0.4134 -0.8112 +vn 0.4134 0.4134 -0.8112 +vn -0.3162 -0.3162 -0.8944 +vn 0.3162 0.3162 -0.8944 +vn 0.5736 -0.5736 -0.5847 +vn 0.6324 -0.6324 -0.4472 +vn -0.5736 0.5736 -0.5847 +vn -0.6324 0.6324 -0.4472 +vn -0.4134 0.4134 -0.8112 +vn 0.4134 -0.4134 -0.8112 +vn -0.3162 0.3162 -0.8944 +vn 0.3162 -0.3162 -0.8944 +vn 0.3104 0.7495 -0.5847 +vn 0.3423 0.8263 -0.4472 +vn -0.3104 -0.7495 -0.5847 +vn -0.3423 -0.8263 -0.4472 +vn -0.2237 -0.5402 -0.8112 +vn 0.2237 0.5402 -0.8112 +vn -0.1711 -0.4132 -0.8944 +vn 0.1711 0.4132 -0.8944 +vn 0.7495 -0.3104 -0.5847 +vn 0.8263 -0.3423 -0.4472 +vn -0.7495 0.3104 -0.5847 +vn -0.8263 0.3423 -0.4472 +vn -0.5402 0.2237 -0.8112 +vn 0.5402 -0.2237 -0.8112 +vn -0.4132 0.1711 -0.8944 +vn 0.4132 -0.1711 -0.8944 +vn 0.7495 0.3104 -0.5847 +vn 0.8263 0.3423 -0.4472 +vn -0.7495 -0.3104 -0.5847 +vn -0.8263 -0.3423 -0.4472 +vn -0.5402 -0.2237 -0.8112 +vn 0.5402 0.2237 -0.8112 +vn -0.4132 -0.1711 -0.8944 +vn 0.4132 0.1711 -0.8944 +vn 0.3104 -0.7495 -0.5847 +vn 0.3423 -0.8263 -0.4472 +vn -0.3104 0.7495 -0.5847 +vn -0.3423 0.8263 -0.4472 +vn -0.2237 0.5402 -0.8112 +vn 0.2237 -0.5402 -0.8112 +vn -0.1711 0.4132 -0.8944 +vn 0.1711 -0.4132 -0.8944 +vn 0.1745 0.8772 -0.4472 +vn 0.1582 0.7956 -0.5847 +vn -0.1745 -0.8772 -0.4472 +vn -0.1582 -0.7956 -0.5847 +vn -0.1140 -0.5735 -0.8112 +vn 0.1140 0.5735 -0.8112 +vn -0.0872 -0.4386 -0.8944 +vn 0.0872 0.4386 -0.8944 +vn 0.8772 -0.1745 -0.4472 +vn 0.7956 -0.1582 -0.5847 +vn -0.8772 0.1745 -0.4472 +vn -0.7956 0.1582 -0.5847 +vn -0.5735 0.1140 -0.8112 +vn 0.5735 -0.1140 -0.8112 +vn -0.4386 0.0872 -0.8944 +vn 0.4386 -0.0872 -0.8944 +vn 0.7437 0.4969 -0.4472 +vn 0.6745 0.4507 -0.5847 +vn -0.6745 -0.4507 -0.5847 +vn -0.7437 -0.4969 -0.4472 +vn -0.4862 -0.3248 -0.8112 +vn 0.4862 0.3248 -0.8112 +vn -0.3718 -0.2485 -0.8944 +vn 0.3718 0.2485 -0.8944 +vn 0.4507 -0.6745 -0.5847 +vn 0.4969 -0.7437 -0.4472 +vn -0.4507 0.6745 -0.5847 +vn -0.4969 0.7437 -0.4472 +vn -0.3248 0.4862 -0.8112 +vn 0.3248 -0.4862 -0.8112 +vn -0.2485 0.3718 -0.8944 +vn 0.2485 -0.3718 -0.8944 +vn 0.4969 0.7437 -0.4472 +vn 0.4507 0.6745 -0.5847 +vn -0.4507 -0.6745 -0.5847 +vn -0.4969 -0.7437 -0.4472 +vn -0.3248 -0.4862 -0.8112 +vn 0.3248 0.4862 -0.8112 +vn -0.2485 -0.3718 -0.8944 +vn 0.2485 0.3718 -0.8944 +vn 0.6745 -0.4507 -0.5847 +vn 0.7437 -0.4969 -0.4472 +vn -0.6745 0.4507 -0.5847 +vn -0.7437 0.4969 -0.4472 +vn -0.4862 0.3248 -0.8112 +vn 0.4862 -0.3248 -0.8112 +vn -0.3718 0.2485 -0.8944 +vn 0.3718 -0.2485 -0.8944 +vn 0.7956 0.1582 -0.5847 +vn 0.8772 0.1745 -0.4472 +vn -0.7956 -0.1582 -0.5847 +vn -0.8772 -0.1745 -0.4472 +vn -0.5735 -0.1140 -0.8112 +vn 0.5735 0.1140 -0.8112 +vn -0.4386 -0.0872 -0.8944 +vn 0.4386 0.0872 -0.8944 +vn 0.1745 -0.8772 -0.4472 +vn 0.1582 -0.7956 -0.5847 +vn -0.1745 0.8772 -0.4472 +vn -0.1582 0.7956 -0.5847 +vn -0.1140 0.5735 -0.8112 +vn 0.1140 -0.5735 -0.8112 +vn -0.0872 0.4386 -0.8944 +vn 0.0872 -0.4386 -0.8944 +s off +f 258/1/1 259/2/1 257/3/1 +f 262/4/2 263/5/2 261/6/2 +f 266/7/3 267/8/3 265/9/3 +f 270/10/4 271/11/4 269/12/4 +f 273/13/5 276/14/5 275/15/5 +f 278/16/6 279/17/6 277/18/6 +f 282/19/7 283/20/7 281/21/7 +f 285/22/8 288/23/8 287/24/8 +f 290/25/9 291/26/9 289/27/9 +f 294/28/10 295/29/10 293/30/10 +f 298/31/11 299/32/11 297/33/11 +f 302/34/12 303/35/12 301/36/12 +f 305/37/13 308/38/13 307/39/13 +f 309/40/14 312/41/14 311/42/14 +f 314/43/15 315/44/15 313/45/15 +f 318/46/16 319/47/16 317/48/16 +f 322/49/17 323/50/17 321/51/17 +f 326/52/18 327/53/18 325/54/18 +f 330/55/19 331/56/19 329/57/19 +f 334/58/20 335/59/20 333/60/20 +f 337/61/21 340/62/21 339/63/21 +f 341/64/22 344/65/22 343/66/22 +f 345/67/23 348/68/23 347/69/23 +f 349/70/24 352/71/24 351/72/24 +f 353/73/25 356/74/25 355/75/25 +f 357/76/26 360/77/26 359/78/26 +f 362/79/27 363/80/27 361/81/27 +f 366/82/28 367/83/28 365/84/28 +f 369/85/29 372/86/29 371/87/29 +f 373/88/30 376/89/30 375/90/30 +f 378/91/31 379/92/31 377/93/31 +f 382/94/32 383/95/32 381/96/32 +f 386/97/33 387/98/33 385/99/33 +f 390/100/34 391/101/34 389/102/34 +f 394/103/35 395/104/35 393/105/35 +f 398/106/36 399/107/36 397/108/36 +f 401/109/37 404/110/37 403/111/37 +f 406/112/38 407/113/38 405/114/38 +f 410/115/39 411/116/39 409/117/39 +f 414/118/40 415/119/40 413/120/40 +f 418/121/41 419/122/41 417/123/41 +f 422/124/42 423/125/42 421/126/42 +f 425/127/43 428/128/43 427/129/43 +f 430/130/44 431/131/44 429/132/44 +f 433/133/45 436/134/45 435/135/45 +f 438/136/46 439/137/46 437/138/46 +f 442/139/47 443/140/47 441/141/47 +f 446/142/48 447/143/48 445/144/48 +f 449/145/49 452/146/49 451/147/49 +f 454/148/50 455/149/50 453/150/50 +f 457/151/51 460/152/51 459/153/51 +f 462/154/52 463/155/52 461/156/52 +f 465/157/53 468/158/53 467/159/53 +f 470/160/54 471/161/54 469/162/54 +f 474/163/55 475/164/55 473/165/55 +f 478/166/56 479/167/56 477/168/56 +f 482/169/57 483/170/57 481/171/57 +f 485/172/58 488/173/58 487/174/58 +f 490/175/59 491/176/59 489/177/59 +f 494/178/60 495/179/60 493/180/60 +f 497/181/61 500/182/61 499/183/61 +f 502/184/62 503/185/62 501/186/62 +f 506/187/63 507/188/63 505/189/63 +f 510/190/64 511/191/64 509/192/64 +f 555/193/65 567/194/65 556/195/65 +f 547/196/65 575/197/65 548/198/65 +f 555/193/65 569/199/65 568/200/65 +f 561/201/65 577/202/65 546/203/65 +f 546/203/65 576/204/65 547/196/65 +f 553/205/65 569/206/65 554/207/65 +f 560/208/65 562/209/65 561/201/65 +f 553/205/65 571/210/65 570/211/65 +f 560/208/65 564/212/65 563/213/65 +f 551/214/65 571/215/65 552/216/65 +f 559/217/65 565/218/65 564/219/65 +f 551/214/65 573/220/65 572/221/65 +f 557/222/65 565/223/65 558/224/65 +f 550/225/65 574/226/65 573/227/65 +f 556/195/65 566/228/65 557/222/65 +f 548/198/65 574/229/65 549/230/65 +f 258/1/1 260/231/1 259/2/1 +f 262/4/2 264/232/2 263/5/2 +f 266/7/3 268/233/3 267/8/3 +f 270/10/4 272/234/4 271/11/4 +f 273/13/5 274/235/5 276/14/5 +f 278/16/6 280/236/6 279/17/6 +f 282/19/7 284/237/7 283/20/7 +f 285/22/8 286/238/8 288/23/8 +f 290/25/9 292/239/9 291/26/9 +f 294/28/10 296/240/10 295/29/10 +f 298/31/11 300/241/11 299/32/11 +f 302/34/12 304/242/12 303/35/12 +f 305/37/13 306/243/13 308/38/13 +f 309/40/14 310/244/14 312/41/14 +f 314/43/15 316/245/15 315/44/15 +f 318/46/16 320/246/16 319/47/16 +f 322/49/17 324/247/17 323/50/17 +f 326/52/18 328/248/18 327/53/18 +f 330/55/19 332/249/19 331/56/19 +f 334/58/20 336/250/20 335/59/20 +f 337/61/21 338/251/21 340/62/21 +f 341/64/22 342/252/22 344/65/22 +f 345/67/23 346/253/23 348/68/23 +f 349/70/24 350/254/24 352/71/24 +f 353/73/25 354/255/25 356/74/25 +f 357/76/26 358/256/26 360/77/26 +f 362/79/27 364/257/27 363/80/27 +f 366/82/28 368/258/28 367/83/28 +f 369/85/29 370/259/29 372/86/29 +f 373/88/30 374/260/30 376/89/30 +f 378/91/31 380/261/31 379/92/31 +f 382/94/32 384/262/32 383/95/32 +f 386/97/33 388/263/33 387/98/33 +f 390/100/34 392/264/34 391/101/34 +f 394/103/35 396/265/35 395/104/35 +f 398/106/36 400/266/36 399/107/36 +f 401/109/37 402/267/37 404/110/37 +f 406/112/38 408/268/38 407/113/38 +f 410/115/39 412/269/39 411/116/39 +f 414/118/40 416/270/40 415/119/40 +f 418/121/41 420/271/41 419/122/41 +f 422/124/42 424/272/42 423/125/42 +f 425/127/43 426/273/43 428/128/43 +f 430/130/44 432/274/44 431/131/44 +f 433/133/45 434/275/45 436/134/45 +f 438/136/46 440/276/46 439/137/46 +f 442/139/47 444/277/47 443/140/47 +f 446/142/48 448/278/48 447/143/48 +f 449/145/49 450/279/49 452/146/49 +f 454/148/66 456/280/66 455/149/66 +f 457/151/51 458/281/51 460/152/51 +f 462/154/67 464/282/67 463/155/67 +f 465/157/53 466/283/53 468/158/53 +f 470/160/54 472/284/54 471/161/54 +f 474/163/55 476/285/55 475/164/55 +f 478/166/56 480/286/56 479/167/56 +f 482/169/57 484/287/57 483/170/57 +f 485/172/58 486/288/58 488/173/58 +f 490/175/59 492/289/59 491/176/59 +f 494/178/60 496/290/60 495/179/60 +f 497/181/61 498/291/61 500/182/61 +f 502/184/62 504/292/62 503/185/62 +f 506/187/68 508/293/68 507/188/68 +f 510/190/64 512/294/64 511/191/64 +f 555/193/65 568/295/65 567/194/65 +f 547/196/65 576/296/65 575/197/65 +f 555/193/65 554/297/65 569/199/65 +f 561/201/65 562/298/65 577/202/65 +f 546/203/65 577/299/65 576/204/65 +f 553/205/65 570/300/65 569/206/65 +f 560/208/65 563/301/65 562/209/65 +f 553/205/65 552/216/65 571/210/65 +f 560/208/65 559/217/65 564/212/65 +f 551/214/65 572/302/65 571/215/65 +f 559/217/65 558/224/65 565/218/65 +f 551/214/65 550/225/65 573/220/65 +f 557/222/65 566/303/65 565/223/65 +f 550/225/65 549/230/65 574/226/65 +f 556/195/65 567/304/65 566/228/65 +f 548/198/65 575/305/65 574/229/65 +s 1 +f 10/306/69 15/307/70 14/308/70 +f 2/309/71 7/310/72 1/311/71 +f 8/312/72 6/313/73 7/310/72 +f 14/308/70 16/314/74 13/315/74 +f 9/316/73 3/317/1 6/313/73 +f 16/314/74 11/318/2 13/315/74 +f 21/319/75 30/320/76 26/321/75 +f 18/322/77 23/323/78 17/324/77 +f 24/325/78 22/326/79 23/323/78 +f 31/327/76 29/328/80 30/320/76 +f 25/329/79 19/330/3 22/326/79 +f 32/331/80 27/332/4 29/328/80 +f 37/333/81 46/334/82 42/335/81 +f 34/336/83 39/337/84 33/338/83 +f 40/339/84 38/340/85 39/337/84 +f 47/341/82 45/342/86 46/334/82 +f 41/343/85 35/344/5 38/340/85 +f 48/345/86 43/346/6 45/342/86 +f 58/347/87 63/348/88 62/349/88 +f 50/350/89 55/351/90 49/352/89 +f 55/351/90 57/353/91 54/354/91 +f 63/348/88 61/355/92 62/349/88 +f 57/353/91 51/356/7 54/354/91 +f 64/357/92 59/358/8 61/355/92 +f 74/359/93 79/360/94 78/361/94 +f 66/362/95 71/363/96 65/364/95 +f 71/363/96 73/365/97 70/366/97 +f 79/360/94 77/367/98 78/361/94 +f 70/366/97 68/368/9 67/369/9 +f 77/367/98 76/370/10 75/371/10 +f 85/372/99 94/373/100 90/374/99 +f 82/375/101 87/376/102 81/377/101 +f 88/378/102 86/379/103 87/376/102 +f 94/373/100 96/380/104 93/381/104 +f 89/382/103 83/383/11 86/379/103 +f 96/380/104 91/384/12 93/381/104 +f 101/385/105 110/386/106 106/387/105 +f 98/388/107 103/389/108 97/390/107 +f 104/391/108 102/392/109 103/389/108 +f 110/386/106 112/393/110 109/394/110 +f 105/395/109 99/396/13 102/392/109 +f 112/393/110 107/397/14 109/394/110 +f 122/398/111 127/399/112 126/400/112 +f 114/401/113 119/402/114 113/403/113 +f 119/402/114 121/404/115 118/405/115 +f 126/400/112 128/406/116 125/407/116 +f 121/404/115 115/408/15 118/405/115 +f 128/406/116 123/409/16 125/407/116 +f 133/410/117 142/411/118 138/412/117 +f 130/413/119 135/414/120 129/415/119 +f 135/414/120 137/416/121 134/417/121 +f 143/418/118 141/419/122 142/411/118 +f 137/416/121 131/420/17 134/417/121 +f 144/421/122 139/422/18 141/419/122 +f 149/423/123 158/424/124 154/425/123 +f 145/426/125 152/427/126 151/428/126 +f 152/427/126 150/429/127 151/428/126 +f 158/424/124 160/430/128 157/431/128 +f 150/429/127 148/432/19 147/433/19 +f 160/430/128 155/434/20 157/431/128 +f 170/435/129 175/436/130 174/437/130 +f 161/438/131 168/439/132 167/440/132 +f 168/439/132 166/441/133 167/440/132 +f 175/436/130 173/442/134 174/437/130 +f 166/441/133 164/443/21 163/444/21 +f 176/445/134 171/446/22 173/442/134 +f 186/447/135 191/448/136 190/449/136 +f 178/450/137 183/451/138 177/452/137 +f 183/451/138 185/453/139 182/454/139 +f 191/448/136 189/455/140 190/449/136 +f 182/454/139 180/456/23 179/457/23 +f 192/458/140 187/459/24 189/455/140 +f 202/460/141 207/461/142 206/462/142 +f 194/463/143 199/464/144 193/465/143 +f 199/464/144 201/466/145 198/467/145 +f 207/461/142 205/468/146 206/462/142 +f 201/466/145 195/469/25 198/467/145 +f 208/470/146 203/471/26 205/468/146 +f 213/472/147 222/473/148 218/474/147 +f 210/475/149 215/476/150 209/477/149 +f 216/478/150 214/479/151 215/476/150 +f 222/473/148 224/480/152 221/481/152 +f 217/482/151 211/483/27 214/479/151 +f 224/480/152 219/484/28 221/481/152 +f 229/485/153 238/486/154 234/487/153 +f 225/488/155 232/489/156 231/490/156 +f 231/490/156 233/491/157 230/492/157 +f 239/493/154 237/494/158 238/486/154 +f 233/491/157 227/495/29 230/492/157 +f 240/496/158 235/497/30 237/494/158 +f 245/498/159 254/499/160 250/500/159 +f 242/501/161 247/502/162 241/503/161 +f 248/504/162 246/505/163 247/502/162 +f 255/506/160 253/507/164 254/499/160 +f 249/508/163 243/509/31 246/505/163 +f 256/510/164 251/511/32 253/507/164 +f 524/512/165 541/513/166 540/514/167 +f 518/515/168 533/516/169 517/517/170 +f 526/518/171 541/519/166 525/520/172 +f 519/521/173 534/522/174 518/515/168 +f 526/518/171 543/523/175 542/524/176 +f 520/525/177 535/526/178 519/521/173 +f 527/527/179 544/528/180 543/529/175 +f 520/525/177 537/530/181 536/531/182 +f 513/532/183 530/533/184 529/534/185 +f 513/532/183 544/535/180 528/536/186 +f 522/537/187 537/538/181 521/539/188 +f 515/540/189 530/541/184 514/542/190 +f 523/543/191 538/544/192 522/537/187 +f 516/545/193 531/546/194 515/540/189 +f 523/543/191 540/547/167 539/548/195 +f 516/545/193 533/549/169 532/550/196 +f 532/550/196 533/549/169 545/551/197 +f 531/546/194 532/552/196 545/553/197 +f 530/541/184 531/554/194 545/555/197 +f 529/534/185 530/533/184 545/556/197 +f 544/535/180 529/557/185 545/558/197 +f 543/529/175 544/528/180 545/559/197 +f 542/524/176 543/523/175 545/560/197 +f 541/519/166 542/561/176 545/562/197 +f 540/514/167 541/513/166 545/563/197 +f 539/548/195 540/547/167 545/564/197 +f 538/544/192 539/565/195 545/566/197 +f 537/538/181 538/567/192 545/568/197 +f 536/531/182 537/530/181 545/569/197 +f 535/526/178 536/570/182 545/571/197 +f 534/522/174 535/572/178 545/573/197 +f 533/516/169 534/574/174 545/575/197 +f 524/512/165 558/224/198 525/520/172 +f 517/517/170 551/214/199 518/515/168 +f 525/520/172 559/217/200 526/518/171 +f 518/515/168 552/216/201 519/521/173 +f 526/518/171 560/208/202 527/527/179 +f 519/521/173 553/205/203 520/525/177 +f 527/527/179 561/201/204 528/536/186 +f 520/525/177 554/207/205 521/576/188 +f 513/532/183 547/196/206 514/542/190 +f 528/536/186 546/203/207 513/532/183 +f 521/539/188 555/193/208 522/537/187 +f 514/542/190 548/198/209 515/540/189 +f 522/537/187 556/195/210 523/543/191 +f 515/540/189 549/230/211 516/545/193 +f 523/543/191 557/222/212 524/512/165 +f 516/545/193 550/225/213 517/517/170 +f 569/577/214 584/578/215 568/579/216 +f 573/580/217 588/581/218 572/582/219 +f 576/583/220 591/584/221 575/585/222 +f 565/586/223 580/587/224 564/588/225 +f 570/589/226 585/590/227 569/591/214 +f 574/592/228 589/593/229 573/580/217 +f 577/594/230 592/595/231 576/583/220 +f 566/596/232 581/597/233 565/586/223 +f 562/598/234 593/599/235 577/594/230 +f 571/600/236 586/601/237 570/589/226 +f 563/602/238 578/603/239 562/598/234 +f 567/604/240 582/605/241 566/596/232 +f 572/582/219 587/606/242 571/600/236 +f 568/579/216 583/607/243 567/604/240 +f 575/585/222 590/608/244 574/592/228 +f 564/588/225 579/609/245 563/602/238 +f 603/610/246 608/611/247 598/612/246 +f 600/613/248 595/614/249 594/615/249 +f 599/616/250 601/617/248 600/613/248 +f 607/618/247 609/619/251 608/611/247 +f 596/620/252 602/621/250 599/616/250 +f 604/622/253 609/619/251 606/623/251 +f 623/624/254 614/625/255 619/626/255 +f 616/627/256 611/628/257 610/629/257 +f 615/630/258 617/631/256 616/627/256 +f 622/632/259 624/633/254 623/624/254 +f 612/634/260 618/635/258 615/630/258 +f 620/636/261 625/637/259 622/632/259 +f 639/638/262 630/639/263 635/640/263 +f 632/641/264 627/642/265 626/643/265 +f 631/644/266 633/645/264 632/641/264 +f 639/638/262 641/646/267 640/647/262 +f 628/648/268 634/649/266 631/644/266 +f 636/650/269 641/646/267 638/651/267 +f 655/652/270 646/653/271 651/654/271 +f 648/655/272 643/656/273 642/657/273 +f 648/655/272 650/658/274 649/659/272 +f 654/660/275 656/661/270 655/652/270 +f 644/662/276 650/658/274 647/663/274 +f 652/664/277 657/665/275 654/660/275 +f 671/666/278 662/667/279 667/668/279 +f 664/669/280 659/670/281 658/671/281 +f 663/672/282 665/673/280 664/669/280 +f 671/666/278 673/674/283 672/675/278 +f 660/676/284 666/677/282 663/672/282 +f 670/678/283 669/679/285 673/674/283 +f 687/680/286 678/681/287 683/682/287 +f 680/683/288 675/684/289 674/685/289 +f 679/686/290 681/687/288 680/683/288 +f 687/680/286 689/688/291 688/689/286 +f 676/690/292 682/691/290 679/686/290 +f 684/692/293 689/688/291 686/693/291 +f 703/694/294 694/695/295 699/696/295 +f 696/697/296 691/698/297 690/699/297 +f 695/700/298 697/701/296 696/697/296 +f 703/694/294 705/702/299 704/703/294 +f 692/704/300 698/705/298 695/700/298 +f 700/706/301 705/702/299 702/707/299 +f 719/708/302 710/709/303 715/710/303 +f 712/711/304 707/712/305 706/713/305 +f 711/714/306 713/715/304 712/711/304 +f 719/708/302 721/716/307 720/717/302 +f 708/718/308 714/719/306 711/714/306 +f 718/720/307 717/721/309 721/716/307 +f 731/722/310 736/723/311 726/724/310 +f 722/725/312 729/726/313 723/727/312 +f 727/728/314 729/726/313 728/729/313 +f 735/730/311 737/731/315 736/723/311 +f 724/732/316 730/733/314 727/728/314 +f 732/734/317 737/731/315 734/735/315 +f 747/736/318 752/737/319 742/738/318 +f 738/739/320 745/740/321 739/741/320 +f 743/742/322 745/740/321 744/743/321 +f 751/744/319 753/745/323 752/737/319 +f 743/742/322 741/746/324 746/747/322 +f 748/748/325 753/745/323 750/749/323 +f 763/750/326 768/751/327 758/752/326 +f 760/753/328 755/754/329 754/755/329 +f 759/756/330 761/757/328 760/753/328 +f 766/758/331 768/751/327 767/759/327 +f 759/756/330 757/760/332 762/761/330 +f 764/762/333 769/763/331 766/758/331 +f 783/764/334 774/765/335 779/766/335 +f 776/767/336 771/768/337 770/769/337 +f 775/770/338 777/771/336 776/767/336 +f 783/764/334 785/772/339 784/773/334 +f 772/774/340 778/775/338 775/770/338 +f 782/776/339 781/777/341 785/772/339 +f 795/778/342 800/779/343 790/780/342 +f 792/781/344 787/782/345 786/783/345 +f 791/784/346 793/785/344 792/781/344 +f 798/786/347 800/779/343 799/787/343 +f 791/784/346 789/788/348 794/789/346 +f 796/790/349 801/791/347 798/786/347 +f 815/792/350 806/793/351 811/794/351 +f 808/795/352 803/796/353 802/797/353 +f 807/798/354 809/799/352 808/795/352 +f 815/792/350 817/800/355 816/801/350 +f 807/798/354 805/802/356 810/803/354 +f 812/804/357 817/800/355 814/805/355 +f 831/806/358 822/807/359 827/808/359 +f 824/809/360 819/810/361 818/811/361 +f 824/809/360 826/812/362 825/813/360 +f 830/814/363 832/815/358 831/806/358 +f 823/816/362 821/817/364 826/812/362 +f 828/818/365 833/819/363 830/814/363 +f 843/820/366 848/821/367 838/822/366 +f 834/823/368 841/824/369 835/825/368 +f 839/826/370 841/824/369 840/827/369 +f 847/828/367 849/829/371 848/821/367 +f 836/830/372 842/831/370 839/826/370 +f 844/832/373 849/829/371 846/833/371 +f 10/306/69 5/834/69 15/307/70 +f 2/309/71 8/312/72 7/310/72 +f 8/312/72 9/316/73 6/313/73 +f 14/308/70 15/307/70 16/314/74 +f 9/316/73 4/835/1 3/317/1 +f 16/314/74 12/836/2 11/318/2 +f 21/319/75 31/327/76 30/320/76 +f 18/322/77 24/325/78 23/323/78 +f 24/325/78 25/329/79 22/326/79 +f 31/327/76 32/331/80 29/328/80 +f 25/329/79 20/837/3 19/330/3 +f 32/331/80 28/838/4 27/332/4 +f 37/333/81 47/341/82 46/334/82 +f 34/336/83 40/339/84 39/337/84 +f 40/339/84 41/343/85 38/340/85 +f 47/341/82 48/345/86 45/342/86 +f 41/343/85 36/839/5 35/344/5 +f 48/345/86 44/840/6 43/346/6 +f 58/347/87 53/841/87 63/348/88 +f 50/350/89 56/842/90 55/351/90 +f 55/351/90 56/842/90 57/353/91 +f 63/348/88 64/357/92 61/355/92 +f 57/353/91 52/843/7 51/356/7 +f 64/357/92 60/844/8 59/358/8 +f 74/359/93 69/845/93 79/360/94 +f 66/362/95 72/846/96 71/363/96 +f 71/363/96 72/846/96 73/365/97 +f 79/360/94 80/847/98 77/367/98 +f 70/366/97 73/365/97 68/368/9 +f 77/367/98 80/847/98 76/370/10 +f 85/372/99 95/848/100 94/373/100 +f 82/375/101 88/378/102 87/376/102 +f 88/378/102 89/382/103 86/379/103 +f 94/373/100 95/848/100 96/380/104 +f 89/382/103 84/849/11 83/383/11 +f 96/380/104 92/850/12 91/384/12 +f 101/385/105 111/851/106 110/386/106 +f 98/388/107 104/391/108 103/389/108 +f 104/391/108 105/395/109 102/392/109 +f 110/386/106 111/851/106 112/393/110 +f 105/395/109 100/852/13 99/396/13 +f 112/393/110 108/853/14 107/397/14 +f 122/398/111 117/854/111 127/399/112 +f 114/401/113 120/855/114 119/402/114 +f 119/402/114 120/855/114 121/404/115 +f 126/400/112 127/399/112 128/406/116 +f 121/404/115 116/856/15 115/408/15 +f 128/406/116 124/857/16 123/409/16 +f 133/410/117 143/418/118 142/411/118 +f 130/413/119 136/858/120 135/414/120 +f 135/414/120 136/858/120 137/416/121 +f 143/418/118 144/421/122 141/419/122 +f 137/416/121 132/859/17 131/420/17 +f 144/421/122 140/860/18 139/422/18 +f 149/423/123 159/861/124 158/424/124 +f 145/426/125 146/862/125 152/427/126 +f 152/427/126 153/863/127 150/429/127 +f 158/424/124 159/861/124 160/430/128 +f 150/429/127 153/863/127 148/432/19 +f 160/430/128 156/864/20 155/434/20 +f 170/435/129 165/865/129 175/436/130 +f 161/438/131 162/866/131 168/439/132 +f 168/439/132 169/867/133 166/441/133 +f 175/436/130 176/445/134 173/442/134 +f 166/441/133 169/867/133 164/443/21 +f 176/445/134 172/868/22 171/446/22 +f 186/447/135 181/869/135 191/448/136 +f 178/450/137 184/870/138 183/451/138 +f 183/451/138 184/870/138 185/453/139 +f 191/448/136 192/458/140 189/455/140 +f 182/454/139 185/453/139 180/456/23 +f 192/458/140 188/871/24 187/459/24 +f 202/460/141 197/872/141 207/461/142 +f 194/463/143 200/873/144 199/464/144 +f 199/464/144 200/873/144 201/466/145 +f 207/461/142 208/470/146 205/468/146 +f 201/466/145 196/874/25 195/469/25 +f 208/470/146 204/875/26 203/471/26 +f 213/472/147 223/876/148 222/473/148 +f 210/475/149 216/478/150 215/476/150 +f 216/478/150 217/482/151 214/479/151 +f 222/473/148 223/876/148 224/480/152 +f 217/482/151 212/877/27 211/483/27 +f 224/480/152 220/878/28 219/484/28 +f 229/485/153 239/493/154 238/486/154 +f 225/488/155 226/879/155 232/489/156 +f 231/490/156 232/489/156 233/491/157 +f 239/493/154 240/496/158 237/494/158 +f 233/491/157 228/880/29 227/495/29 +f 240/496/158 236/881/30 235/497/30 +f 245/498/159 255/506/160 254/499/160 +f 242/501/161 248/504/162 247/502/162 +f 248/504/162 249/508/163 246/505/163 +f 255/506/160 256/510/164 253/507/164 +f 249/508/163 244/882/31 243/509/31 +f 256/510/164 252/883/32 251/511/32 +f 524/512/165 525/520/172 541/513/166 +f 518/515/168 534/574/174 533/516/169 +f 526/518/171 542/561/176 541/519/166 +f 519/521/173 535/572/178 534/522/174 +f 526/518/171 527/527/179 543/523/175 +f 520/525/177 536/570/182 535/526/178 +f 527/527/179 528/536/186 544/528/180 +f 520/525/177 521/576/188 537/530/181 +f 513/532/183 514/542/190 530/533/184 +f 513/532/183 529/557/185 544/535/180 +f 522/537/187 538/567/192 537/538/181 +f 515/540/189 531/554/194 530/541/184 +f 523/543/191 539/565/195 538/544/192 +f 516/545/193 532/552/196 531/546/194 +f 523/543/191 524/512/165 540/547/167 +f 516/545/193 517/517/170 533/549/169 +f 524/512/165 557/222/212 558/224/198 +f 517/517/170 550/225/213 551/214/199 +f 525/520/172 558/224/198 559/217/200 +f 518/515/168 551/214/199 552/216/201 +f 526/518/171 559/217/200 560/208/202 +f 519/521/173 552/216/201 553/205/203 +f 527/527/179 560/208/202 561/201/204 +f 520/525/177 553/205/203 554/207/205 +f 513/532/183 546/203/207 547/196/206 +f 528/536/186 561/201/204 546/203/207 +f 521/539/188 554/297/205 555/193/208 +f 514/542/190 547/196/206 548/198/209 +f 522/537/187 555/193/208 556/195/210 +f 515/540/189 548/198/209 549/230/211 +f 523/543/191 556/195/210 557/222/212 +f 516/545/193 549/230/211 550/225/213 +f 569/577/214 585/884/227 584/578/215 +f 573/580/217 589/593/229 588/581/218 +f 576/583/220 592/595/231 591/584/221 +f 565/586/223 581/597/233 580/587/224 +f 570/589/226 586/601/237 585/590/227 +f 574/592/228 590/608/244 589/593/229 +f 577/594/230 593/599/235 592/595/231 +f 566/596/232 582/605/241 581/597/233 +f 562/598/234 578/603/239 593/599/235 +f 571/600/236 587/606/242 586/601/237 +f 563/602/238 579/609/245 578/603/239 +f 567/604/240 583/607/243 582/605/241 +f 572/582/219 588/581/218 587/606/242 +f 568/579/216 584/578/215 583/607/243 +f 575/585/222 591/584/221 590/608/244 +f 564/588/225 580/587/224 579/609/245 +f 603/610/246 607/618/247 608/611/247 +f 600/613/248 601/617/248 595/614/249 +f 599/616/250 602/621/250 601/617/248 +f 607/618/247 606/623/251 609/619/251 +f 596/620/252 597/885/252 602/621/250 +f 604/622/253 605/886/253 609/619/251 +f 623/624/254 624/633/254 614/625/255 +f 616/627/256 617/631/256 611/628/257 +f 615/630/258 618/635/258 617/631/256 +f 622/632/259 625/637/259 624/633/254 +f 612/634/260 613/887/260 618/635/258 +f 620/636/261 621/888/261 625/637/259 +f 639/638/262 640/647/262 630/639/263 +f 632/641/264 633/645/264 627/642/265 +f 631/644/266 634/649/266 633/645/264 +f 639/638/262 638/651/267 641/646/267 +f 628/648/268 629/889/268 634/649/266 +f 636/650/269 637/890/269 641/646/267 +f 655/652/270 656/661/270 646/653/271 +f 648/655/272 649/659/272 643/656/273 +f 648/655/272 647/663/274 650/658/274 +f 654/660/275 657/665/275 656/661/270 +f 644/662/276 645/891/276 650/658/274 +f 652/664/277 653/892/277 657/665/275 +f 671/666/278 672/675/278 662/667/279 +f 664/669/280 665/673/280 659/670/281 +f 663/672/282 666/677/282 665/673/280 +f 671/666/278 670/678/283 673/674/283 +f 660/676/284 661/893/284 666/677/282 +f 670/678/283 668/894/285 669/679/285 +f 687/680/286 688/689/286 678/681/287 +f 680/683/288 681/687/288 675/684/289 +f 679/686/290 682/691/290 681/687/288 +f 687/680/286 686/693/291 689/688/291 +f 676/690/292 677/895/292 682/691/290 +f 684/692/293 685/896/293 689/688/291 +f 703/694/294 704/703/294 694/695/295 +f 696/697/296 697/701/296 691/698/297 +f 695/700/298 698/705/298 697/701/296 +f 703/694/294 702/707/299 705/702/299 +f 692/704/300 693/897/300 698/705/298 +f 700/706/301 701/898/301 705/702/299 +f 719/708/302 720/717/302 710/709/303 +f 712/711/304 713/715/304 707/712/305 +f 711/714/306 714/719/306 713/715/304 +f 719/708/302 718/720/307 721/716/307 +f 708/718/308 709/899/308 714/719/306 +f 718/720/307 716/900/309 717/721/309 +f 731/722/310 735/730/311 736/723/311 +f 722/725/312 728/729/313 729/726/313 +f 727/728/314 730/733/314 729/726/313 +f 735/730/311 734/735/315 737/731/315 +f 724/732/316 725/901/316 730/733/314 +f 732/734/317 733/902/317 737/731/315 +f 747/736/318 751/744/319 752/737/319 +f 738/739/320 744/743/321 745/740/321 +f 743/742/322 746/747/322 745/740/321 +f 751/744/319 750/749/323 753/745/323 +f 743/742/322 740/903/324 741/746/324 +f 748/748/325 749/904/325 753/745/323 +f 763/750/326 767/759/327 768/751/327 +f 760/753/328 761/757/328 755/754/329 +f 759/756/330 762/761/330 761/757/328 +f 766/758/331 769/763/331 768/751/327 +f 759/756/330 756/905/332 757/760/332 +f 764/762/333 765/906/333 769/763/331 +f 783/764/334 784/773/334 774/765/335 +f 776/767/336 777/771/336 771/768/337 +f 775/770/338 778/775/338 777/771/336 +f 783/764/334 782/776/339 785/772/339 +f 772/774/340 773/907/340 778/775/338 +f 782/776/339 780/908/341 781/777/341 +f 795/778/342 799/787/343 800/779/343 +f 792/781/344 793/785/344 787/782/345 +f 791/784/346 794/789/346 793/785/344 +f 798/786/347 801/791/347 800/779/343 +f 791/784/346 788/909/348 789/788/348 +f 796/790/349 797/910/349 801/791/347 +f 815/792/350 816/801/350 806/793/351 +f 808/795/352 809/799/352 803/796/353 +f 807/798/354 810/803/354 809/799/352 +f 815/792/350 814/805/355 817/800/355 +f 807/798/354 804/911/356 805/802/356 +f 812/804/357 813/912/357 817/800/355 +f 831/806/358 832/815/358 822/807/359 +f 824/809/360 825/813/360 819/810/361 +f 824/809/360 823/816/362 826/812/362 +f 830/814/363 833/819/363 832/815/358 +f 823/816/362 820/913/364 821/817/364 +f 828/818/365 829/914/365 833/819/363 +f 843/820/366 847/828/367 848/821/367 +f 834/823/368 840/827/369 841/824/369 +f 839/826/370 842/831/370 841/824/369 +f 847/828/367 846/833/371 849/829/371 +f 836/830/372 837/915/372 842/831/370 +f 844/832/373 845/916/373 849/829/371 +o Afterburner +v 0.000000 2.375000 -3.000000 +v -0.334848 2.308394 -3.000000 +v -0.618719 2.118719 -3.000000 +v -0.808395 1.834848 -3.000000 +v -0.875000 1.500000 -3.000000 +v -0.808395 1.165152 -3.000000 +v -0.618719 0.881282 -3.000000 +v -0.334848 0.691606 -3.000000 +v -0.000000 0.625000 -3.000000 +v 0.334847 0.691606 -3.000000 +v 0.618718 0.881281 -3.000000 +v 0.808394 1.165152 -3.000000 +v 0.875000 1.500000 -3.000000 +v 0.808394 1.834848 -3.000000 +v 0.618718 2.118719 -3.000000 +v 0.334847 2.308395 -3.000000 +v -0.000000 2.500000 -2.500000 +v -0.382684 2.423880 -2.500000 +v -0.707107 2.207107 -2.500000 +v -0.923880 1.882684 -2.500000 +v -1.000000 1.500000 -2.500000 +v -0.923880 1.117317 -2.500000 +v -0.707107 0.792893 -2.500000 +v -0.382684 0.576121 -2.500000 +v -0.000000 0.500000 -2.500000 +v 0.382683 0.576120 -2.500000 +v 0.707106 0.792893 -2.500000 +v 0.923879 1.117316 -2.500000 +v 1.000000 1.500000 -2.500000 +v 0.923879 1.882684 -2.500000 +v 0.707106 2.207107 -2.500000 +v 0.382683 2.423880 -2.500000 +v -0.125000 2.437500 -1.250000 +v 0.125000 2.437500 -1.250000 +v -0.125000 2.687500 -2.250000 +v 0.125000 2.687500 -2.250000 +v -0.125000 2.437500 -2.250000 +v 0.125000 2.437500 -2.250000 +v 0.093750 2.656250 -2.250000 +v -0.093750 2.656250 -2.250000 +v 0.093750 2.500000 -2.250000 +v -0.093750 2.500000 -2.250000 +v 0.093750 2.593750 -2.000000 +v -0.093750 2.593750 -2.000000 +v 0.093750 2.500000 -2.000000 +v -0.093750 2.500000 -2.000000 +v 0.093750 0.500000 -2.000000 +v -0.093750 0.500000 -2.000000 +v 0.093750 0.406250 -2.000000 +v -0.093750 0.406250 -2.000000 +v 0.093750 0.500000 -2.250000 +v -0.093750 0.500000 -2.250000 +v 0.093750 0.343750 -2.250000 +v -0.093750 0.343750 -2.250000 +v -0.125000 0.562500 -2.250000 +v 0.125000 0.562500 -2.250000 +v -0.125000 0.312500 -2.250000 +v 0.125000 0.312500 -2.250000 +v -0.125000 0.562500 -1.250000 +v 0.125000 0.562500 -1.250000 +v 0.937500 1.625000 -1.250000 +v 0.937500 1.375000 -1.250000 +v 1.187500 1.625000 -2.250000 +v 1.187500 1.375000 -2.250000 +v 0.937500 1.625000 -2.250000 +v 0.937500 1.375000 -2.250000 +v 1.156250 1.406250 -2.250000 +v 1.156250 1.593750 -2.250000 +v 1.000000 1.406250 -2.250000 +v 1.000000 1.593750 -2.250000 +v 1.093750 1.406250 -2.000000 +v 1.093750 1.593750 -2.000000 +v 1.000000 1.406250 -2.000000 +v 1.000000 1.593750 -2.000000 +v -1.000000 1.406250 -2.000000 +v -1.000000 1.593750 -2.000000 +v -1.093750 1.406250 -2.000000 +v -1.093750 1.593750 -2.000000 +v -1.000000 1.406250 -2.250000 +v -1.000000 1.593750 -2.250000 +v -1.156250 1.406250 -2.250000 +v -1.156250 1.593750 -2.250000 +v -0.937500 1.625000 -2.250000 +v -0.937500 1.375000 -2.250000 +v -1.187500 1.625000 -2.250000 +v -1.187500 1.375000 -2.250000 +v -0.937500 1.625000 -1.250000 +v -0.937500 1.375000 -1.250000 +v 0.574524 2.251301 -1.250000 +v 0.751301 2.074524 -1.250000 +v 0.751301 2.428078 -2.250000 +v 0.928078 2.251301 -2.250000 +v 0.574524 2.251301 -2.250000 +v 0.751301 2.074524 -2.250000 +v 0.883883 2.251301 -2.250000 +v 0.751301 2.383883 -2.250000 +v 0.773398 2.140815 -2.250000 +v 0.640815 2.273398 -2.250000 +v 0.839689 2.207107 -2.000000 +v 0.707107 2.339689 -2.000000 +v 0.773398 2.140815 -2.000000 +v 0.640815 2.273398 -2.000000 +v -0.640815 0.726602 -2.000000 +v -0.773398 0.859185 -2.000000 +v -0.707107 0.660311 -2.000000 +v -0.839689 0.792894 -2.000000 +v -0.640815 0.726602 -2.250000 +v -0.773398 0.859185 -2.250000 +v -0.751301 0.616117 -2.250000 +v -0.883883 0.748699 -2.250000 +v -0.751301 0.925476 -2.250000 +v -0.574524 0.748699 -2.250000 +v -0.928078 0.748699 -2.250000 +v -0.751301 0.571923 -2.250000 +v -0.751301 0.925476 -1.250000 +v -0.574524 0.748699 -1.250000 +v 0.751301 0.925476 -1.250000 +v 0.574524 0.748699 -1.250000 +v 0.928078 0.748699 -2.250000 +v 0.751301 0.571923 -2.250000 +v 0.751301 0.925476 -2.250000 +v 0.574524 0.748699 -2.250000 +v 0.751301 0.616117 -2.250000 +v 0.883883 0.748699 -2.250000 +v 0.640816 0.726602 -2.250000 +v 0.773398 0.859185 -2.250000 +v 0.707107 0.660311 -2.000000 +v 0.839689 0.792894 -2.000000 +v 0.640816 0.726602 -2.000000 +v 0.773398 0.859185 -2.000000 +v -0.773398 2.140816 -2.000000 +v -0.640816 2.273398 -2.000000 +v -0.839689 2.207107 -2.000000 +v -0.707107 2.339689 -2.000000 +v -0.773398 2.140816 -2.250000 +v -0.640816 2.273398 -2.250000 +v -0.883883 2.251301 -2.250000 +v -0.751301 2.383884 -2.250000 +v -0.574524 2.251301 -2.250000 +v -0.751301 2.074524 -2.250000 +v -0.751301 2.428078 -2.250000 +v -0.928078 2.251301 -2.250000 +v -0.574524 2.251301 -1.250000 +v -0.751301 2.074524 -1.250000 +vt 0.400000 0.250000 +vt 0.250000 0.208333 +vt 0.400000 0.208333 +vt 0.200000 0.000000 +vt 0.350000 0.010417 +vt 0.250000 0.010417 +vt 0.200000 0.208333 +vt 0.400000 0.041667 +vt 0.400000 0.208333 +vt 0.400000 0.000000 +vt 0.200000 0.041667 +vt 0.000000 0.041667 +vt 0.600000 0.041667 +vt 0.600000 0.250000 +vt 0.400000 0.270833 +vt 0.350000 0.031250 +vt 0.250000 0.031250 +vt 0.250000 0.270833 +vt 0.250000 0.312500 +vt 0.400000 0.312500 +vt 0.050000 0.250000 +vt 0.050000 0.281250 +vt 0.050000 0.250000 +vt 0.250000 0.270833 +vt 0.050000 0.281250 +vt 0.250000 0.312500 +vt 0.400000 0.270833 +vt 0.400000 0.312500 +vt 0.400000 0.250000 +vt 0.200000 0.041667 +vt 0.250000 0.010417 +vt 0.250000 0.031250 +vt 0.350000 0.031250 +vt 0.400000 0.041667 +vt 0.600000 0.250000 +vt 0.600000 0.041667 +vt 0.400000 0.208333 +vt 0.200000 0.208333 +vt 0.000000 0.041667 +vt 0.350000 0.010417 +vt 0.400000 0.000000 +vt 0.200000 0.000000 +vt 0.250000 0.208333 +vt 0.400000 0.208333 +vt 0.400000 0.250000 +vt 0.250000 0.208333 +vt 0.400000 0.208333 +vt 0.200000 0.000000 +vt 0.350000 0.010417 +vt 0.250000 0.010417 +vt 0.200000 0.208333 +vt 0.400000 0.041667 +vt 0.400000 0.208333 +vt 0.400000 0.000000 +vt 0.200000 0.041667 +vt 0.000000 0.041667 +vt 0.600000 0.041667 +vt 0.600000 0.250000 +vt 0.400000 0.270833 +vt 0.350000 0.031250 +vt 0.250000 0.031250 +vt 0.250000 0.270833 +vt 0.250000 0.312500 +vt 0.400000 0.312500 +vt 0.050000 0.250000 +vt 0.050000 0.281250 +vt 0.050000 0.250000 +vt 0.250000 0.270833 +vt 0.050000 0.281250 +vt 0.250000 0.312500 +vt 0.400000 0.270833 +vt 0.400000 0.312500 +vt 0.400000 0.250000 +vt 0.200000 0.041667 +vt 0.250000 0.010417 +vt 0.250000 0.031250 +vt 0.350000 0.031250 +vt 0.400000 0.041667 +vt 0.600000 0.250000 +vt 0.600000 0.041667 +vt 0.400000 0.208333 +vt 0.200000 0.208333 +vt 0.000000 0.041667 +vt 0.350000 0.010417 +vt 0.400000 0.000000 +vt 0.200000 0.000000 +vt 0.250000 0.208333 +vt 0.400000 0.208333 +vt 0.400000 0.250000 +vt 0.250000 0.208333 +vt 0.400000 0.208333 +vt 0.200000 0.000000 +vt 0.350000 0.010417 +vt 0.250000 0.010417 +vt 0.200000 0.208333 +vt 0.400000 0.041667 +vt 0.400000 0.208333 +vt 0.400000 0.000000 +vt 0.200000 0.041667 +vt 0.000000 0.041667 +vt 0.600000 0.041667 +vt 0.600000 0.250000 +vt 0.400000 0.270833 +vt 0.250000 0.031250 +vt 0.350000 0.031250 +vt 0.250000 0.250000 +vt 0.250000 0.312500 +vt 0.400000 0.312500 +vt 0.050000 0.250000 +vt 0.250000 0.270833 +vt 0.050000 0.281250 +vt 0.050000 0.250000 +vt 0.250000 0.270833 +vt 0.050000 0.281250 +vt 0.250000 0.312500 +vt 0.400000 0.270833 +vt 0.400000 0.312500 +vt 0.250000 0.250000 +vt 0.400000 0.250000 +vt 0.200000 0.041667 +vt 0.250000 0.010417 +vt 0.250000 0.031250 +vt 0.400000 0.041667 +vt 0.350000 0.031250 +vt 0.600000 0.250000 +vt 0.600000 0.041667 +vt 0.400000 0.208333 +vt 0.200000 0.208333 +vt 0.000000 0.041667 +vt 0.350000 0.010417 +vt 0.400000 0.000000 +vt 0.200000 0.000000 +vt 0.250000 0.208333 +vt 0.400000 0.208333 +vt 0.400000 0.250000 +vt 0.250000 0.208333 +vt 0.400000 0.208333 +vt 0.200000 0.000000 +vt 0.350000 0.010417 +vt 0.250000 0.010417 +vt 0.200000 0.208333 +vt 0.400000 0.041667 +vt 0.400000 0.208333 +vt 0.400000 0.000000 +vt 0.200000 0.041667 +vt 0.000000 0.041667 +vt 0.600000 0.041667 +vt 0.600000 0.250000 +vt 0.400000 0.270833 +vt 0.350000 0.031250 +vt 0.250000 0.031250 +vt 0.250000 0.250000 +vt 0.250000 0.312500 +vt 0.400000 0.312500 +vt 0.050000 0.250000 +vt 0.250000 0.270833 +vt 0.050000 0.281250 +vt 0.050000 0.250000 +vt 0.250000 0.270833 +vt 0.050000 0.281250 +vt 0.250000 0.312500 +vt 0.400000 0.270833 +vt 0.400000 0.312500 +vt 0.250000 0.250000 +vt 0.400000 0.250000 +vt 0.200000 0.041667 +vt 0.250000 0.010417 +vt 0.250000 0.031250 +vt 0.350000 0.031250 +vt 0.400000 0.041667 +vt 0.600000 0.250000 +vt 0.600000 0.041667 +vt 0.400000 0.208333 +vt 0.200000 0.208333 +vt 0.000000 0.041667 +vt 0.350000 0.010417 +vt 0.400000 0.000000 +vt 0.200000 0.000000 +vt 0.250000 0.208333 +vt 0.400000 0.208333 +vt 0.250000 0.250000 +vt 0.600000 0.281250 +vt 0.250000 0.250000 +vt 0.600000 0.281250 +vt 0.250000 0.250000 +vt 0.600000 0.281250 +vt 0.250000 0.250000 +vt 0.600000 0.281250 +vt 0.600000 0.281250 +vt 0.600000 0.281250 +vt 0.600000 0.281250 +vt 0.600000 0.281250 +vt 1.000000 0.500000 +vt 0.600000 0.437500 +vt 1.000000 0.437500 +vt 1.000000 0.562500 +vt 0.600000 0.500000 +vt 1.000000 0.625000 +vt 0.600000 0.562500 +vt 1.000000 0.687500 +vt 0.600000 0.625000 +vt 0.600000 0.750000 +vt 0.600000 0.687500 +vt 1.000000 0.750000 +vt 0.600000 0.812500 +vt 1.000000 0.875000 +vt 1.000000 0.812500 +vt 0.600000 0.937500 +vt 0.600000 0.875000 +vt 1.000000 1.000000 +vt 1.000000 0.937500 +vt 1.000000 0.000000 +vt 0.600000 0.062500 +vt 0.600000 0.000000 +vt 1.000000 0.062500 +vt 0.600000 0.125000 +vt 1.000000 0.125000 +vt 0.600000 0.187500 +vt 1.000000 0.187500 +vt 0.600000 0.250000 +vt 1.000000 0.312500 +vt 1.000000 0.250000 +vt 1.000000 0.375000 +vt 0.600000 0.312500 +vt 0.600000 0.375000 +vt 0.600000 1.000000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.9701 0.2425 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 -0.9701 -0.2425 +vn 0.0000 0.9701 -0.2425 +vn 0.0000 -0.9701 0.2425 +vn 0.0000 -1.0000 0.0000 +vn 0.9701 0.0000 0.2425 +vn -0.9701 0.0000 -0.2425 +vn 0.9701 0.0000 -0.2425 +vn -0.9701 0.0000 0.2425 +vn 0.7071 0.7071 0.0000 +vn 0.6860 0.6860 0.2425 +vn 0.7071 -0.7071 0.0000 +vn -0.7071 0.7071 0.0000 +vn -0.6860 -0.6860 -0.2425 +vn 0.6860 0.6860 -0.2425 +vn -0.6860 -0.6860 0.2425 +vn -0.7071 -0.7071 0.0000 +vn 0.6860 -0.6860 0.2425 +vn -0.6860 0.6860 -0.2425 +vn 0.6860 -0.6860 -0.2425 +vn -0.6860 0.6860 0.2425 +vn 0.3712 0.8963 -0.2425 +vn -0.3712 0.8963 -0.2425 +vn -0.8963 0.3712 -0.2425 +vn -0.8963 0.3713 -0.2425 +vn -0.8963 -0.3712 -0.2425 +vn -0.3713 -0.8963 -0.2425 +vn 0.3712 -0.8963 -0.2425 +vn 0.8963 -0.3713 -0.2425 +vn 0.8963 -0.3712 -0.2425 +vn 0.8963 0.3713 -0.2425 +vn 0.8963 0.3712 -0.2425 +s off +f 895/917/374 890/918/374 891/919/374 +f 887/920/375 891/921/375 890/922/375 +f 883/923/376 884/924/376 882/925/376 +f 884/924/375 891/921/375 886/926/375 +f 885/927/377 883/923/377 887/928/377 +f 884/924/378 886/929/378 882/925/378 +f 891/930/377 893/931/377 895/917/377 +f 885/927/375 889/932/375 884/924/375 +f 885/927/375 890/922/375 888/933/375 +f 892/934/375 895/917/375 893/931/375 +f 888/935/379 893/931/379 889/936/379 +f 890/937/378 892/934/378 888/938/378 +f 901/939/377 899/940/377 903/941/377 +f 903/942/380 898/943/380 902/944/380 +f 899/940/375 896/945/375 898/943/375 +f 906/946/375 901/947/375 903/948/375 +f 906/946/375 902/949/375 907/950/375 +f 900/951/378 898/943/378 896/945/378 +f 907/950/377 905/952/377 909/953/377 +f 906/946/378 908/954/378 904/955/378 +f 907/950/375 900/956/375 905/957/375 +f 908/954/381 907/950/381 909/953/381 +f 904/958/375 900/956/375 901/947/375 +f 896/945/382 901/959/382 900/960/382 +f 923/961/377 918/962/377 919/963/377 +f 915/964/375 919/965/375 918/966/375 +f 911/967/383 912/968/383 910/969/383 +f 912/968/375 919/965/375 914/970/375 +f 913/971/382 911/967/382 915/972/382 +f 912/968/374 914/973/374 910/969/374 +f 919/974/382 921/975/382 923/961/382 +f 913/971/375 917/976/375 912/968/375 +f 913/971/375 918/966/375 916/977/375 +f 920/978/375 923/961/375 921/975/375 +f 916/979/384 921/975/384 917/980/384 +f 918/981/374 920/978/374 916/982/374 +f 929/983/382 927/984/382 931/985/382 +f 931/986/385 926/987/385 930/988/385 +f 927/984/375 924/989/375 926/987/375 +f 934/990/375 929/991/375 931/992/375 +f 934/990/375 930/993/375 935/994/375 +f 928/995/374 926/987/374 924/989/374 +f 935/994/382 933/996/382 937/997/382 +f 934/990/374 936/998/374 932/999/374 +f 935/994/375 928/1000/375 933/1001/375 +f 936/998/386 935/994/386 937/997/386 +f 932/1002/375 928/1000/375 929/991/375 +f 924/989/378 929/1003/378 928/1004/378 +f 951/1005/387 946/1006/387 947/1007/387 +f 943/1008/375 947/1009/375 946/1010/375 +f 939/1011/388 940/1012/388 938/1013/388 +f 940/1012/375 947/1009/375 942/1014/375 +f 941/1015/389 939/1011/389 943/1016/389 +f 940/1012/390 942/1017/390 938/1013/390 +f 947/1018/389 949/1019/389 951/1005/389 +f 940/1012/375 944/1020/375 945/1021/375 +f 941/1015/375 946/1010/375 944/1020/375 +f 949/1019/375 950/1022/375 951/1005/375 +f 944/1023/391 949/1019/391 945/1024/391 +f 946/1025/390 948/1026/390 944/1027/390 +f 957/1028/389 955/1029/389 959/1030/389 +f 959/1031/392 954/1032/392 958/1033/392 +f 954/1032/375 953/1034/375 952/1035/375 +f 962/1036/375 957/1037/375 959/1038/375 +f 963/1039/375 959/1038/375 958/1040/375 +f 956/1041/390 954/1032/390 952/1035/390 +f 963/1039/389 961/1042/389 965/1043/389 +f 962/1036/390 964/1044/390 960/1045/390 +f 963/1039/375 956/1046/375 961/1047/375 +f 964/1044/393 963/1039/393 965/1043/393 +f 960/1048/375 956/1046/375 957/1037/375 +f 952/1035/394 957/1049/394 956/1050/394 +f 979/1051/389 974/1052/389 975/1053/389 +f 971/1054/375 975/1055/375 974/1056/375 +f 967/1057/395 968/1058/395 966/1059/395 +f 968/1058/375 975/1055/375 970/1060/375 +f 969/1061/394 967/1057/394 971/1062/394 +f 968/1058/387 970/1063/387 966/1059/387 +f 975/1064/394 977/1065/394 979/1051/394 +f 969/1061/375 973/1066/375 968/1058/375 +f 969/1061/375 974/1056/375 972/1067/375 +f 977/1065/375 978/1068/375 979/1051/375 +f 972/1069/396 977/1065/396 973/1070/396 +f 974/1071/387 976/1072/387 972/1073/387 +f 985/1074/394 983/1075/394 987/1076/394 +f 987/1077/397 982/1078/397 986/1079/397 +f 982/1078/375 981/1080/375 980/1081/375 +f 990/1082/375 985/1083/375 987/1084/375 +f 990/1082/375 986/1085/375 991/1086/375 +f 984/1087/387 982/1078/387 980/1081/387 +f 991/1086/394 989/1088/394 993/1089/394 +f 990/1082/387 992/1090/387 988/1091/387 +f 991/1086/375 984/1092/375 989/1093/375 +f 992/1090/398 991/1086/398 993/1089/398 +f 988/1094/375 984/1092/375 985/1083/375 +f 980/1081/390 985/1095/390 984/1096/390 +f 895/917/374 894/1097/374 890/918/374 +f 887/920/375 886/926/375 891/921/375 +f 883/923/376 885/927/376 884/924/376 +f 884/924/375 889/932/375 891/921/375 +f 891/930/377 889/1098/377 893/931/377 +f 885/927/375 888/933/375 889/932/375 +f 885/927/375 887/920/375 890/922/375 +f 892/934/375 894/1097/375 895/917/375 +f 888/935/379 892/934/379 893/931/379 +f 890/937/378 894/1097/378 892/934/378 +f 901/939/377 897/1099/377 899/940/377 +f 903/942/380 899/940/380 898/943/380 +f 899/940/375 897/1099/375 896/945/375 +f 906/946/375 904/958/375 901/947/375 +f 906/946/375 903/948/375 902/949/375 +f 900/951/378 902/1100/378 898/943/378 +f 907/950/375 902/949/375 900/956/375 +f 908/954/381 906/946/381 907/950/381 +f 904/958/375 905/957/375 900/956/375 +f 896/945/382 897/1099/382 901/959/382 +f 923/961/377 922/1101/377 918/962/377 +f 915/964/375 914/970/375 919/965/375 +f 911/967/383 913/971/383 912/968/383 +f 912/968/375 917/976/375 919/965/375 +f 919/974/382 917/1102/382 921/975/382 +f 913/971/375 916/977/375 917/976/375 +f 913/971/375 915/964/375 918/966/375 +f 920/978/375 922/1101/375 923/961/375 +f 916/979/384 920/978/384 921/975/384 +f 918/981/374 922/1101/374 920/978/374 +f 929/983/382 925/1103/382 927/984/382 +f 931/986/385 927/984/385 926/987/385 +f 927/984/375 925/1103/375 924/989/375 +f 934/990/375 932/1002/375 929/991/375 +f 934/990/375 931/992/375 930/993/375 +f 928/995/374 930/1104/374 926/987/374 +f 935/994/375 930/993/375 928/1000/375 +f 936/998/386 934/990/386 935/994/386 +f 932/1002/375 933/1001/375 928/1000/375 +f 924/989/378 925/1103/378 929/1003/378 +f 951/1005/387 950/1022/387 946/1006/387 +f 943/1008/375 942/1014/375 947/1009/375 +f 939/1011/388 941/1015/388 940/1012/388 +f 940/1012/375 945/1021/375 947/1009/375 +f 947/1018/389 945/1105/389 949/1019/389 +f 940/1012/375 941/1015/375 944/1020/375 +f 941/1015/375 943/1008/375 946/1010/375 +f 949/1019/375 948/1026/375 950/1022/375 +f 944/1023/391 948/1026/391 949/1019/391 +f 946/1025/390 950/1022/390 948/1026/390 +f 957/1028/389 953/1034/389 955/1029/389 +f 959/1031/392 955/1029/392 954/1032/392 +f 954/1032/375 955/1029/375 953/1034/375 +f 962/1036/375 960/1048/375 957/1037/375 +f 963/1039/375 962/1036/375 959/1038/375 +f 956/1041/390 958/1106/390 954/1032/390 +f 963/1039/375 958/1040/375 956/1046/375 +f 964/1044/393 962/1036/393 963/1039/393 +f 960/1048/375 961/1047/375 956/1046/375 +f 952/1035/394 953/1034/394 957/1049/394 +f 979/1051/389 978/1068/389 974/1052/389 +f 971/1054/375 970/1060/375 975/1055/375 +f 967/1057/395 969/1061/395 968/1058/395 +f 968/1058/375 973/1066/375 975/1055/375 +f 975/1064/394 973/1107/394 977/1065/394 +f 969/1061/375 972/1067/375 973/1066/375 +f 969/1061/375 971/1054/375 974/1056/375 +f 977/1065/375 976/1072/375 978/1068/375 +f 972/1069/396 976/1072/396 977/1065/396 +f 974/1071/387 978/1068/387 976/1072/387 +f 985/1074/394 981/1080/394 983/1075/394 +f 987/1077/397 983/1075/397 982/1078/397 +f 982/1078/375 983/1075/375 981/1080/375 +f 990/1082/375 988/1094/375 985/1083/375 +f 990/1082/375 987/1084/375 986/1085/375 +f 984/1087/387 986/1108/387 982/1078/387 +f 991/1086/375 986/1085/375 984/1092/375 +f 992/1090/398 990/1082/398 991/1086/398 +f 988/1094/375 989/1093/375 984/1092/375 +f 980/1081/390 981/1080/390 985/1095/390 +s 1 +f 850/1109/380 881/1110/399 865/1111/399 +f 851/1112/400 866/1113/380 850/1109/380 +f 852/1114/396 867/1115/400 851/1112/400 +f 853/1116/401 868/1117/396 852/1114/396 +f 853/1116/401 870/1118/384 869/1119/402 +f 854/1120/384 871/1121/403 870/1118/384 +f 856/1122/391 871/1121/403 855/1123/403 +f 856/1122/391 873/1124/404 872/1125/391 +f 858/1126/379 873/1124/404 857/1127/404 +f 858/1128/379 875/1129/405 874/1130/379 +f 859/1131/405 876/1132/397 875/1129/405 +f 860/1133/397 877/1134/406 876/1132/397 +f 861/1135/407 878/1136/385 877/1134/406 +f 863/1137/408 878/1136/385 862/1138/385 +f 864/1139/392 879/1140/409 863/1137/408 +f 865/1111/399 880/1141/392 864/1139/392 +f 850/1109/380 866/1113/380 881/1110/399 +f 851/1112/400 867/1115/400 866/1113/380 +f 852/1114/396 868/1117/396 867/1115/400 +f 853/1116/401 869/1119/402 868/1117/396 +f 853/1116/401 854/1120/384 870/1118/384 +f 854/1120/384 855/1123/403 871/1121/403 +f 856/1122/391 872/1125/391 871/1121/403 +f 856/1122/391 857/1127/404 873/1124/404 +f 858/1126/379 874/1142/379 873/1124/404 +f 858/1128/379 859/1131/405 875/1129/405 +f 859/1131/405 860/1133/397 876/1132/397 +f 860/1133/397 861/1135/407 877/1134/406 +f 861/1135/407 862/1138/385 878/1136/385 +f 863/1137/408 879/1140/409 878/1136/385 +f 864/1139/392 880/1141/392 879/1140/409 +f 865/1111/399 881/1110/399 880/1141/392 +o Body +v 0.000000 3.000000 3.125000 +v -0.574025 2.885819 3.125000 +v -1.060660 2.560660 3.125000 +v -1.385819 2.074025 3.125000 +v -1.500000 1.500000 3.125000 +v -1.385819 0.925975 3.125000 +v -1.060660 0.439340 3.125000 +v -0.574025 0.114181 3.125000 +v 0.000000 0.000000 3.125000 +v 0.574025 0.114181 3.125000 +v 1.060660 0.439340 3.125000 +v 1.385819 0.925975 3.125000 +v 1.500000 1.500000 3.125000 +v 1.385819 2.074025 3.125000 +v 1.060659 2.560660 3.125000 +v 0.574024 2.885819 3.125000 +v 0.000000 2.937500 3.125000 +v -0.550107 2.828077 3.125000 +v -1.016466 2.516467 3.125000 +v -1.328077 2.050108 3.125000 +v -1.437500 1.500000 3.125000 +v -1.328077 0.949893 3.125000 +v -1.016466 0.483534 3.125000 +v -0.550108 0.171924 3.125000 +v -0.000000 0.062500 3.125000 +v 0.550107 0.171924 3.125000 +v 1.016465 0.483534 3.125000 +v 1.328076 0.949893 3.125000 +v 1.437500 1.500000 3.125000 +v 1.328076 2.050108 3.125000 +v 1.016465 2.516467 3.125000 +v 0.550107 2.828077 3.125000 +v 0.526189 2.770334 3.062500 +v 0.972271 2.472272 3.062500 +v 1.270334 2.026190 3.062500 +v 1.375000 1.500000 3.062500 +v 1.270334 0.973810 3.062500 +v 0.972271 0.527728 3.062500 +v 0.526189 0.229665 3.062500 +v -0.000000 0.125000 3.062500 +v -0.526190 0.229665 3.062500 +v -0.972272 0.527728 3.062500 +v -1.270334 0.973810 3.062500 +v -1.375000 1.500000 3.062500 +v -1.270334 2.026189 3.062500 +v -0.972272 2.472271 3.062500 +v -0.526190 2.770334 3.062500 +v 0.000000 2.875000 3.062500 +v 0.000000 3.000000 1.125000 +v -0.574025 2.885819 1.125000 +v -1.060660 2.560660 1.125000 +v -1.385819 2.074025 1.125000 +v -1.500000 1.500000 1.125000 +v -1.385819 0.925975 1.125000 +v -1.060660 0.439340 1.125000 +v -0.574025 0.114181 1.125000 +v 0.000000 0.000000 1.125000 +v 0.574025 0.114181 1.125000 +v 1.060660 0.439340 1.125000 +v 1.385819 0.925975 1.125000 +v 1.500000 1.500000 1.125000 +v 1.385819 2.074025 1.125000 +v 1.060659 2.560660 1.125000 +v 0.574024 2.885819 1.125000 +v 0.000000 3.000000 2.875000 +v -0.574025 2.885819 2.875000 +v -1.060660 2.560660 2.875000 +v -1.385819 2.074025 2.875000 +v -1.500000 1.500000 2.875000 +v -1.385819 0.925975 2.875000 +v -1.060660 0.439340 2.875000 +v -0.574025 0.114181 2.875000 +v 0.000000 0.000000 2.875000 +v 0.574025 0.114181 2.875000 +v 1.060660 0.439340 2.875000 +v 1.385819 0.925975 2.875000 +v 1.500000 1.500000 2.875000 +v 1.385819 2.074025 2.875000 +v 1.060659 2.560660 2.875000 +v 0.574024 2.885819 2.875000 +v 0.000000 3.000000 1.375000 +v -0.574025 2.885819 1.375000 +v -1.060660 2.560660 1.375000 +v -1.385819 2.074025 1.375000 +v -1.500000 1.500000 1.375000 +v -1.385819 0.925975 1.375000 +v -1.060660 0.439340 1.375000 +v -0.574025 0.114181 1.375000 +v 0.000000 0.000000 1.375000 +v 0.574025 0.114181 1.375000 +v 1.060660 0.439340 1.375000 +v 1.385819 0.925975 1.375000 +v 1.500000 1.500000 1.375000 +v 1.385819 2.074025 1.375000 +v 1.060659 2.560660 1.375000 +v 0.574024 2.885819 1.375000 +v 0.000000 2.875000 1.125000 +v -0.526190 2.770334 1.125000 +v -0.972272 2.472272 1.125000 +v -1.270334 2.026190 1.125000 +v -1.375000 1.500000 1.125000 +v -1.270334 0.973810 1.125000 +v -0.972272 0.527728 1.125000 +v -0.526190 0.229666 1.125000 +v -0.000000 0.125000 1.125000 +v 0.526189 0.229666 1.125000 +v 0.972271 0.527728 1.125000 +v 1.270334 0.973810 1.125000 +v 1.375000 1.500000 1.125000 +v 1.270334 2.026190 1.125000 +v 0.972271 2.472272 1.125000 +v 0.526189 2.770335 1.125000 +v 0.000000 2.937500 2.875000 +v -0.550107 2.828077 2.875000 +v -1.016466 2.516467 2.875000 +v -1.328077 2.050108 2.875000 +v -1.437500 1.500000 2.875000 +v -1.328077 0.949893 2.875000 +v -1.016466 0.483534 2.875000 +v -0.550108 0.171924 2.875000 +v -0.000000 0.062500 2.875000 +v 0.550107 0.171924 2.875000 +v 1.016465 0.483534 2.875000 +v 1.328076 0.949893 2.875000 +v 1.437500 1.500000 2.875000 +v 1.328076 2.050108 2.875000 +v 1.016465 2.516467 2.875000 +v 0.550107 2.828077 2.875000 +v 0.000000 2.937500 1.375000 +v -0.550107 2.828077 1.375000 +v -1.016466 2.516467 1.375000 +v -1.328077 2.050108 1.375000 +v -1.437500 1.500000 1.375000 +v -1.328077 0.949893 1.375000 +v -1.016466 0.483534 1.375000 +v -0.550108 0.171924 1.375000 +v -0.000000 0.062500 1.375000 +v 0.550107 0.171924 1.375000 +v 1.016465 0.483534 1.375000 +v 1.328076 0.949893 1.375000 +v 1.437500 1.500000 1.375000 +v 1.328076 2.050108 1.375000 +v 1.016465 2.516467 1.375000 +v 0.550107 2.828077 1.375000 +v -0.000000 2.500000 1.125000 +v -0.382684 2.423880 1.125000 +v -0.707107 2.207107 1.125000 +v -0.923880 1.882684 1.125000 +v -1.000000 1.500000 1.125000 +v -0.923880 1.117317 1.125000 +v -0.707107 0.792893 1.125000 +v -0.382684 0.576120 1.125000 +v -0.000000 0.500000 1.125000 +v 0.382683 0.576120 1.125000 +v 0.707106 0.792893 1.125000 +v 0.923879 1.117316 1.125000 +v 1.000000 1.500000 1.125000 +v 0.923879 1.882684 1.125000 +v 0.707106 2.207107 1.125000 +v 0.382683 2.423880 1.125000 +v 0.334847 2.308395 1.125000 +v 0.618718 2.118719 1.125000 +v 0.808394 1.834848 1.125000 +v 0.875000 1.500000 1.125000 +v 0.808394 1.165152 1.125000 +v 0.618718 0.881281 1.125000 +v 0.334848 0.691606 1.125000 +v -0.000000 0.625000 1.125000 +v -0.334848 0.691606 1.125000 +v -0.618719 0.881282 1.125000 +v -0.808395 1.165152 1.125000 +v -0.875000 1.500000 1.125000 +v -0.808395 1.834848 1.125000 +v -0.618719 2.118719 1.125000 +v -0.334848 2.308394 1.125000 +v -0.000000 2.375000 1.125000 +v -0.000000 2.250000 1.125000 +v -0.287013 2.192910 1.125000 +v -0.530330 2.030330 1.125000 +v -0.692910 1.787013 1.125000 +v -0.750000 1.500000 1.125000 +v -0.692910 1.212987 1.125000 +v -0.530330 0.969670 1.125000 +v -0.287013 0.807090 1.125000 +v -0.000000 0.750000 1.125000 +v 0.287012 0.807090 1.125000 +v 0.530330 0.969670 1.125000 +v 0.692909 1.212987 1.125000 +v 0.750000 1.500000 1.125000 +v 0.692909 1.787013 1.125000 +v 0.530330 2.030330 1.125000 +v 0.287012 2.192910 1.125000 +v -0.000000 2.375000 1.125000 +v -0.334848 2.308394 1.125000 +v -0.618719 2.118719 1.125000 +v -0.808395 1.834848 1.125000 +v -0.875000 1.500000 1.125000 +v -0.808395 1.165152 1.125000 +v -0.618719 0.881282 1.125000 +v -0.334848 0.691606 1.125000 +v -0.000000 0.625000 1.125000 +v 0.334848 0.691606 1.125000 +v 0.618718 0.881281 1.125000 +v 0.808394 1.165152 1.125000 +v 0.875000 1.500000 1.125000 +v 0.808394 1.834848 1.125000 +v 0.618718 2.118719 1.125000 +v 0.334847 2.308395 1.125000 +v 0.937500 1.625000 2.187500 +v 0.937500 1.375000 2.187500 +v 0.937500 1.625000 1.312500 +v 0.937500 1.375000 1.312500 +v 1.375000 1.625000 1.312500 +v 1.375000 1.625000 2.187500 +v 1.375000 1.375000 2.187500 +v 1.375000 1.375000 1.312500 +v -0.937500 1.375000 2.187500 +v -0.937500 1.625000 2.187500 +v -0.937500 1.375000 1.312500 +v -0.937500 1.625000 1.312500 +v -1.375000 1.375000 1.312500 +v -1.375000 1.375000 2.187500 +v -1.375000 1.625000 2.187500 +v -1.375000 1.625000 1.312500 +v 0.125000 0.562500 2.187500 +v -0.125000 0.562500 2.187500 +v 0.125000 0.562500 1.312500 +v -0.125000 0.562500 1.312500 +v 0.125000 0.125000 1.312500 +v 0.125000 0.125000 2.187500 +v -0.125000 0.125000 2.187500 +v -0.125000 0.125000 1.312500 +v -0.125000 2.437500 2.187500 +v 0.125000 2.437500 2.187500 +v -0.125000 2.437500 1.312500 +v 0.125000 2.437500 1.312500 +v -0.125000 2.875000 1.312500 +v -0.125000 2.875000 2.187500 +v 0.125000 2.875000 2.187500 +v 0.125000 2.875000 1.312500 +v 0.874399 1.139503 2.187500 +v 0.749399 0.922997 2.187500 +v 0.874399 1.139503 1.312500 +v 0.749399 0.922997 1.312500 +v 1.253285 0.920753 1.312500 +v 1.253285 0.920753 2.187500 +v 1.128285 0.704247 2.187500 +v 1.128285 0.704247 1.312500 +v -0.874399 1.860497 2.187500 +v -0.749399 2.077003 2.187500 +v -0.874399 1.860497 1.312500 +v -0.749399 2.077003 1.312500 +v -1.253285 2.079247 1.312500 +v -1.253285 2.079247 2.187500 +v -1.128285 2.295753 2.187500 +v -1.128285 2.295753 1.312500 +v -0.360497 0.625601 2.187500 +v -0.577003 0.750601 2.187500 +v -0.360497 0.625601 1.312500 +v -0.577003 0.750601 1.312500 +v -0.579247 0.246715 1.312500 +v -0.579247 0.246715 2.187500 +v -0.795753 0.371715 2.187500 +v -0.795753 0.371715 1.312500 +v 0.360497 2.374399 2.187500 +v 0.577003 2.249399 2.187500 +v 0.360497 2.374399 1.312500 +v 0.577003 2.249399 1.312500 +v 0.579247 2.753285 1.312500 +v 0.579247 2.753285 2.187500 +v 0.795753 2.628285 2.187500 +v 0.795753 2.628285 1.312500 +v 0.577003 0.750601 2.187500 +v 0.360497 0.625601 2.187500 +v 0.577003 0.750601 1.312500 +v 0.360497 0.625601 1.312500 +v 0.795753 0.371715 1.312500 +v 0.795753 0.371715 2.187500 +v 0.579247 0.246715 2.187500 +v 0.579247 0.246715 1.312500 +v -0.577003 2.249399 2.187500 +v -0.360497 2.374399 2.187500 +v -0.577003 2.249399 1.312500 +v -0.360497 2.374399 1.312500 +v -0.795753 2.628285 1.312500 +v -0.795753 2.628285 2.187500 +v -0.579247 2.753285 2.187500 +v -0.579247 2.753285 1.312500 +v -0.749399 0.922997 2.187500 +v -0.874399 1.139503 2.187500 +v -0.749399 0.922997 1.312500 +v -0.874399 1.139503 1.312500 +v -1.128285 0.704247 1.312500 +v -1.128285 0.704247 2.187500 +v -1.253285 0.920753 2.187500 +v -1.253285 0.920753 1.312500 +v 0.749399 2.077003 2.187500 +v 0.874399 1.860497 2.187500 +v 0.749399 2.077003 1.312500 +v 0.874399 1.860497 1.312500 +v 1.128285 2.295753 1.312500 +v 1.128285 2.295753 2.187500 +v 1.253285 2.079247 2.187500 +v 1.253285 2.079247 1.312500 +v 1.011684 1.229358 -0.250000 +v 0.909767 1.330389 -0.250000 +v 0.766262 1.329762 -0.250000 +v 0.665232 1.227846 -0.250000 +v 0.665858 1.084342 -0.250000 +v 0.767774 0.983311 -0.250000 +v 1.012310 1.085853 -0.250000 +v 0.911279 0.983937 -0.250000 +v 1.011684 1.229358 0.250000 +v 0.909767 1.330389 0.250000 +v 0.766262 1.329762 0.250000 +v 0.665232 1.227846 0.250000 +v 0.665858 1.084342 0.250000 +v 0.767774 0.983311 0.250000 +v 1.012310 1.085853 0.250000 +v 0.911279 0.983937 0.250000 +v -0.000000 2.156250 -2.875000 +v -0.251136 2.106296 -2.875000 +v -0.464039 1.964039 -2.875000 +v -0.606296 1.751136 -2.875000 +v -0.656250 1.500000 -2.875000 +v -0.606296 1.248864 -2.875000 +v -0.464039 1.035961 -2.875000 +v -0.251136 0.893704 -2.875000 +v -0.000000 0.843750 -2.875000 +v 0.251136 0.893704 -2.875000 +v 0.464038 1.035961 -2.875000 +v 0.606296 1.248864 -2.875000 +v 0.656250 1.500000 -2.875000 +v 0.606296 1.751136 -2.875000 +v 0.464038 1.964039 -2.875000 +v 0.251135 2.106296 -2.875000 +v -0.000000 1.828125 -3.375000 +v -0.125568 1.803148 -3.375000 +v -0.232020 1.732019 -3.375000 +v -0.303148 1.625568 -3.375000 +v -0.328125 1.500000 -3.375000 +v -0.303148 1.374432 -3.375000 +v -0.232020 1.267981 -3.375000 +v -0.125568 1.196852 -3.375000 +v -0.000000 1.171875 -3.375000 +v 0.125568 1.196852 -3.375000 +v 0.232019 1.267981 -3.375000 +v 0.303148 1.374432 -3.375000 +v 0.328125 1.500000 -3.375000 +v 0.303148 1.625568 -3.375000 +v 0.232019 1.732019 -3.375000 +v 0.125568 1.803148 -3.375000 +v -0.000000 1.500000 -3.500000 +v -0.000000 2.500000 -2.500000 +v -0.382684 2.423880 -2.500000 +v -0.707107 2.207107 -2.500000 +v -0.923880 1.882684 -2.500000 +v -1.000000 1.500000 -2.500000 +v -0.923880 1.117317 -2.500000 +v -0.707107 0.792893 -2.500000 +v -0.382684 0.576120 -2.500000 +v -0.000000 0.500000 -2.500000 +v 0.382683 0.576120 -2.500000 +v 0.707106 0.792893 -2.500000 +v 0.923879 1.117316 -2.500000 +v 1.000000 1.500000 -2.500000 +v 0.923879 1.882684 -2.500000 +v 0.707106 2.207107 -2.500000 +v 0.382683 2.423880 -2.500000 +v -0.000000 2.500000 -1.000000 +v -0.382684 2.423880 -1.000000 +v -0.707107 2.207107 -1.000000 +v -0.923880 1.882684 -1.000000 +v -1.000000 1.500000 -1.000000 +v -0.923880 1.117317 -1.000000 +v -0.707107 0.792893 -1.000000 +v -0.382684 0.576120 -1.000000 +v -0.000000 0.500000 -1.000000 +v 0.382683 0.576120 -1.000000 +v 0.707106 0.792893 -1.000000 +v 0.923879 1.117316 -1.000000 +v 1.000000 1.500000 -1.000000 +v 0.923879 1.882684 -1.000000 +v 0.707106 2.207107 -1.000000 +v 0.382683 2.423880 -1.000000 +v -0.000000 2.375000 -1.000000 +v -0.334848 2.308394 -1.000000 +v -0.618719 2.118719 -1.000000 +v -0.808395 1.834848 -1.000000 +v -0.875000 1.500000 -1.000000 +v -0.808395 1.165152 -1.000000 +v -0.618719 0.881282 -1.000000 +v -0.334848 0.691606 -1.000000 +v -0.000000 0.625000 -1.000000 +v 0.334848 0.691606 -1.000000 +v 0.618718 0.881281 -1.000000 +v 0.808394 1.165152 -1.000000 +v 0.875000 1.500000 -1.000000 +v 0.808394 1.834848 -1.000000 +v 0.618718 2.118719 -1.000000 +v 0.334847 2.308395 -1.000000 +v -0.000000 2.156250 -1.000000 +v -0.251136 2.106296 -1.000000 +v -0.464039 1.964039 -1.000000 +v -0.606296 1.751136 -1.000000 +v -0.656250 1.500000 -1.000000 +v -0.606296 1.248864 -1.000000 +v -0.464039 1.035961 -1.000000 +v -0.251136 0.893704 -1.000000 +v -0.000000 0.843750 -1.000000 +v 0.251136 0.893704 -1.000000 +v 0.464038 1.035961 -1.000000 +v 0.606296 1.248864 -1.000000 +v 0.656250 1.500000 -1.000000 +v 0.606296 1.751136 -1.000000 +v 0.464038 1.964039 -1.000000 +v 0.251135 2.106296 -1.000000 +v 0.000000 3.000000 2.750000 +v -0.574025 2.885819 2.750000 +v -1.060660 2.560660 2.750000 +v -1.385819 2.074025 2.750000 +v -1.500000 1.500000 2.750000 +v -1.385819 0.925975 2.750000 +v -1.060660 0.439340 2.750000 +v -0.574025 0.114181 2.750000 +v 0.000000 0.000000 2.750000 +v 0.574025 0.114181 2.750000 +v 1.060660 0.439340 2.750000 +v 1.385819 0.925975 2.750000 +v 1.500000 1.500000 2.750000 +v 1.385819 2.074025 2.750000 +v 1.060659 2.560660 2.750000 +v 0.574024 2.885819 2.750000 +v 0.000000 3.000000 2.250000 +v -0.574025 2.885819 2.250000 +v -1.060660 2.560660 2.250000 +v -1.385819 2.074025 2.250000 +v -1.500000 1.500000 2.250000 +v -1.385819 0.925975 2.250000 +v -1.060660 0.439340 2.250000 +v -0.574025 0.114181 2.250000 +v 0.000000 0.000000 2.250000 +v 0.574025 0.114181 2.250000 +v 1.060660 0.439340 2.250000 +v 1.385819 0.925975 2.250000 +v 1.500000 1.500000 2.250000 +v 1.385819 2.074025 2.250000 +v 1.060659 2.560660 2.250000 +v 0.574024 2.885819 2.250000 +v 1.500000 0.687500 0.187500 +v 1.500000 0.312500 0.187500 +v 1.500000 0.687500 -0.187500 +v 1.500000 0.312500 -0.187500 +v 1.375000 0.687500 -0.187500 +v 1.375000 0.687500 0.187500 +v 1.375000 0.312500 0.187500 +v 1.375000 0.312500 -0.187500 +v 1.500000 0.687500 -0.812500 +v 1.500000 0.312500 -0.812500 +v 1.500000 0.687500 -1.187500 +v 1.500000 0.312500 -1.187500 +v 1.375000 0.687500 -1.187500 +v 1.375000 0.687500 -0.812500 +v 1.375000 0.312500 -0.812500 +v 1.375000 0.312500 -1.187500 +v -1.375000 0.687500 0.187500 +v -1.375000 0.312500 0.187500 +v -1.375000 0.687500 -0.187500 +v -1.375000 0.312500 -0.187500 +v -1.500000 0.687500 -0.187500 +v -1.500000 0.687500 0.187500 +v -1.500000 0.312500 0.187500 +v -1.500000 0.312500 -0.187500 +v -1.375000 0.687500 -0.812500 +v -1.375000 0.312500 -0.812500 +v -1.375000 0.687500 -1.187500 +v -1.375000 0.312500 -1.187500 +v -1.500000 0.687500 -1.187500 +v -1.500000 0.687500 -0.812500 +v -1.500000 0.312500 -0.812500 +v -1.500000 0.312500 -1.187500 +v 1.375000 1.000000 0.500000 +v 1.375000 0.000000 0.500000 +v 1.375000 1.000000 -1.500000 +v 1.375000 0.000000 -1.500000 +v 1.000000 1.000000 -1.500000 +v 1.000000 1.000000 0.500000 +v 0.500000 0.500000 -1.500000 +v 0.500000 0.500000 0.500000 +v 0.500000 0.000000 0.500000 +v 0.500000 0.000000 -1.500000 +v -1.375000 1.000000 -1.500000 +v -1.375000 0.000000 -1.500000 +v -1.375000 1.000000 0.500000 +v -1.375000 0.000000 0.500000 +v -1.000000 1.000000 0.500000 +v -1.000000 1.000000 -1.500000 +v -0.500000 0.500000 0.500000 +v -0.500000 0.500000 -1.500000 +v -0.500000 0.000000 -1.500000 +v -0.500000 0.000000 0.500000 +v 0.414147 2.512310 -1.000000 +v 0.448119 2.478633 -1.000000 +v 0.448327 2.430798 -1.000000 +v 0.414650 2.396826 -1.000000 +v 0.366816 2.396617 -1.000000 +v 0.332843 2.430294 -1.000000 +v 0.332635 2.478129 -1.000000 +v 0.366312 2.512101 -1.000000 +v 0.366815 2.396617 -2.375000 +v 0.407719 2.379883 -2.356694 +v 0.424662 2.372952 -2.312500 +v 0.407719 2.379883 -2.268306 +v 0.325912 2.413351 -2.268306 +v 0.308969 2.420282 -2.312500 +v 0.325912 2.413351 -2.356694 +v 0.400284 2.478424 -2.338389 +v 0.436286 2.449709 -2.325444 +v 0.441396 2.413855 -2.294194 +v 0.412620 2.391863 -2.262944 +v 0.366815 2.396617 -2.250000 +v 0.330813 2.425331 -2.262944 +v 0.325703 2.461186 -2.294194 +v 0.354479 2.483178 -2.325444 +v 0.414146 2.512310 -2.250000 +v 0.448118 2.478633 -2.250000 +v 0.448327 2.430798 -2.250000 +v 0.414650 2.396826 -2.250000 +v 0.332843 2.430294 -2.250000 +v 0.332635 2.478128 -2.250000 +v 0.366311 2.512101 -2.250000 +v 0.400787 2.362940 -0.500000 +v 0.366815 2.396617 -0.500000 +v 0.400996 2.315105 -0.500000 +v 0.367319 2.281133 -0.500000 +v 0.319484 2.280925 -0.500000 +v 0.285512 2.314601 -0.500000 +v 0.285304 2.362436 -0.500000 +v 0.318980 2.396409 -0.500000 +v 0.400787 2.362940 1.125000 +v 0.366815 2.396617 1.125000 +v 0.400996 2.315105 1.125000 +v 0.367319 2.281133 1.125000 +v 0.319484 2.280924 1.125000 +v 0.285512 2.314601 1.125000 +v 0.285304 2.362436 1.125000 +v 0.318980 2.396408 1.125000 +v 1.009283 1.779460 0.250000 +v 1.008657 1.922965 0.250000 +v 0.908253 1.677544 0.250000 +v 0.764747 1.676918 0.250000 +v 0.662832 1.777948 0.250000 +v 0.662205 1.921453 0.250000 +v 0.763236 2.023369 0.250000 +v 0.906741 2.023996 0.250000 +v 1.009283 1.779460 -0.250000 +v 1.008657 1.922965 -0.250000 +v 0.908253 1.677544 -0.250000 +v 0.764747 1.676918 -0.250000 +v 0.662832 1.777948 -0.250000 +v 0.662205 1.921453 -0.250000 +v 0.763236 2.023369 -0.250000 +v 0.906741 2.023996 -0.250000 +v 1.312500 1.125000 0.125000 +v 1.294194 1.125000 0.169194 +v 1.250000 1.125000 0.187500 +v 1.205806 1.125000 0.169194 +v 1.187500 1.125000 0.125000 +v 1.205806 1.125000 0.080806 +v 1.250000 1.125000 0.062500 +v 1.294194 1.125000 0.080806 +v 1.275888 1.213388 0.125000 +v 1.262944 1.200444 0.169194 +v 1.231694 1.169194 0.187500 +v 1.200444 1.137944 0.169194 +v 1.200444 1.137944 0.080806 +v 1.231694 1.169194 0.062500 +v 1.262944 1.200444 0.080806 +v 1.187500 1.250000 0.125000 +v 1.187500 1.231694 0.169194 +v 1.187500 1.187500 0.187500 +v 1.187500 1.143306 0.169194 +v 1.187500 1.143306 0.080806 +v 1.187500 1.187500 0.062500 +v 1.187500 1.231694 0.080806 +v 1.312500 1.000000 0.125000 +v 1.294194 1.000000 0.169194 +v 1.250000 1.000000 0.187500 +v 1.205806 1.000000 0.169194 +v 1.187500 1.000000 0.125000 +v 1.205806 1.000000 0.080806 +v 1.250000 1.000000 0.062500 +v 1.294194 1.000000 0.080806 +v 0.937500 1.125000 0.125000 +v 0.937500 1.250000 0.125000 +v 0.937500 1.231694 0.169194 +v 0.937500 1.187500 0.187500 +v 0.937500 1.143306 0.169194 +v 0.937500 1.143306 0.080806 +v 0.937500 1.187500 0.062500 +v 0.937500 1.231694 0.080806 +v 1.312500 1.750000 -0.125000 +v 1.294194 1.750000 -0.080806 +v 1.250000 1.750000 -0.062500 +v 1.205806 1.750000 -0.080806 +v 1.187500 1.750000 -0.125000 +v 1.205806 1.750000 -0.169194 +v 1.250000 1.750000 -0.187500 +v 1.294194 1.750000 -0.169194 +v 1.275888 1.838388 -0.125000 +v 1.262944 1.825444 -0.080806 +v 1.231694 1.794194 -0.062500 +v 1.200444 1.762944 -0.080806 +v 1.200444 1.762944 -0.169194 +v 1.231694 1.794194 -0.187500 +v 1.262944 1.825444 -0.169194 +v 1.187500 1.875000 -0.125000 +v 1.187500 1.856694 -0.080806 +v 1.187500 1.812500 -0.062500 +v 1.187500 1.768306 -0.080806 +v 1.187500 1.768306 -0.169194 +v 1.187500 1.812500 -0.187500 +v 1.187500 1.856694 -0.169194 +v 0.937500 1.750000 -0.125000 +v 0.937500 1.875000 -0.125000 +v 0.937500 1.856694 -0.080806 +v 0.937500 1.812500 -0.062500 +v 0.937500 1.768306 -0.080806 +v 0.937500 1.768306 -0.169194 +v 0.937500 1.812500 -0.187500 +v 0.937500 1.856694 -0.169194 +v 1.250000 1.125000 -0.187500 +v 1.205806 1.143306 -0.187500 +v 1.187500 1.187500 -0.187500 +v 1.205806 1.231694 -0.187500 +v 1.250000 1.250000 -0.187500 +v 1.294194 1.231694 -0.187500 +v 1.312500 1.187500 -0.187500 +v 1.294194 1.143306 -0.187500 +v 1.250000 1.161612 -0.099112 +v 1.205806 1.174556 -0.112056 +v 1.187500 1.205806 -0.143306 +v 1.205806 1.237056 -0.174556 +v 1.294194 1.237056 -0.174556 +v 1.312500 1.205806 -0.143306 +v 1.294194 1.174556 -0.112056 +v 1.250000 1.250000 -0.062500 +v 1.205806 1.250000 -0.080806 +v 1.187500 1.250000 -0.125000 +v 1.205806 1.250000 -0.169194 +v 1.294194 1.250000 -0.169194 +v 1.312500 1.250000 -0.125000 +v 1.294194 1.250000 -0.080806 +v 1.250000 1.125000 -1.062500 +v 1.294194 1.125000 -1.044194 +v 1.312500 1.125000 -1.000000 +v 1.294194 1.125000 -0.955806 +v 1.250000 1.125000 -0.937500 +v 1.205806 1.125000 -0.955806 +v 1.187500 1.125000 -1.000000 +v 1.205806 1.125000 -1.044194 +v 1.250000 1.213388 -1.025888 +v 1.294194 1.200444 -1.012944 +v 1.312500 1.169194 -0.981694 +v 1.294194 1.137944 -0.950444 +v 1.205806 1.137944 -0.950444 +v 1.187500 1.169194 -0.981694 +v 1.205806 1.200444 -1.012944 +v 1.250000 1.250000 -0.937500 +v 1.294194 1.231694 -0.937500 +v 1.312500 1.187500 -0.937500 +v 1.294194 1.143306 -0.937500 +v 1.205806 1.143306 -0.937500 +v 1.187500 1.187500 -0.937500 +v 1.205806 1.231694 -0.937500 +v 1.250000 1.000000 -1.062500 +v 1.294194 1.000000 -1.044194 +v 1.312500 1.000000 -1.000000 +v 1.294194 1.000000 -0.955806 +v 1.250000 1.000000 -0.937500 +v 1.205806 1.000000 -0.955806 +v 1.187500 1.000000 -1.000000 +v 1.205806 1.000000 -1.044194 +v -0.375000 0.000000 0.875000 +v 0.375000 0.000000 0.875000 +v -0.375000 0.000000 -2.375000 +v 0.375000 0.000000 -2.375000 +v -0.375000 0.125000 -2.375000 +v -0.375000 0.125000 0.875000 +v 0.375000 0.125000 0.875000 +v 0.375000 0.125000 -2.375000 +v 0.312500 0.125000 0.812500 +v 0.312500 0.125000 -0.812500 +v 0.312500 0.687500 0.812500 +v 0.312500 0.687500 -0.812500 +v 0.187500 0.125000 0.812500 +v 0.187500 0.125000 -0.812500 +v 0.187500 0.687500 0.812500 +v 0.187500 0.687500 -0.812500 +v -0.187500 0.125000 0.812500 +v -0.187500 0.125000 -0.812500 +v -0.187500 0.687500 0.812500 +v -0.187500 0.687500 -0.812500 +v -0.312500 0.125000 0.812500 +v -0.312500 0.125000 -0.812500 +v -0.312500 0.687500 0.812500 +v -0.312500 0.687500 -0.812500 +v 0.312500 0.125000 -0.812500 +v 0.312500 0.625000 -0.812500 +v 0.187500 0.125000 -0.812500 +v 0.187500 0.625000 -0.812500 +v -0.187500 0.125000 -0.812500 +v -0.187500 0.625000 -0.812500 +v -0.312500 0.125000 -0.812500 +v -0.312500 0.625000 -0.812500 +v 0.312500 0.125000 -2.312500 +v 0.312500 0.625000 -2.312500 +v 0.187500 0.125000 -2.312500 +v 0.187500 0.625000 -2.312500 +v -0.187500 0.125000 -2.312500 +v -0.187500 0.625000 -2.312500 +v -0.312500 0.125000 -2.312500 +v -0.312500 0.625000 -2.312500 +v -1.312500 1.125000 0.125000 +v -1.294194 1.125000 0.169194 +v -1.250000 1.125000 0.187500 +v -1.205806 1.125000 0.169194 +v -1.187500 1.125000 0.125000 +v -1.205806 1.125000 0.080806 +v -1.250000 1.125000 0.062500 +v -1.294194 1.125000 0.080806 +v -1.275888 1.213388 0.125000 +v -1.262944 1.200444 0.169194 +v -1.231694 1.169194 0.187500 +v -1.200444 1.137944 0.169194 +v -1.200444 1.137944 0.080806 +v -1.231694 1.169194 0.062500 +v -1.262944 1.200444 0.080806 +v -1.187500 1.250000 0.125000 +v -1.187500 1.231694 0.169194 +v -1.187500 1.187500 0.187500 +v -1.187500 1.143306 0.169194 +v -1.187500 1.143306 0.080806 +v -1.187500 1.187500 0.062500 +v -1.187500 1.231694 0.080806 +v -1.312500 1.000000 0.125000 +v -1.294194 1.000000 0.169194 +v -1.250000 1.000000 0.187500 +v -1.205806 1.000000 0.169194 +v -1.187500 1.000000 0.125000 +v -1.205806 1.000000 0.080806 +v -1.250000 1.000000 0.062500 +v -1.294194 1.000000 0.080806 +v -0.937500 1.125000 0.125000 +v -0.937500 1.250000 0.125000 +v -0.937500 1.231694 0.169194 +v -0.937500 1.187500 0.187500 +v -0.937500 1.143306 0.169194 +v -0.937500 1.143306 0.080806 +v -0.937500 1.187500 0.062500 +v -0.937500 1.231694 0.080806 +v -1.312500 1.750000 -0.125000 +v -1.294194 1.750000 -0.080806 +v -1.250000 1.750000 -0.062500 +v -1.205806 1.750000 -0.080806 +v -1.187500 1.750000 -0.125000 +v -1.205806 1.750000 -0.169194 +v -1.250000 1.750000 -0.187500 +v -1.294194 1.750000 -0.169194 +v -1.275888 1.838388 -0.125000 +v -1.262944 1.825444 -0.080806 +v -1.231694 1.794194 -0.062500 +v -1.200444 1.762944 -0.080806 +v -1.200444 1.762944 -0.169194 +v -1.231694 1.794194 -0.187500 +v -1.262944 1.825444 -0.169194 +v -1.187500 1.875000 -0.125000 +v -1.187500 1.856694 -0.080806 +v -1.187500 1.812500 -0.062500 +v -1.187500 1.768306 -0.080806 +v -1.187500 1.768306 -0.169194 +v -1.187500 1.812500 -0.187500 +v -1.187500 1.856694 -0.169194 +v -0.937500 1.750000 -0.125000 +v -0.937500 1.875000 -0.125000 +v -0.937500 1.856694 -0.080806 +v -0.937500 1.812500 -0.062500 +v -0.937500 1.768306 -0.080806 +v -0.937500 1.768306 -0.169194 +v -0.937500 1.812500 -0.187500 +v -0.937500 1.856694 -0.169194 +v -1.250000 1.125000 -0.187500 +v -1.205806 1.143306 -0.187500 +v -1.187500 1.187500 -0.187500 +v -1.205806 1.231694 -0.187500 +v -1.250000 1.250000 -0.187500 +v -1.294194 1.231694 -0.187500 +v -1.312500 1.187500 -0.187500 +v -1.294194 1.143306 -0.187500 +v -1.250000 1.161612 -0.099112 +v -1.205806 1.174556 -0.112056 +v -1.187500 1.205806 -0.143306 +v -1.294194 1.237056 -0.174556 +v -1.312500 1.205806 -0.143306 +v -1.294194 1.174556 -0.112056 +v -1.250000 1.250000 -0.062500 +v -1.205806 1.250000 -0.080806 +v -1.187500 1.250000 -0.125000 +v -1.205806 1.250000 -0.169194 +v -1.294194 1.250000 -0.169194 +v -1.312500 1.250000 -0.125000 +v -1.294194 1.250000 -0.080806 +v -1.250000 1.125000 -1.062500 +v -1.294194 1.125000 -1.044194 +v -1.312500 1.125000 -1.000000 +v -1.294194 1.125000 -0.955806 +v -1.250000 1.125000 -0.937500 +v -1.205806 1.125000 -0.955806 +v -1.187500 1.125000 -1.000000 +v -1.205806 1.125000 -1.044194 +v -1.250000 1.213388 -1.025888 +v -1.294194 1.200444 -1.012944 +v -1.312500 1.169194 -0.981694 +v -1.294194 1.137944 -0.950444 +v -1.187500 1.169194 -0.981694 +v -1.205806 1.200444 -1.012944 +v -1.250000 1.250000 -0.937500 +v -1.294194 1.231694 -0.937500 +v -1.312500 1.187500 -0.937500 +v -1.294194 1.143306 -0.937500 +v -1.205806 1.143306 -0.937500 +v -1.187500 1.187500 -0.937500 +v -1.205806 1.231694 -0.937500 +v -1.250000 1.000000 -1.062500 +v -1.294194 1.000000 -1.044194 +v -1.312500 1.000000 -1.000000 +v -1.294194 1.000000 -0.955806 +v -1.250000 1.000000 -0.937500 +v -1.205806 1.000000 -0.955806 +v -1.187500 1.000000 -1.000000 +v -1.205806 1.000000 -1.044194 +v 0.526189 2.770334 3.062500 +v 0.972271 2.472272 3.062500 +v 1.270334 2.026190 3.062500 +v 1.375000 1.500000 3.062500 +v 1.270334 0.973810 3.062500 +v 0.972271 0.527728 3.062500 +v 0.526189 0.229665 3.062500 +v -0.000000 0.125000 3.062500 +v -0.526190 0.229665 3.062500 +v -0.972272 0.527728 3.062500 +v -1.270334 0.973810 3.062500 +v -1.375000 1.500000 3.062500 +v -1.270334 2.026189 3.062500 +v -0.972272 2.472271 3.062500 +v -0.526190 2.770334 3.062500 +v 0.000000 2.875000 3.062500 +v 0.000000 2.875000 1.125000 +v -0.526190 2.770334 1.125000 +v -0.972272 2.472272 1.125000 +v -1.270334 2.026190 1.125000 +v -1.375000 1.500000 1.125000 +v -1.270334 0.973810 1.125000 +v -0.972272 0.527728 1.125000 +v -0.526190 0.229666 1.125000 +v -0.000000 0.125000 1.125000 +v 0.526189 0.229666 1.125000 +v 0.972271 0.527728 1.125000 +v 1.270334 0.973810 1.125000 +v 1.375000 1.500000 1.125000 +v 1.270334 2.026190 1.125000 +v 0.972271 2.472272 1.125000 +v 0.526189 2.770335 1.125000 +v 0.000000 3.000000 3.125000 +v -0.574025 2.885819 3.125000 +v -1.060660 2.560660 3.125000 +v -1.385819 2.074025 3.125000 +v -1.500000 1.500000 3.125000 +v -1.385819 0.925975 3.125000 +v -1.060660 0.439340 3.125000 +v -0.574025 0.114181 3.125000 +v 0.000000 0.000000 3.125000 +v 0.574025 0.114181 3.125000 +v 1.060660 0.439340 3.125000 +v 1.385819 0.925975 3.125000 +v 1.500000 1.500000 3.125000 +v 1.385819 2.074025 3.125000 +v 1.060659 2.560660 3.125000 +v 0.574024 2.885819 3.125000 +v 0.000000 3.000000 1.125000 +v -0.574025 2.885819 1.125000 +v -1.060660 2.560660 1.125000 +v -1.385819 2.074025 1.125000 +v -1.500000 1.500000 1.125000 +v -1.385819 0.925975 1.125000 +v -1.060660 0.439340 1.125000 +v -0.574025 0.114181 1.125000 +v 0.000000 0.000000 1.125000 +v 0.574025 0.114181 1.125000 +v 1.060660 0.439340 1.125000 +v 1.385819 0.925975 1.125000 +v 1.500000 1.500000 1.125000 +v 1.385819 2.074025 1.125000 +v 1.060659 2.560660 1.125000 +v 0.574024 2.885819 1.125000 +v 0.000000 3.000000 2.875000 +v -0.574025 2.885819 2.875000 +v -1.060660 2.560660 2.875000 +v -1.385819 2.074025 2.875000 +v -1.500000 1.500000 2.875000 +v -1.385819 0.925975 2.875000 +v -1.060660 0.439340 2.875000 +v -0.574025 0.114181 2.875000 +v 0.000000 0.000000 2.875000 +v 0.574025 0.114181 2.875000 +v 1.060660 0.439340 2.875000 +v 1.385819 0.925975 2.875000 +v 1.500000 1.500000 2.875000 +v 1.385819 2.074025 2.875000 +v 1.060659 2.560660 2.875000 +v 0.574024 2.885819 2.875000 +v 0.000000 3.000000 1.375000 +v -0.574025 2.885819 1.375000 +v -1.060660 2.560660 1.375000 +v -1.385819 2.074025 1.375000 +v -1.500000 1.500000 1.375000 +v -1.385819 0.925975 1.375000 +v -1.060660 0.439340 1.375000 +v -0.574025 0.114181 1.375000 +v 0.000000 0.000000 1.375000 +v 0.574025 0.114181 1.375000 +v 1.060660 0.439340 1.375000 +v 1.385819 0.925975 1.375000 +v 1.500000 1.500000 1.375000 +v 1.385819 2.074025 1.375000 +v 1.060659 2.560660 1.375000 +v 0.574024 2.885819 1.375000 +v 0.000000 2.937500 2.875000 +v -0.550107 2.828077 2.875000 +v -1.016466 2.516467 2.875000 +v -1.328077 2.050108 2.875000 +v -1.437500 1.500000 2.875000 +v -1.328077 0.949893 2.875000 +v -1.016466 0.483534 2.875000 +v -0.550108 0.171924 2.875000 +v -0.000000 0.062500 2.875000 +v 0.550107 0.171924 2.875000 +v 1.016465 0.483534 2.875000 +v 1.328076 0.949893 2.875000 +v 1.437500 1.500000 2.875000 +v 1.328076 2.050108 2.875000 +v 1.016465 2.516467 2.875000 +v 0.550107 2.828077 2.875000 +v 0.000000 2.937500 1.375000 +v -0.550107 2.828077 1.375000 +v -1.016466 2.516467 1.375000 +v -1.328077 2.050108 1.375000 +v -1.437500 1.500000 1.375000 +v -1.328077 0.949893 1.375000 +v -1.016466 0.483534 1.375000 +v -0.550108 0.171924 1.375000 +v -0.000000 0.062500 1.375000 +v 0.550107 0.171924 1.375000 +v 1.016465 0.483534 1.375000 +v 1.328076 0.949893 1.375000 +v 1.437500 1.500000 1.375000 +v 1.328076 2.050108 1.375000 +v 1.016465 2.516467 1.375000 +v 0.550107 2.828077 1.375000 +v -0.000000 2.375000 -0.500000 +v -0.334848 2.308394 -0.500000 +v -0.618719 2.118719 -0.500000 +v -0.808395 1.834848 -0.500000 +v -0.875000 1.500000 -0.500000 +v -0.808395 1.165152 -0.500000 +v -0.618719 0.881282 -0.500000 +v -0.334848 0.691606 -0.500000 +v -0.000000 0.625000 -0.500000 +v 0.334848 0.691606 -0.500000 +v 0.618718 0.881281 -0.500000 +v 0.808394 1.165152 -0.500000 +v 0.875000 1.500000 -0.500000 +v 0.808394 1.834848 -0.500000 +v 0.618718 2.118719 -0.500000 +v 0.334847 2.308395 -0.500000 +v -0.000000 2.500000 -1.000000 +v -0.382684 2.423880 -1.000000 +v -0.707107 2.207107 -1.000000 +v -0.923880 1.882684 -1.000000 +v -1.000000 1.500000 -1.000000 +v -0.923880 1.117317 -1.000000 +v -0.707107 0.792893 -1.000000 +v -0.382684 0.576120 -1.000000 +v -0.000000 0.500000 -1.000000 +v 0.382683 0.576120 -1.000000 +v 0.707106 0.792893 -1.000000 +v 0.923879 1.117316 -1.000000 +v 1.000000 1.500000 -1.000000 +v 0.923879 1.882684 -1.000000 +v 0.707106 2.207107 -1.000000 +v 0.382683 2.423880 -1.000000 +v -0.000000 2.375000 -3.000000 +v -0.334848 2.308394 -3.000000 +v -0.618719 2.118719 -3.000000 +v -0.808395 1.834848 -3.000000 +v -0.875000 1.500000 -3.000000 +v -0.808395 1.165152 -3.000000 +v -0.618719 0.881282 -3.000000 +v -0.334848 0.691606 -3.000000 +v -0.000000 0.625000 -3.000000 +v 0.334848 0.691606 -3.000000 +v 0.618718 0.881281 -3.000000 +v 0.808394 1.165152 -3.000000 +v 0.875000 1.500000 -3.000000 +v 0.808394 1.834848 -3.000000 +v 0.618718 2.118719 -3.000000 +v 0.334847 2.308395 -3.000000 +v -0.000000 2.375000 -1.000000 +v -0.334848 2.308394 -1.000000 +v -0.618719 2.118719 -1.000000 +v -0.808395 1.834848 -1.000000 +v -0.875000 1.500000 -1.000000 +v -0.808395 1.165152 -1.000000 +v -0.618719 0.881282 -1.000000 +v -0.334848 0.691606 -1.000000 +v -0.000000 0.625000 -1.000000 +v 0.334848 0.691606 -1.000000 +v 0.618718 0.881281 -1.000000 +v 0.808394 1.165152 -1.000000 +v 0.875000 1.500000 -1.000000 +v 0.808394 1.834848 -1.000000 +v 0.618718 2.118719 -1.000000 +v 0.334847 2.308395 -1.000000 +v -1.011684 1.770642 -0.250000 +v -0.909767 1.669611 -0.250000 +v -0.766263 1.670238 -0.250000 +v -0.665232 1.772154 -0.250000 +v -0.665858 1.915658 -0.250000 +v -0.767774 2.016689 -0.250000 +v -1.012310 1.914147 -0.250000 +v -0.911279 2.016063 -0.250000 +v -1.011684 1.770642 0.250000 +v -0.909767 1.669611 0.250000 +v -0.766263 1.670238 0.250000 +v -0.665232 1.772154 0.250000 +v -0.665858 1.915658 0.250000 +v -0.767774 2.016689 0.250000 +v -1.012310 1.914147 0.250000 +v -0.911279 2.016063 0.250000 +v -1.009284 1.220540 0.250000 +v -1.008657 1.077035 0.250000 +v -0.908253 1.322456 0.250000 +v -0.764748 1.323082 0.250000 +v -0.662832 1.222052 0.250000 +v -0.662206 1.078547 0.250000 +v -0.763236 0.976631 0.250000 +v -0.906741 0.976004 0.250000 +v -1.009284 1.220540 -0.250000 +v -1.008657 1.077035 -0.250000 +v -0.908253 1.322456 -0.250000 +v -0.764748 1.323082 -0.250000 +v -0.662832 1.222052 -0.250000 +v -0.662206 1.078547 -0.250000 +v -0.763236 0.976631 -0.250000 +v -0.906741 0.976004 -0.250000 +v -0.414147 0.487690 -1.000000 +v -0.448119 0.521367 -1.000000 +v -0.448328 0.569202 -1.000000 +v -0.414651 0.603174 -1.000000 +v -0.366816 0.603383 -1.000000 +v -0.332844 0.569706 -1.000000 +v -0.332635 0.521871 -1.000000 +v -0.366312 0.487899 -1.000000 +v -0.366816 0.603383 -2.375000 +v -0.407719 0.620117 -2.356694 +v -0.424662 0.627048 -2.312500 +v -0.407719 0.620117 -2.268306 +v -0.325912 0.586649 -2.268306 +v -0.308970 0.579718 -2.312500 +v -0.325912 0.586649 -2.356694 +v -0.400284 0.521576 -2.338389 +v -0.436286 0.550291 -2.325444 +v -0.441396 0.586145 -2.294194 +v -0.412621 0.608137 -2.262944 +v -0.366816 0.603383 -2.250000 +v -0.330814 0.574669 -2.262944 +v -0.325704 0.538814 -2.294194 +v -0.354479 0.516822 -2.325444 +v -0.414147 0.487690 -2.250000 +v -0.448119 0.521367 -2.250000 +v -0.448328 0.569202 -2.250000 +v -0.414651 0.603174 -2.250000 +v -0.332844 0.569706 -2.250000 +v -0.332635 0.521872 -2.250000 +v -0.366312 0.487899 -2.250000 +v -0.400788 0.637060 -0.500000 +v -0.366816 0.603383 -0.500000 +v -0.400997 0.684895 -0.500000 +v -0.367320 0.718867 -0.500000 +v -0.319485 0.719075 -0.500000 +v -0.285513 0.685399 -0.500000 +v -0.285304 0.637564 -0.500000 +v -0.318981 0.603591 -0.500000 +v -0.400788 0.637060 1.125000 +v -0.366816 0.603383 1.125000 +v -0.400997 0.684895 1.125000 +v -0.367320 0.718867 1.125000 +v -0.319485 0.719076 1.125000 +v -0.285513 0.685399 1.125000 +v -0.285304 0.637564 1.125000 +v -0.318981 0.603592 1.125000 +v 1.012310 1.085853 -1.000000 +v 0.978633 1.051881 -1.000000 +v 0.930798 1.051672 -1.000000 +v 0.896826 1.085349 -1.000000 +v 0.896617 1.133184 -1.000000 +v 0.930294 1.167156 -1.000000 +v 0.978129 1.167365 -1.000000 +v 1.012101 1.133688 -1.000000 +v 0.896617 1.133184 -2.375000 +v 0.879883 1.092281 -2.356694 +v 0.872951 1.075338 -2.312500 +v 0.879883 1.092281 -2.268306 +v 0.913351 1.174088 -2.268306 +v 0.920282 1.191031 -2.312500 +v 0.913351 1.174088 -2.356694 +v 0.978424 1.099716 -2.338388 +v 0.949709 1.063714 -2.325444 +v 0.913855 1.058604 -2.294194 +v 0.891863 1.087380 -2.262944 +v 0.896617 1.133184 -2.250000 +v 0.925331 1.169187 -2.262944 +v 0.961186 1.174297 -2.294194 +v 0.983177 1.145521 -2.325444 +v 1.012309 1.085853 -2.250000 +v 0.978633 1.051881 -2.250000 +v 0.930797 1.051673 -2.250000 +v 0.896826 1.085349 -2.250000 +v 0.930294 1.167156 -2.250000 +v 0.978128 1.167365 -2.250000 +v 1.012100 1.133688 -2.250000 +v 0.862940 1.099212 -0.500000 +v 0.896617 1.133184 -0.500000 +v 0.815105 1.099004 -0.500000 +v 0.781133 1.132680 -0.500000 +v 0.780925 1.180515 -0.500000 +v 0.814601 1.214487 -0.500000 +v 0.862436 1.214696 -0.500000 +v 0.896408 1.181019 -0.500000 +v 0.862940 1.099212 1.125000 +v 0.896617 1.133184 1.125000 +v 0.815105 1.099004 1.125000 +v 0.781133 1.132681 1.125000 +v 0.780924 1.180516 1.125000 +v 0.814601 1.214488 1.125000 +v 0.862436 1.214696 1.125000 +v 0.896408 1.181019 1.125000 +v -1.012310 1.914147 -1.000000 +v -0.978633 1.948119 -1.000000 +v -0.930798 1.948328 -1.000000 +v -0.896826 1.914651 -1.000000 +v -0.896618 1.866816 -1.000000 +v -0.930294 1.832844 -1.000000 +v -0.978130 1.832635 -1.000000 +v -1.012101 1.866312 -1.000000 +v -0.896617 1.866816 -2.375000 +v -0.879883 1.907719 -2.356694 +v -0.872952 1.924662 -2.312500 +v -0.879883 1.907719 -2.268306 +v -0.913351 1.825912 -2.268306 +v -0.920283 1.808969 -2.312500 +v -0.913351 1.825912 -2.356694 +v -0.978424 1.900284 -2.338388 +v -0.949710 1.936286 -2.325444 +v -0.913855 1.941396 -2.294194 +v -0.891864 1.912621 -2.262944 +v -0.896617 1.866816 -2.250000 +v -0.925331 1.830813 -2.262944 +v -0.961186 1.825704 -2.294194 +v -0.983178 1.854479 -2.325444 +v -1.012310 1.914147 -2.250000 +v -0.978633 1.948119 -2.250000 +v -0.930798 1.948328 -2.250000 +v -0.896826 1.914651 -2.250000 +v -0.930294 1.832844 -2.250000 +v -0.978129 1.832635 -2.250000 +v -1.012101 1.866312 -2.250000 +v -0.862941 1.900788 -0.500000 +v -0.896617 1.866816 -0.500000 +v -0.815106 1.900996 -0.500000 +v -0.781133 1.867320 -0.500000 +v -0.780925 1.819485 -0.500000 +v -0.814602 1.785513 -0.500000 +v -0.862437 1.785304 -0.500000 +v -0.896409 1.818981 -0.500000 +v -0.862940 1.900788 1.125000 +v -0.896617 1.866816 1.125000 +v -0.815106 1.900996 1.125000 +v -0.781133 1.867320 1.125000 +v -0.780925 1.819485 1.125000 +v -0.814601 1.785513 1.125000 +v -0.862437 1.785304 1.125000 +v -0.896408 1.818981 1.125000 +v 1.008657 1.922965 -1.000000 +v 1.008866 1.875130 -1.000000 +v 0.975189 1.841158 -1.000000 +v 0.927354 1.840949 -1.000000 +v 0.893382 1.874626 -1.000000 +v 0.893173 1.922461 -1.000000 +v 0.926850 1.956434 -1.000000 +v 0.974685 1.956642 -1.000000 +v 0.893381 1.874626 -2.375000 +v 0.910472 1.833870 -2.356694 +v 0.917551 1.816989 -2.312500 +v 0.910472 1.833870 -2.268306 +v 0.876291 1.915382 -2.268306 +v 0.869212 1.932264 -2.312500 +v 0.876291 1.915382 -2.356694 +v 0.974893 1.908807 -2.338389 +v 0.980047 1.863045 -2.325444 +v 0.958307 1.834079 -2.294194 +v 0.922409 1.838876 -2.262944 +v 0.893381 1.874626 -2.250000 +v 0.888228 1.920388 -2.262944 +v 0.909968 1.949354 -2.294194 +v 0.945866 1.944557 -2.325444 +v 1.008657 1.922965 -2.250000 +v 1.008865 1.875130 -2.250000 +v 0.975188 1.841158 -2.250000 +v 0.927354 1.840949 -2.250000 +v 0.893173 1.922461 -2.250000 +v 0.926849 1.956433 -2.250000 +v 0.974684 1.956642 -2.250000 +v 0.893590 1.826791 -0.500000 +v 0.893381 1.874626 -0.500000 +v 0.859914 1.792819 -0.500000 +v 0.812078 1.792610 -0.500000 +v 0.778107 1.826288 -0.500000 +v 0.777898 1.874122 -0.500000 +v 0.811575 1.908094 -0.500000 +v 0.859410 1.908303 -0.500000 +v 0.893590 1.826791 1.125000 +v 0.893381 1.874626 1.125000 +v 0.859913 1.792819 1.125000 +v 0.812078 1.792611 1.125000 +v 0.778106 1.826287 1.125000 +v 0.777897 1.874122 1.125000 +v 0.811575 1.908094 1.125000 +v 0.859409 1.908303 1.125000 +v -1.008658 1.077035 -1.000000 +v -1.008866 1.124870 -1.000000 +v -0.975189 1.158842 -1.000000 +v -0.927354 1.159051 -1.000000 +v -0.893382 1.125374 -1.000000 +v -0.893173 1.077539 -1.000000 +v -0.926851 1.043567 -1.000000 +v -0.974686 1.043358 -1.000000 +v -0.893382 1.125374 -2.375000 +v -0.910472 1.166130 -2.356694 +v -0.917552 1.183011 -2.312500 +v -0.910472 1.166130 -2.268306 +v -0.876292 1.084618 -2.268306 +v -0.869212 1.067736 -2.312500 +v -0.876292 1.084618 -2.356694 +v -0.974894 1.091193 -2.338389 +v -0.980047 1.136955 -2.325444 +v -0.958307 1.165921 -2.294194 +v -0.922410 1.161124 -2.262944 +v -0.893382 1.125374 -2.250000 +v -0.888229 1.079612 -2.262944 +v -0.909968 1.050646 -2.294194 +v -0.945866 1.055443 -2.325444 +v -1.008657 1.077035 -2.250000 +v -1.008866 1.124870 -2.250000 +v -0.975189 1.158842 -2.250000 +v -0.927354 1.159051 -2.250000 +v -0.893173 1.077539 -2.250000 +v -0.926850 1.043567 -2.250000 +v -0.974685 1.043358 -2.250000 +v -0.893591 1.173209 -0.500000 +v -0.893382 1.125374 -0.500000 +v -0.859914 1.207181 -0.500000 +v -0.812079 1.207390 -0.500000 +v -0.778107 1.173712 -0.500000 +v -0.777898 1.125878 -0.500000 +v -0.811575 1.091906 -0.500000 +v -0.859410 1.091697 -0.500000 +v -0.893590 1.173209 1.125000 +v -0.893382 1.125374 1.125000 +v -0.859914 1.207181 1.125000 +v -0.812079 1.207390 1.125000 +v -0.778107 1.173713 1.125000 +v -0.777898 1.125878 1.125000 +v -0.811575 1.091906 1.125000 +v -0.859410 1.091697 1.125000 +v 0.422965 0.491343 -1.000000 +v 0.375130 0.491134 -1.000000 +v 0.341158 0.524811 -1.000000 +v 0.340949 0.572646 -1.000000 +v 0.374626 0.606618 -1.000000 +v 0.422461 0.606827 -1.000000 +v 0.456433 0.573150 -1.000000 +v 0.456642 0.525315 -1.000000 +v 0.374626 0.606618 -2.375000 +v 0.333870 0.589528 -2.356694 +v 0.316988 0.582449 -2.312500 +v 0.333870 0.589528 -2.268306 +v 0.415382 0.623709 -2.268306 +v 0.432263 0.630788 -2.312500 +v 0.415382 0.623709 -2.356694 +v 0.408807 0.525106 -2.338388 +v 0.363045 0.519953 -2.325444 +v 0.334079 0.541693 -2.294194 +v 0.338876 0.577591 -2.262944 +v 0.374626 0.606618 -2.250000 +v 0.420387 0.611772 -2.262944 +v 0.449354 0.590032 -2.294194 +v 0.444557 0.554134 -2.325444 +v 0.422965 0.491343 -2.250000 +v 0.375130 0.491134 -2.250000 +v 0.341158 0.524811 -2.250000 +v 0.340949 0.572646 -2.250000 +v 0.422461 0.606827 -2.250000 +v 0.456433 0.573150 -2.250000 +v 0.456641 0.525315 -2.250000 +v 0.326791 0.606409 -0.500000 +v 0.374626 0.606618 -0.500000 +v 0.292819 0.640086 -0.500000 +v 0.292610 0.687921 -0.500000 +v 0.326287 0.721893 -0.500000 +v 0.374122 0.722102 -0.500000 +v 0.408094 0.688425 -0.500000 +v 0.408303 0.640590 -0.500000 +v 0.326791 0.606410 1.125000 +v 0.374626 0.606618 1.125000 +v 0.292819 0.640086 1.125000 +v 0.292610 0.687921 1.125000 +v 0.326287 0.721893 1.125000 +v 0.374122 0.722102 1.125000 +v 0.408094 0.688425 1.125000 +v 0.408303 0.640590 1.125000 +v -0.422965 2.508657 -1.000000 +v -0.375130 2.508866 -1.000000 +v -0.341158 2.475189 -1.000000 +v -0.340949 2.427354 -1.000000 +v -0.374626 2.393382 -1.000000 +v -0.422461 2.393173 -1.000000 +v -0.456434 2.426851 -1.000000 +v -0.456642 2.474685 -1.000000 +v -0.374626 2.393382 -2.375000 +v -0.333870 2.410472 -2.356694 +v -0.316989 2.417551 -2.312500 +v -0.333870 2.410472 -2.268306 +v -0.415382 2.376292 -2.268306 +v -0.432264 2.369212 -2.312500 +v -0.415382 2.376292 -2.356694 +v -0.408807 2.474894 -2.338388 +v -0.363045 2.480047 -2.325444 +v -0.334079 2.458307 -2.294194 +v -0.338876 2.422410 -2.262944 +v -0.374626 2.393382 -2.250000 +v -0.420388 2.388228 -2.262944 +v -0.449354 2.409968 -2.294194 +v -0.444557 2.445866 -2.325444 +v -0.422965 2.508657 -2.250000 +v -0.375130 2.508866 -2.250000 +v -0.341158 2.475189 -2.250000 +v -0.340949 2.427354 -2.250000 +v -0.422461 2.393173 -2.250000 +v -0.456433 2.426850 -2.250000 +v -0.456642 2.474685 -2.250000 +v -0.326791 2.393591 -0.500000 +v -0.374626 2.393382 -0.500000 +v -0.292819 2.359914 -0.500000 +v -0.292611 2.312079 -0.500000 +v -0.326288 2.278107 -0.500000 +v -0.374122 2.277898 -0.500000 +v -0.408094 2.311575 -0.500000 +v -0.408303 2.359410 -0.500000 +v -0.326791 2.393590 1.125000 +v -0.374626 2.393382 1.125000 +v -0.292819 2.359914 1.125000 +v -0.292611 2.312079 1.125000 +v -0.326287 2.278107 1.125000 +v -0.374122 2.277898 1.125000 +v -0.408094 2.311575 1.125000 +v -0.408303 2.359410 1.125000 +v 1.011684 1.229358 -0.250000 +v 0.909767 1.330389 -0.250000 +v 0.766262 1.329762 -0.250000 +v 0.665232 1.227846 -0.250000 +v 0.665858 1.084342 -0.250000 +v 0.767774 0.983311 -0.250000 +v 1.012310 1.085853 -0.250000 +v 0.911279 0.983937 -0.250000 +v 1.011684 1.229358 0.250000 +v 0.909767 1.330389 0.250000 +v 0.766262 1.329762 0.250000 +v 0.665232 1.227846 0.250000 +v 0.665858 1.084342 0.250000 +v 0.767774 0.983311 0.250000 +v 1.012310 1.085853 0.250000 +v 0.911279 0.983937 0.250000 +v 1.009283 1.779460 0.250000 +v 1.008657 1.922965 0.250000 +v 0.908253 1.677544 0.250000 +v 0.764747 1.676918 0.250000 +v 0.662832 1.777948 0.250000 +v 0.662205 1.921453 0.250000 +v 0.763236 2.023369 0.250000 +v 0.906741 2.023996 0.250000 +v 1.009283 1.779460 -0.250000 +v 1.008657 1.922965 -0.250000 +v 0.908253 1.677544 -0.250000 +v 0.764747 1.676918 -0.250000 +v 0.662832 1.777948 -0.250000 +v 0.662205 1.921453 -0.250000 +v 0.763236 2.023369 -0.250000 +v 0.906741 2.023996 -0.250000 +v -1.011684 1.770642 -0.250000 +v -0.909767 1.669611 -0.250000 +v -0.766263 1.670238 -0.250000 +v -0.665232 1.772154 -0.250000 +v -0.665858 1.915658 -0.250000 +v -0.767774 2.016689 -0.250000 +v -1.012310 1.914147 -0.250000 +v -0.911279 2.016063 -0.250000 +v -1.011684 1.770642 0.250000 +v -0.909767 1.669611 0.250000 +v -0.766263 1.670238 0.250000 +v -0.665232 1.772154 0.250000 +v -0.665858 1.915658 0.250000 +v -0.767774 2.016689 0.250000 +v -1.012310 1.914147 0.250000 +v -0.911279 2.016063 0.250000 +v -1.009284 1.220540 0.250000 +v -1.008657 1.077035 0.250000 +v -0.908253 1.322456 0.250000 +v -0.764748 1.323082 0.250000 +v -0.662832 1.222052 0.250000 +v -0.662206 1.078547 0.250000 +v -0.763236 0.976631 0.250000 +v -0.906741 0.976004 0.250000 +v -1.009284 1.220540 -0.250000 +v -1.008657 1.077035 -0.250000 +v -0.908253 1.322456 -0.250000 +v -0.764748 1.323082 -0.250000 +v -0.662832 1.222052 -0.250000 +v -0.662206 1.078547 -0.250000 +v -0.763236 0.976631 -0.250000 +v -0.906741 0.976004 -0.250000 +v -0.000000 2.500000 2.625000 +v -0.382684 2.423880 2.625000 +v -0.707107 2.207107 2.625000 +v -0.923880 1.882684 2.625000 +v -1.000000 1.500000 2.625000 +v -0.923880 1.117317 2.625000 +v -0.707107 0.792893 2.625000 +v -0.382684 0.576120 2.625000 +v -0.000000 0.500000 2.625000 +v 0.382683 0.576120 2.625000 +v 0.707106 0.792893 2.625000 +v 0.923879 1.117316 2.625000 +v 1.000000 1.500000 2.625000 +v 0.923879 1.882684 2.625000 +v 0.707106 2.207107 2.625000 +v 0.382683 2.423880 2.625000 +v -0.000000 2.250000 1.125000 +v -0.287013 2.192910 1.125000 +v -0.530330 2.030330 1.125000 +v -0.692910 1.787013 1.125000 +v -0.750000 1.500000 1.125000 +v -0.692910 1.212987 1.125000 +v -0.530330 0.969670 1.125000 +v -0.287013 0.807090 1.125000 +v -0.000000 0.750000 1.125000 +v 0.287012 0.807090 1.125000 +v 0.530330 0.969670 1.125000 +v 0.692909 1.212987 1.125000 +v 0.750000 1.500000 1.125000 +v 0.692909 1.787013 1.125000 +v 0.530330 2.030330 1.125000 +v 0.287012 2.192910 1.125000 +v -0.000000 2.500000 1.125000 +v -0.382684 2.423880 1.125000 +v -0.707107 2.207107 1.125000 +v -0.923880 1.882684 1.125000 +v -1.000000 1.500000 1.125000 +v -0.923880 1.117317 1.125000 +v -0.707107 0.792893 1.125000 +v -0.382684 0.576120 1.125000 +v -0.000000 0.500000 1.125000 +v 0.382683 0.576120 1.125000 +v 0.707106 0.792893 1.125000 +v 0.923879 1.117316 1.125000 +v 1.000000 1.500000 1.125000 +v 0.923879 1.882684 1.125000 +v 0.707106 2.207107 1.125000 +v 0.382683 2.423880 1.125000 +v -0.000000 2.500000 2.625000 +v -0.382684 2.423880 2.625000 +v -0.707107 2.207107 2.625000 +v -0.923880 1.882684 2.625000 +v -1.000000 1.500000 2.625000 +v -0.923880 1.117317 2.625000 +v -0.707107 0.792893 2.625000 +v -0.382684 0.576120 2.625000 +v -0.000000 0.500000 2.625000 +v 0.382683 0.576120 2.625000 +v 0.707106 0.792893 2.625000 +v 0.923879 1.117316 2.625000 +v 1.000000 1.500000 2.625000 +v 0.923879 1.882684 2.625000 +v 0.707106 2.207107 2.625000 +v 0.382683 2.423880 2.625000 +v -0.000000 2.375000 -0.500000 +v -0.334848 2.308394 -0.500000 +v -0.618719 2.118719 -0.500000 +v -0.808395 1.834848 -0.500000 +v -0.875000 1.500000 -0.500000 +v -0.808395 1.165152 -0.500000 +v -0.618719 0.881282 -0.500000 +v -0.334848 0.691606 -0.500000 +v -0.000000 0.625000 -0.500000 +v 0.334848 0.691606 -0.500000 +v 0.618718 0.881281 -0.500000 +v 0.808394 1.165152 -0.500000 +v 0.875000 1.500000 -0.500000 +v 0.808394 1.834848 -0.500000 +v 0.618718 2.118719 -0.500000 +v 0.334847 2.308395 -0.500000 +v 0.000000 3.000000 2.750000 +v -0.574025 2.885819 2.750000 +v -1.060660 2.560660 2.750000 +v -1.385819 2.074025 2.750000 +v -1.500000 1.500000 2.750000 +v -1.385819 0.925975 2.750000 +v -1.060660 0.439340 2.750000 +v -0.574025 0.114181 2.750000 +v 0.000000 0.000000 2.750000 +v 0.574025 0.114181 2.750000 +v 1.060660 0.439340 2.750000 +v 1.385819 0.925975 2.750000 +v 1.500000 1.500000 2.750000 +v 1.385819 2.074025 2.750000 +v 1.060659 2.560660 2.750000 +v 0.574024 2.885819 2.750000 +v 0.000000 3.000000 2.250000 +v -0.574025 2.885819 2.250000 +v -1.060660 2.560660 2.250000 +v -1.385819 2.074025 2.250000 +v -1.500000 1.500000 2.250000 +v -1.385819 0.925975 2.250000 +v -1.060660 0.439340 2.250000 +v -0.574025 0.114181 2.250000 +v 0.000000 0.000000 2.250000 +v 0.574025 0.114181 2.250000 +v 1.060660 0.439340 2.250000 +v 1.385819 0.925975 2.250000 +v 1.500000 1.500000 2.250000 +v 1.385819 2.074025 2.250000 +v 1.060659 2.560660 2.250000 +v 0.574024 2.885819 2.250000 +vt 0.157088 0.470588 +vt 0.153257 0.411765 +vt 0.157088 0.411765 +vt 0.153257 0.352941 +vt 0.157088 0.352941 +vt 0.153257 0.294118 +vt 0.157088 0.294118 +vt 0.153257 0.235294 +vt 0.157088 0.235294 +vt 0.153257 0.176471 +vt 0.157088 0.176471 +vt 0.157088 0.117647 +vt 0.153257 0.117647 +vt 0.153257 0.058824 +vt 0.157088 0.058824 +vt 0.157088 -0.000000 +vt 0.153257 0.000000 +vt 0.157088 0.882353 +vt 0.153257 0.941176 +vt 0.153257 0.882353 +vt 0.157088 0.823529 +vt 0.153257 0.823529 +vt 0.157088 0.764706 +vt 0.153257 0.764706 +vt 0.157088 0.705882 +vt 0.153257 0.705882 +vt 0.157088 0.647059 +vt 0.153257 0.647059 +vt 0.157088 0.588235 +vt 0.153257 0.588235 +vt 0.157088 0.529412 +vt 0.153257 0.529412 +vt 0.153257 0.470588 +vt 0.295019 0.705882 +vt 0.287356 0.764706 +vt 0.287356 0.705882 +vt 0.287356 0.647059 +vt 0.295019 0.588235 +vt 0.287356 0.588235 +vt 0.295019 0.529412 +vt 0.287356 0.529412 +vt 0.295019 0.470588 +vt 0.287356 0.470588 +vt 0.295019 0.411765 +vt 0.287356 0.411765 +vt 0.295019 0.352941 +vt 0.287356 0.352941 +vt 0.295019 0.294118 +vt 0.287356 0.294118 +vt 0.295019 0.235294 +vt 0.287356 0.235294 +vt 0.287356 0.176471 +vt 0.295019 0.117647 +vt 0.287356 0.117647 +vt 0.295019 0.058824 +vt 0.287356 0.058824 +vt 0.287356 0.000000 +vt 0.287356 0.882353 +vt 0.295019 0.941176 +vt 0.287356 0.941176 +vt 0.287356 0.823529 +vt 0.295019 0.882353 +vt 0.295019 0.823529 +vt 0.176245 0.294118 +vt 0.172414 0.352941 +vt 0.172414 0.294118 +vt 0.176245 0.352941 +vt 0.172414 0.411765 +vt 0.176245 0.411765 +vt 0.172414 0.470588 +vt 0.176245 0.470588 +vt 0.172414 0.529412 +vt 0.176245 0.529412 +vt 0.172414 0.588235 +vt 0.176245 0.647059 +vt 0.172414 0.647059 +vt 0.176245 0.705882 +vt 0.172414 0.705882 +vt 0.176245 0.764706 +vt 0.172414 0.764706 +vt 0.176245 0.823529 +vt 0.172414 0.823529 +vt 0.176245 0.882353 +vt 0.172414 0.882353 +vt 0.176245 0.941176 +vt 0.172414 0.941176 +vt 0.172414 0.000000 +vt 0.176245 0.058824 +vt 0.172414 0.058824 +vt 0.172414 0.117647 +vt 0.176245 0.117647 +vt 0.172414 0.176471 +vt 0.176245 0.176471 +vt 0.172414 0.235294 +vt 0.176245 0.235294 +vt 0.272031 0.352941 +vt 0.268199 0.294118 +vt 0.272031 0.294118 +vt 0.272031 0.411765 +vt 0.268199 0.352941 +vt 0.272031 0.470588 +vt 0.268199 0.411765 +vt 0.272031 0.529412 +vt 0.268199 0.470588 +vt 0.272031 0.588235 +vt 0.268199 0.529412 +vt 0.268199 0.647059 +vt 0.268199 0.588235 +vt 0.272031 0.647059 +vt 0.268199 0.705882 +vt 0.272031 0.705882 +vt 0.268199 0.764706 +vt 0.272031 0.764706 +vt 0.268199 0.823529 +vt 0.272031 0.823529 +vt 0.268199 0.882353 +vt 0.272031 0.882353 +vt 0.268199 0.941176 +vt 0.272031 0.000000 +vt 0.268199 0.058824 +vt 0.268199 0.000000 +vt 0.272031 0.117647 +vt 0.272031 0.058824 +vt 0.268199 0.176471 +vt 0.268199 0.117647 +vt 0.272031 0.235294 +vt 0.272031 0.176471 +vt 0.268199 0.235294 +vt 0.478927 0.549020 +vt 0.486590 0.588235 +vt 0.478927 0.588235 +vt 0.478927 0.235294 +vt 0.486590 0.274510 +vt 0.478927 0.274510 +vt 0.486590 0.627451 +vt 0.478927 0.627451 +vt 0.478927 0.352941 +vt 0.486590 0.313726 +vt 0.486590 0.352941 +vt 0.478927 0.313726 +vt 0.478927 0.039216 +vt 0.486590 -0.000000 +vt 0.486590 0.039216 +vt 0.486590 0.392157 +vt 0.478927 0.392157 +vt 0.486590 0.078431 +vt 0.478927 0.078431 +vt 0.486590 0.431373 +vt 0.478927 0.431373 +vt 0.486590 0.117647 +vt 0.478927 0.117647 +vt 0.486590 0.470588 +vt 0.478927 0.470588 +vt 0.478927 0.156863 +vt 0.486590 0.156863 +vt 0.478927 0.509804 +vt 0.486590 0.509804 +vt 0.478927 0.196078 +vt 0.486590 0.196078 +vt 0.486590 0.549020 +vt 0.486590 0.235294 +vt 0.340996 0.784153 +vt 0.295114 0.705882 +vt 0.340996 0.627612 +vt 0.432950 0.810458 +vt 0.417625 0.856209 +vt 0.417625 0.810458 +vt 0.363985 0.810458 +vt 0.348659 0.856209 +vt 0.348659 0.810458 +vt 0.432950 0.810458 +vt 0.417625 0.856209 +vt 0.417625 0.810458 +vt 0.363985 0.810458 +vt 0.348659 0.856209 +vt 0.348659 0.810458 +vt 0.363985 0.856209 +vt 0.295019 0.856209 +vt 0.295019 0.810458 +vt 0.363985 0.856209 +vt 0.295019 0.856209 +vt 0.295019 0.810458 +vt 0.432950 0.810458 +vt 0.417625 0.856209 +vt 0.417625 0.810458 +vt 0.363985 0.810458 +vt 0.348659 0.856209 +vt 0.348659 0.810458 +vt 0.432950 0.810458 +vt 0.417625 0.856209 +vt 0.417625 0.810458 +vt 0.348659 0.810458 +vt 0.363985 0.856209 +vt 0.348659 0.856209 +vt 0.363985 0.810458 +vt 0.295019 0.856209 +vt 0.295019 0.810458 +vt 0.363985 0.856209 +vt 0.295019 0.856209 +vt 0.295019 0.810458 +vt 0.432950 0.810458 +vt 0.417625 0.856209 +vt 0.417625 0.810458 +vt 0.348659 0.810458 +vt 0.363985 0.856209 +vt 0.348659 0.856209 +vt 0.417625 0.810458 +vt 0.432950 0.856209 +vt 0.417625 0.856209 +vt 0.363985 0.810458 +vt 0.348659 0.856209 +vt 0.348659 0.810458 +vt 0.363985 0.856209 +vt 0.295019 0.856209 +vt 0.295019 0.810458 +vt 0.363985 0.810458 +vt 0.295019 0.856209 +vt 0.295019 0.810458 +vt 0.432950 0.810458 +vt 0.417625 0.856209 +vt 0.417625 0.810458 +vt 0.348659 0.810458 +vt 0.363985 0.856209 +vt 0.348659 0.856209 +vt 0.432950 0.810458 +vt 0.417625 0.856209 +vt 0.417625 0.810458 +vt 0.363985 0.810458 +vt 0.348659 0.856209 +vt 0.348659 0.810458 +vt 0.363985 0.856209 +vt 0.295019 0.856209 +vt 0.295019 0.810458 +vt 0.363985 0.810458 +vt 0.295019 0.856209 +vt 0.295019 0.810458 +vt 0.432950 0.810458 +vt 0.417625 0.856209 +vt 0.417625 0.810458 +vt 0.348659 0.810458 +vt 0.363985 0.856209 +vt 0.348659 0.856209 +vt 0.432950 0.810458 +vt 0.417625 0.856209 +vt 0.417625 0.810458 +vt 0.363985 0.810458 +vt 0.348659 0.856209 +vt 0.348659 0.810458 +vt 0.363985 0.856209 +vt 0.295019 0.856209 +vt 0.295019 0.810458 +vt 0.363985 0.810458 +vt 0.295019 0.856209 +vt 0.295019 0.810458 +vt 0.432950 0.810458 +vt 0.417625 0.856209 +vt 0.417625 0.810458 +vt 0.348659 0.810458 +vt 0.363985 0.856209 +vt 0.348659 0.856209 +vt 0.417625 0.810458 +vt 0.432950 0.856209 +vt 0.417625 0.856209 +vt 0.363985 0.810458 +vt 0.348659 0.856209 +vt 0.348659 0.810458 +vt 0.363985 0.856209 +vt 0.295019 0.856209 +vt 0.295019 0.810458 +vt 0.363985 0.810458 +vt 0.295019 0.856209 +vt 0.295019 0.810458 +vt 0.463994 0.947712 +vt 0.475096 0.928773 +vt 0.486198 0.947712 +vt 0.410354 0.947548 +vt 0.421553 0.928775 +vt 0.432558 0.947878 +vt 0.421553 0.928775 +vt 0.429375 0.934438 +vt 0.432558 0.947878 +vt 0.475096 0.966651 +vt 0.463994 0.947712 +vt 0.475096 0.928773 +vt 0.402980 0.783152 +vt 0.402980 0.654757 +vt 0.478246 0.654757 +vt 0.517241 0.640523 +vt 0.540230 0.679739 +vt 0.517241 0.679739 +vt 0.509579 0.640523 +vt 0.540230 0.627451 +vt 0.540230 0.640523 +vt 0.517241 0.692810 +vt 0.547893 0.679739 +vt 0.517241 0.640523 +vt 0.540230 0.679739 +vt 0.517241 0.679739 +vt 0.509579 0.640523 +vt 0.540230 0.627451 +vt 0.540230 0.640523 +vt 0.517241 0.692810 +vt 0.547893 0.679739 +vt 0.517241 0.679739 +vt 0.540230 0.640523 +vt 0.540230 0.679739 +vt 0.547893 0.679739 +vt 0.547893 0.640523 +vt 0.540230 0.627451 +vt 0.517241 0.640523 +vt 0.517241 0.627451 +vt 0.517241 0.692810 +vt 0.540230 0.692810 +vt 0.509579 0.640523 +vt 0.509579 0.679739 +vt 0.547893 0.718954 +vt 0.670498 0.823529 +vt 0.547893 0.823529 +vt 0.517241 0.679739 +vt 0.540230 0.640523 +vt 0.540230 0.679739 +vt 0.547893 0.679739 +vt 0.547893 0.640523 +vt 0.540230 0.627451 +vt 0.517241 0.640523 +vt 0.517241 0.627451 +vt 0.517241 0.692810 +vt 0.540230 0.692810 +vt 0.509579 0.640523 +vt 0.509579 0.679739 +vt 0.494253 0.771242 +vt 0.494253 0.718954 +vt 0.547893 0.718954 +vt 0.547893 0.627451 +vt 0.670498 0.718954 +vt 0.724138 0.771242 +vt 0.693487 0.823529 +vt 0.547893 0.862745 +vt 0.670498 0.915033 +vt 0.547893 0.967320 +vt 0.547893 0.915033 +vt 0.670498 0.862745 +vt 0.670498 0.823529 +vt 0.547893 0.823529 +vt 0.547893 0.627451 +vt 0.670498 0.718954 +vt 0.724138 0.771242 +vt 0.693487 0.823529 +vt 0.547893 0.862745 +vt 0.670498 0.915033 +vt 0.547893 0.967320 +vt 0.547893 0.915033 +vt 0.670498 0.862745 +vt 0.494253 0.771242 +vt 0.494253 0.718954 +vt 0.463994 0.947712 +vt 0.475096 0.928773 +vt 0.486198 0.947712 +vt 0.432558 0.947878 +vt 0.421359 0.966651 +vt 0.410354 0.947548 +vt 0.931035 0.732026 +vt 0.731801 0.810458 +vt 0.731801 0.732026 +vt 0.731801 0.640523 +vt 0.931035 0.718954 +vt 0.731801 0.718954 +vt 0.931035 0.627451 +vt 0.731801 0.627451 +vt 0.938697 0.718954 +vt 0.931035 0.640523 +vt 0.938697 0.640523 +vt 0.724138 0.640523 +vt 0.724138 0.718954 +vt 0.206897 1.000000 +vt 0.107280 0.941176 +vt 0.206897 0.941176 +vt 0.099617 1.000000 +vt 0.107280 1.000000 +vt 0.398467 0.993464 +vt 0.306513 0.941176 +vt 0.398467 0.941176 +vt -0.000000 0.941176 +vt -0.000000 1.000000 +vt 0.206897 1.000000 +vt 0.107280 0.941176 +vt 0.206897 0.941176 +vt 0.099617 1.000000 +vt 0.107280 1.000000 +vt 0.298851 0.941176 +vt 0.206897 0.993464 +vt 0.206897 0.941176 +vt -0.000000 0.941176 +vt -0.000000 1.000000 +vt 0.298851 0.941176 +vt 0.206897 0.993464 +vt 0.206897 0.941176 +vt 0.398467 0.993464 +vt 0.306513 0.941176 +vt 0.398467 0.941176 +vt 0.306513 0.993464 +vt 0.306513 0.993464 +vt 0.475096 0.966651 +vt 0.463994 0.947712 +vt 0.475096 0.928773 +vt 0.432558 0.947878 +vt 0.421359 0.966651 +vt 0.410354 0.947548 +vt 0.157088 0.941176 +vt 0.295019 0.764706 +vt 0.295019 0.647059 +vt 0.295019 0.176471 +vt 0.295019 0.000000 +vt 0.176245 0.588235 +vt 0.176245 0.000000 +vt 0.272031 0.941176 +vt 0.478927 -0.000000 +vt 0.323438 0.778195 +vt 0.308552 0.761228 +vt 0.298606 0.735835 +vt 0.298606 0.675930 +vt 0.308552 0.650537 +vt 0.323438 0.633570 +vt 0.358555 0.633570 +vt 0.373440 0.650537 +vt 0.383386 0.675930 +vt 0.386879 0.705882 +vt 0.383386 0.735835 +vt 0.373440 0.761228 +vt 0.358555 0.778195 +vt 0.432950 0.856209 +vt 0.432950 0.856209 +vt 0.432950 0.856209 +vt 0.432950 0.856209 +vt 0.432950 0.856209 +vt 0.432950 0.810458 +vt 0.432950 0.856209 +vt 0.432950 0.856209 +vt 0.432950 0.856209 +vt 0.432950 0.856209 +vt 0.432950 0.856209 +vt 0.432950 0.810458 +vt 0.475096 0.966651 +vt 0.467245 0.961104 +vt 0.467245 0.934321 +vt 0.482946 0.934321 +vt 0.482946 0.961104 +vt 0.429238 0.961221 +vt 0.421359 0.966651 +vt 0.413537 0.960987 +vt 0.413675 0.934205 +vt 0.429375 0.934438 +vt 0.429238 0.961221 +vt 0.410354 0.947548 +vt 0.421359 0.966651 +vt 0.413537 0.960987 +vt 0.413675 0.934205 +vt 0.467245 0.961104 +vt 0.467245 0.934321 +vt 0.482946 0.934321 +vt 0.486198 0.947712 +vt 0.482946 0.961104 +vt 0.478246 0.783152 +vt 0.460980 0.802832 +vt 0.440613 0.809743 +vt 0.420246 0.802832 +vt 0.391443 0.753698 +vt 0.387392 0.718954 +vt 0.391443 0.684211 +vt 0.420246 0.635076 +vt 0.440613 0.628165 +vt 0.460980 0.635076 +vt 0.489783 0.684211 +vt 0.493834 0.718954 +vt 0.489783 0.753698 +vt 0.509579 0.679739 +vt 0.517241 0.627451 +vt 0.540230 0.692810 +vt 0.547893 0.640523 +vt 0.509579 0.679739 +vt 0.517241 0.627451 +vt 0.540230 0.692810 +vt 0.547893 0.640523 +vt 0.524904 0.823529 +vt 0.670498 0.627451 +vt 0.724138 0.718954 +vt 0.670498 0.967320 +vt 0.670498 0.627451 +vt 0.724138 0.718954 +vt 0.670498 0.967320 +vt 0.524904 0.823529 +vt 0.475096 0.966651 +vt 0.467245 0.961104 +vt 0.467245 0.934321 +vt 0.482946 0.934321 +vt 0.482946 0.961104 +vt 0.429238 0.961221 +vt 0.413537 0.960987 +vt 0.413675 0.934205 +vt 0.421553 0.928775 +vt 0.429375 0.934438 +vt 0.931035 0.810458 +vt 0.099617 0.941176 +vt 0.099617 0.941176 +vt 0.298851 0.993464 +vt 0.298851 0.993464 +vt 0.467245 0.961104 +vt 0.467245 0.934321 +vt 0.482946 0.934321 +vt 0.486198 0.947712 +vt 0.482946 0.961104 +vt 0.429238 0.961221 +vt 0.413537 0.960987 +vt 0.413675 0.934205 +vt 0.421553 0.928775 +vt 0.429375 0.934438 +vt 0.149425 0.823529 +vt 0.149425 0.764706 +vt 0.149425 0.705882 +vt 0.149425 0.647059 +vt 0.149425 0.588235 +vt 0.149425 0.529412 +vt 0.149425 0.470588 +vt 0.149425 0.411765 +vt 0.149425 0.352941 +vt 0.149425 0.294118 +vt 0.149425 0.235294 +vt 0.149425 0.176471 +vt 0.149425 0.117647 +vt 0.149425 0.058824 +vt 0.149425 0.000000 +vt 0.149425 0.882353 +vt 0.586207 0.156863 +vt 0.616858 0.196078 +vt 0.586207 0.196078 +vt 0.586207 0.117647 +vt 0.616858 0.156863 +vt 0.616858 0.078431 +vt 0.586207 0.078431 +vt 0.616858 0.039216 +vt 0.586207 0.039216 +vt 0.586207 -0.000000 +vt 0.586207 0.588235 +vt 0.616858 0.627451 +vt 0.586207 0.627451 +vt 0.616858 0.549020 +vt 0.586207 0.549020 +vt 0.586207 0.509804 +vt 0.586207 0.470588 +vt 0.616858 0.509804 +vt 0.616858 0.431373 +vt 0.586207 0.431373 +vt 0.616858 0.392157 +vt 0.586207 0.392157 +vt 0.616858 0.352941 +vt 0.586207 0.352941 +vt 0.616858 0.313726 +vt 0.586207 0.313726 +vt 0.616858 0.274510 +vt 0.586207 0.274510 +vt 0.616858 0.235294 +vt 0.586207 0.235294 +vt 0.486590 0.431373 +vt 0.586207 0.470588 +vt 0.486590 0.470588 +vt 0.486590 0.392157 +vt 0.586207 0.431373 +vt 0.486590 0.274510 +vt 0.586207 0.313726 +vt 0.486590 0.313726 +vt 0.486590 0.352941 +vt 0.586207 0.392157 +vt 0.486590 0.235294 +vt 0.586207 0.274510 +vt 0.586207 0.352941 +vt 0.486590 0.196078 +vt 0.586207 0.235294 +vt 0.486590 0.156863 +vt 0.586207 0.196078 +vt 0.486590 0.117647 +vt 0.586207 0.156863 +vt 0.486590 0.078431 +vt 0.586207 0.117647 +vt 0.486590 0.039216 +vt 0.586207 0.078431 +vt 0.486590 0.000000 +vt 0.586207 0.039216 +vt 0.486590 0.588235 +vt 0.586207 0.627451 +vt 0.486590 0.627451 +vt 0.486590 0.549020 +vt 0.586207 0.588235 +vt 0.486590 0.509804 +vt 0.586207 0.549020 +vt 0.586207 0.509804 +vt 0.478927 0.235294 +vt 0.386973 0.196078 +vt 0.478927 0.196078 +vt 0.478927 0.549020 +vt 0.386973 0.509804 +vt 0.478927 0.509804 +vt 0.386973 0.156863 +vt 0.478927 0.156863 +vt 0.386973 0.470588 +vt 0.478927 0.470588 +vt 0.386973 0.117647 +vt 0.478927 0.117647 +vt 0.386973 0.431373 +vt 0.478927 0.431373 +vt 0.386973 0.078431 +vt 0.478927 0.078431 +vt 0.386973 0.392157 +vt 0.478927 0.392157 +vt 0.386973 0.039216 +vt 0.478927 0.039216 +vt 0.386973 0.352941 +vt 0.478927 0.352941 +vt 0.386973 -0.000000 +vt 0.478927 -0.000000 +vt 0.478927 0.313726 +vt 0.386973 0.274510 +vt 0.478927 0.274510 +vt 0.386973 0.313726 +vt 0.478927 0.627451 +vt 0.386973 0.588235 +vt 0.478927 0.588235 +vt 0.386973 0.235294 +vt 0.386973 0.549020 +vt 0.977012 0.032680 +vt 0.946360 0.052288 +vt 0.946360 0.026144 +vt 0.946360 0.261438 +vt 0.977012 0.281046 +vt 0.946360 0.287582 +vt 0.977012 0.071895 +vt 0.946360 0.078431 +vt 0.977012 0.294118 +vt 0.946360 0.313726 +vt 0.977012 0.098039 +vt 0.946360 0.104575 +vt 0.977012 0.320261 +vt 0.946360 0.339869 +vt 0.977012 0.111111 +vt 0.946360 0.130719 +vt 0.977012 0.359477 +vt 0.946360 0.366013 +vt 0.977012 0.137255 +vt 0.946360 0.156863 +vt 0.977012 0.385621 +vt 0.946360 0.392157 +vt 0.977012 0.176471 +vt 0.946360 0.183007 +vt 0.977012 0.398693 +vt 0.946360 0.418301 +vt 0.946360 0.209150 +vt 0.977012 0.228758 +vt 0.946360 0.235294 +vt 0.977012 0.189542 +vt 0.977012 0.006536 +vt 0.946360 0.000000 +vt 0.977012 0.241830 +vt 1.000000 0.300654 +vt 0.977012 0.307190 +vt 0.977012 0.267974 +vt 1.000000 0.274510 +vt 1.000000 0.248366 +vt 0.977012 0.254902 +vt 0.977012 0.215686 +vt 1.000000 0.222222 +vt 1.000000 0.196078 +vt 0.977012 0.202614 +vt 0.977012 0.163399 +vt 1.000000 0.169935 +vt 1.000000 0.143791 +vt 0.977012 0.150327 +vt 1.000000 0.326797 +vt 0.977012 0.333333 +vt 0.977012 0.346405 +vt 1.000000 0.352941 +vt 0.977012 0.372549 +vt 1.000000 0.379085 +vt 1.000000 0.405229 +vt 0.977012 0.411765 +vt 1.000000 0.013072 +vt 0.977012 0.019608 +vt 1.000000 0.039216 +vt 0.977012 0.045752 +vt 0.977012 0.058824 +vt 1.000000 0.065359 +vt 0.977012 0.084967 +vt 1.000000 0.091503 +vt 1.000000 0.117647 +vt 0.977012 0.124183 +vt 0.708812 0.156863 +vt 0.616858 0.117647 +vt 0.708812 0.117647 +vt 0.708812 0.509804 +vt 0.616858 0.470588 +vt 0.708812 0.470588 +vt 0.708812 0.196078 +vt 0.616858 0.156863 +vt 0.708812 0.549020 +vt 0.616858 0.509804 +vt 0.708812 0.235294 +vt 0.616858 0.196078 +vt 0.708812 0.588235 +vt 0.616858 0.549020 +vt 0.708812 0.274510 +vt 0.616858 0.235294 +vt 0.708812 0.627451 +vt 0.616858 0.588235 +vt 0.708812 0.352941 +vt 0.616858 0.313726 +vt 0.708812 0.313726 +vt 0.616858 0.274510 +vt 0.708812 0.039216 +vt 0.616858 -0.000000 +vt 0.708812 -0.000000 +vt 0.708812 0.392157 +vt 0.616858 0.352941 +vt 0.708812 0.078431 +vt 0.616858 0.039216 +vt 0.708812 0.431373 +vt 0.616858 0.392157 +vt 0.616858 0.078431 +vt 0.616858 0.431373 +vt 0.831418 0.339869 +vt 0.831418 0.366013 +vt 0.831418 0.392157 +vt 0.831418 0.000000 +vt 0.831418 0.026144 +vt 0.831418 0.052288 +vt 0.831418 0.078431 +vt 0.831418 0.104575 +vt 0.831418 0.130719 +vt 0.831418 0.209150 +vt 0.831418 0.156863 +vt 0.831418 0.235294 +vt 0.831418 0.183007 +vt 0.831418 0.261438 +vt 0.831418 0.287582 +vt 0.831418 0.313726 +vt 0.030651 0.529412 +vt 0.000000 0.588235 +vt 0.000000 0.529412 +vt 0.030651 0.058824 +vt 0.000000 0.117647 +vt 0.000000 0.058824 +vt 0.030651 0.588235 +vt 0.000000 0.647059 +vt 0.030651 0.117647 +vt 0.000000 0.176471 +vt 0.030651 0.647059 +vt -0.000000 0.705882 +vt 0.030651 0.176471 +vt 0.000000 0.235294 +vt 0.030651 0.705882 +vt 0.000000 0.764706 +vt 0.030651 0.235294 +vt 0.000000 0.294118 +vt 0.030651 0.764706 +vt 0.000000 0.823529 +vt 0.030651 0.294118 +vt 0.000000 0.352941 +vt 0.030651 0.823529 +vt 0.000000 0.882353 +vt 0.030651 0.352941 +vt 0.000000 0.411765 +vt 0.030651 0.882353 +vt 0.000000 0.941176 +vt 0.030651 0.470588 +vt 0.000000 0.470588 +vt 0.030651 0.411765 +vt 0.030651 -0.000000 +vt -0.000000 -0.000000 +vt 0.854406 0.816993 +vt 0.823755 0.823529 +vt 0.823755 0.816993 +vt 0.934866 0.836601 +vt 0.938697 0.830065 +vt 0.938697 0.836601 +vt 0.934866 0.830065 +vt 0.938697 0.823529 +vt 0.934866 0.823529 +vt 0.938697 0.816993 +vt 0.938697 0.856209 +vt 0.934866 0.849673 +vt 0.938697 0.849673 +vt 0.934866 0.843137 +vt 0.938697 0.843137 +vt 0.931035 0.830065 +vt 0.931035 0.816993 +vt 0.934866 0.816993 +vt 0.931035 0.856209 +vt 0.934866 0.856209 +vt 0.931035 0.843137 +vt 0.931035 0.836601 +vt 0.934866 0.862745 +vt 0.934866 0.810458 +vt 0.854406 0.823529 +vt 0.931035 0.823529 +vt 0.854406 0.830065 +vt 0.854406 0.836601 +vt 0.854406 0.843137 +vt 0.854406 0.849673 +vt 0.931035 0.849673 +vt 0.854406 0.856209 +vt 0.931035 0.862745 +vt 0.854406 0.862745 +vt 0.931035 0.810458 +vt 0.724138 0.810458 +vt 0.823755 0.810458 +vt 0.823755 0.836601 +vt 0.823755 0.830065 +vt 0.823755 0.849673 +vt 0.854406 0.810458 +vt 0.823755 0.843137 +vt 0.823755 0.856209 +vt 0.724138 0.823529 +vt 0.724138 0.843137 +vt 0.823755 0.862745 +vt 0.724138 0.856209 +vt 0.724138 0.816993 +vt 0.724138 0.830065 +vt 0.724138 0.836601 +vt 0.724138 0.849673 +vt 0.846743 0.437909 +vt 0.842912 0.431373 +vt 0.846743 0.431373 +vt 0.842912 0.437909 +vt 0.839080 0.431373 +vt 0.839080 0.437909 +vt 0.835249 0.431373 +vt 0.858238 0.431373 +vt 0.854406 0.437909 +vt 0.854406 0.431373 +vt 0.850575 0.437909 +vt 0.850575 0.431373 +vt 0.842912 0.444444 +vt 0.839080 0.444444 +vt 0.835249 0.437909 +vt 0.858238 0.437909 +vt 0.854406 0.444444 +vt 0.850575 0.444444 +vt 0.831418 0.437909 +vt 0.835249 0.444444 +vt 0.862069 0.437909 +vt 0.858238 0.444444 +vt 0.839080 0.418301 +vt 0.858238 0.418301 +vt 0.850575 0.418301 +vt 0.831418 0.431373 +vt 0.835249 0.418301 +vt 0.854406 0.418301 +vt 0.842912 0.418301 +vt 0.846743 0.418301 +vt 0.862069 0.418301 +vt 0.862069 0.431373 +vt 0.835249 0.470588 +vt 0.850575 0.470588 +vt 0.846743 0.444444 +vt 0.842912 0.470588 +vt 0.862069 0.444444 +vt 0.858238 0.470588 +vt 0.831418 0.470588 +vt 0.831418 0.444444 +vt 0.854406 0.470588 +vt 0.839080 0.470588 +vt 0.846743 0.470588 +vt 0.877395 0.594771 +vt 0.873563 0.588235 +vt 0.877395 0.588235 +vt 0.873563 0.594771 +vt 0.869732 0.588235 +vt 0.869732 0.594771 +vt 0.865900 0.588235 +vt 0.888889 0.588235 +vt 0.885057 0.594771 +vt 0.885057 0.588235 +vt 0.881226 0.594771 +vt 0.881226 0.588235 +vt 0.877395 0.601307 +vt 0.869732 0.601307 +vt 0.865900 0.601307 +vt 0.865900 0.594771 +vt 0.888889 0.594771 +vt 0.885057 0.601307 +vt 0.881226 0.601307 +vt 0.862069 0.594771 +vt 0.892720 0.594771 +vt 0.888889 0.601307 +vt 0.865900 0.627451 +vt 0.881226 0.627451 +vt 0.873563 0.627451 +vt 0.873563 0.601307 +vt 0.892720 0.601307 +vt 0.888889 0.627451 +vt 0.862069 0.627451 +vt 0.862069 0.601307 +vt 0.885057 0.627451 +vt 0.869732 0.627451 +vt 0.877395 0.627451 +vt 0.869732 0.529412 +vt 0.865900 0.522876 +vt 0.869732 0.522876 +vt 0.862069 0.529412 +vt 0.862069 0.522876 +vt 0.892720 0.522876 +vt 0.888889 0.529412 +vt 0.888889 0.522876 +vt 0.881226 0.529412 +vt 0.877395 0.522876 +vt 0.881226 0.522876 +vt 0.877395 0.529412 +vt 0.873563 0.522876 +vt 0.865900 0.535948 +vt 0.865900 0.529412 +vt 0.892720 0.535948 +vt 0.892720 0.529412 +vt 0.881226 0.535948 +vt 0.877395 0.535948 +vt 0.873563 0.529412 +vt 0.869732 0.535948 +vt 0.885057 0.529412 +vt 0.888889 0.535948 +vt 0.862069 0.535948 +vt 0.862069 0.588235 +vt 0.892720 0.588235 +vt 0.885057 0.535948 +vt 0.873563 0.535948 +vt 0.885057 0.431373 +vt 0.881226 0.437909 +vt 0.881226 0.431373 +vt 0.877395 0.431373 +vt 0.873563 0.437909 +vt 0.873563 0.431373 +vt 0.865900 0.437909 +vt 0.862069 0.431373 +vt 0.865900 0.431373 +vt 0.892720 0.437909 +vt 0.888889 0.431373 +vt 0.892720 0.431373 +vt 0.888889 0.437909 +vt 0.885057 0.437909 +vt 0.881226 0.444444 +vt 0.877395 0.437909 +vt 0.877395 0.444444 +vt 0.862069 0.444444 +vt 0.862069 0.437909 +vt 0.888889 0.444444 +vt 0.885057 0.444444 +vt 0.869732 0.437909 +vt 0.873563 0.444444 +vt 0.865900 0.444444 +vt 0.877395 0.418301 +vt 0.865900 0.418301 +vt 0.888889 0.418301 +vt 0.869732 0.431373 +vt 0.873563 0.418301 +vt 0.892720 0.418301 +vt 0.881226 0.418301 +vt 0.885057 0.418301 +vt 0.869732 0.418301 +vt 0.869732 0.444444 +vt 0.885057 0.522876 +vt 0.842912 0.431373 +vt 0.846743 0.437909 +vt 0.846743 0.431373 +vt 0.839080 0.431373 +vt 0.842912 0.437909 +vt 0.835249 0.431373 +vt 0.839080 0.437909 +vt 0.858238 0.431373 +vt 0.854406 0.437909 +vt 0.858238 0.437909 +vt 0.854406 0.431373 +vt 0.850575 0.437909 +vt 0.850575 0.431373 +vt 0.842912 0.444444 +vt 0.846743 0.444444 +vt 0.839080 0.444444 +vt 0.835249 0.444444 +vt 0.854406 0.444444 +vt 0.858238 0.444444 +vt 0.850575 0.444444 +vt 0.835249 0.437909 +vt 0.831418 0.437909 +vt 0.862069 0.437909 +vt 0.839080 0.418301 +vt 0.858238 0.418301 +vt 0.850575 0.418301 +vt 0.835249 0.418301 +vt 0.831418 0.431373 +vt 0.854406 0.418301 +vt 0.842912 0.418301 +vt 0.846743 0.418301 +vt 0.862069 0.418301 +vt 0.862069 0.431373 +vt 0.835249 0.470588 +vt 0.850575 0.470588 +vt 0.842912 0.470588 +vt 0.858238 0.470588 +vt 0.862069 0.444444 +vt 0.831418 0.470588 +vt 0.831418 0.444444 +vt 0.854406 0.470588 +vt 0.839080 0.470588 +vt 0.846743 0.470588 +vt 0.873563 0.588235 +vt 0.877395 0.594771 +vt 0.877395 0.588235 +vt 0.869732 0.588235 +vt 0.873563 0.594771 +vt 0.865900 0.588235 +vt 0.869732 0.594771 +vt 0.888889 0.588235 +vt 0.885057 0.594771 +vt 0.888889 0.594771 +vt 0.885057 0.588235 +vt 0.881226 0.594771 +vt 0.881226 0.588235 +vt 0.877395 0.601307 +vt 0.869732 0.601307 +vt 0.873563 0.601307 +vt 0.865900 0.601307 +vt 0.885057 0.601307 +vt 0.888889 0.601307 +vt 0.881226 0.601307 +vt 0.865900 0.594771 +vt 0.862069 0.594771 +vt 0.892720 0.594771 +vt 0.865900 0.627451 +vt 0.881226 0.627451 +vt 0.873563 0.627451 +vt 0.888889 0.627451 +vt 0.892720 0.601307 +vt 0.862069 0.627451 +vt 0.862069 0.601307 +vt 0.885057 0.627451 +vt 0.869732 0.627451 +vt 0.877395 0.627451 +vt 0.865900 0.522876 +vt 0.869732 0.529412 +vt 0.869732 0.522876 +vt 0.862069 0.529412 +vt 0.865900 0.529412 +vt 0.877395 0.522876 +vt 0.881226 0.529412 +vt 0.881226 0.522876 +vt 0.873563 0.522876 +vt 0.877395 0.529412 +vt 0.873563 0.529412 +vt 0.865900 0.535948 +vt 0.869732 0.535948 +vt 0.881226 0.535948 +vt 0.877395 0.535948 +vt 0.873563 0.535948 +vt 0.885057 0.529412 +vt 0.862069 0.535948 +vt 0.862069 0.588235 +vt 0.892720 0.588235 +vt 0.888889 0.535948 +vt 0.885057 0.535948 +vt 0.881226 0.431373 +vt 0.885057 0.437909 +vt 0.885057 0.431373 +vt 0.877395 0.431373 +vt 0.881226 0.437909 +vt 0.873563 0.437909 +vt 0.877395 0.437909 +vt 0.892720 0.431373 +vt 0.888889 0.437909 +vt 0.892720 0.437909 +vt 0.888889 0.431373 +vt 0.885057 0.444444 +vt 0.881226 0.444444 +vt 0.877395 0.444444 +vt 0.888889 0.444444 +vt 0.892720 0.444444 +vt 0.873563 0.431373 +vt 0.869732 0.437909 +vt 0.873563 0.444444 +vt 0.877395 0.418301 +vt 0.865900 0.418301 +vt 0.862069 0.431373 +vt 0.865900 0.431373 +vt 0.888889 0.418301 +vt 0.873563 0.418301 +vt 0.869732 0.431373 +vt 0.892720 0.418301 +vt 0.881226 0.418301 +vt 0.885057 0.418301 +vt 0.869732 0.418301 +vt 0.869732 0.444444 +vt 0.862069 0.444444 +vt 0.862069 0.522876 +vt 0.892720 0.522876 +vt 0.888889 0.522876 +vt 0.885057 0.522876 +vt 0.149425 0.941176 +vt 0.030651 0.882353 +vt 0.149425 0.882353 +vt 0.149425 0.058824 +vt 0.030651 -0.000000 +vt 0.149425 0.000000 +vt 0.149425 0.117647 +vt 0.030651 0.058824 +vt 0.149425 0.176471 +vt 0.030651 0.117647 +vt 0.149425 0.235294 +vt 0.030651 0.176471 +vt 0.149425 0.294118 +vt 0.030651 0.235294 +vt 0.149425 0.352941 +vt 0.030651 0.294118 +vt 0.149425 0.411765 +vt 0.030651 0.352941 +vt 0.149425 0.470588 +vt 0.030651 0.411765 +vt 0.030651 0.529412 +vt 0.030651 0.470588 +vt 0.149425 0.588235 +vt 0.149425 0.529412 +vt 0.030651 0.647059 +vt 0.030651 0.588235 +vt 0.149425 0.705882 +vt 0.149425 0.647059 +vt 0.030651 0.764706 +vt 0.030651 0.705882 +vt 0.149425 0.823529 +vt 0.149425 0.764706 +vt 0.030651 0.823529 +vt 0.157088 0.647059 +vt 0.172414 0.705882 +vt 0.157088 0.705882 +vt 0.157088 0.176471 +vt 0.172414 0.235294 +vt 0.157088 0.235294 +vt 0.172414 0.764706 +vt 0.157088 0.764706 +vt 0.172414 0.294118 +vt 0.157088 0.294118 +vt 0.172414 0.823529 +vt 0.157088 0.823529 +vt 0.172414 0.352941 +vt 0.157088 0.352941 +vt 0.172414 0.882353 +vt 0.157088 0.882353 +vt 0.172414 0.411765 +vt 0.157088 0.411765 +vt 0.172414 0.941176 +vt 0.157088 0.941176 +vt 0.157088 0.470588 +vt 0.172414 0.529412 +vt 0.157088 0.529412 +vt 0.172414 0.470588 +vt 0.157088 -0.000000 +vt 0.172414 0.058824 +vt 0.157088 0.058824 +vt 0.172414 0.588235 +vt 0.157088 0.588235 +vt 0.172414 0.117647 +vt 0.157088 0.117647 +vt 0.172414 0.647059 +vt 0.172414 0.176471 +vt 0.287356 0.294118 +vt 0.272031 0.235294 +vt 0.287356 0.235294 +vt 0.287356 0.823529 +vt 0.272031 0.764706 +vt 0.287356 0.764706 +vt 0.287356 0.352941 +vt 0.272031 0.294118 +vt 0.287356 0.882353 +vt 0.272031 0.823529 +vt 0.287356 0.411765 +vt 0.272031 0.352941 +vt 0.287356 0.941176 +vt 0.272031 0.882353 +vt 0.287356 0.529412 +vt 0.272031 0.470588 +vt 0.287356 0.470588 +vt 0.272031 0.411765 +vt 0.287356 0.058824 +vt 0.272031 0.000000 +vt 0.287356 0.000000 +vt 0.287356 0.588235 +vt 0.272031 0.529412 +vt 0.287356 0.117647 +vt 0.272031 0.058824 +vt 0.287356 0.647059 +vt 0.272031 0.588235 +vt 0.287356 0.176471 +vt 0.272031 0.117647 +vt 0.287356 0.705882 +vt 0.272031 0.647059 +vt 0.272031 0.176471 +vt 0.272031 0.705882 +vt 0.268199 0.294118 +vt 0.176245 0.352941 +vt 0.176245 0.294118 +vt 0.268199 0.352941 +vt 0.176245 0.411765 +vt 0.268199 0.411765 +vt 0.176245 0.470588 +vt 0.268199 0.470588 +vt 0.176245 0.529412 +vt 0.268199 0.529412 +vt 0.176245 0.588235 +vt 0.268199 0.588235 +vt 0.176245 0.647059 +vt 0.268199 0.647059 +vt 0.176245 0.705882 +vt 0.268199 0.705882 +vt 0.176245 0.764706 +vt 0.268199 0.764706 +vt 0.176245 0.823529 +vt 0.268199 0.823529 +vt 0.176245 0.882353 +vt 0.268199 0.882353 +vt 0.176245 0.941176 +vt 0.268199 0.000000 +vt 0.176245 0.058824 +vt 0.176245 0.000000 +vt 0.268199 0.058824 +vt 0.176245 0.117647 +vt 0.268199 0.117647 +vt 0.176245 0.176471 +vt 0.268199 0.176471 +vt 0.176245 0.235294 +vt 0.268199 0.235294 +vt 0.831418 0.039216 +vt 0.708812 -0.000000 +vt 0.831418 0.000000 +vt 0.831418 0.627451 +vt 0.708812 0.588235 +vt 0.831418 0.588235 +vt 0.708812 0.549020 +vt 0.831418 0.549020 +vt 0.708812 0.509804 +vt 0.831418 0.509804 +vt 0.708812 0.470588 +vt 0.831418 0.470588 +vt 0.708812 0.431373 +vt 0.831418 0.431373 +vt 0.708812 0.392157 +vt 0.831418 0.392157 +vt 0.831418 0.313726 +vt 0.708812 0.274510 +vt 0.831418 0.274510 +vt 0.708812 0.352941 +vt 0.831418 0.352941 +vt 0.708812 0.235294 +vt 0.831418 0.235294 +vt 0.708812 0.313726 +vt 0.708812 0.196078 +vt 0.831418 0.196078 +vt 0.708812 0.156863 +vt 0.831418 0.156863 +vt 0.708812 0.117647 +vt 0.831418 0.117647 +vt 0.708812 0.078431 +vt 0.831418 0.078431 +vt 0.708812 0.039216 +vt 0.854406 0.816993 +vt 0.823755 0.823529 +vt 0.823755 0.816993 +vt 0.938697 0.836601 +vt 0.934866 0.830065 +vt 0.938697 0.830065 +vt 0.938697 0.823529 +vt 0.934866 0.823529 +vt 0.938697 0.816993 +vt 0.938697 0.856209 +vt 0.934866 0.849673 +vt 0.938697 0.849673 +vt 0.938697 0.843137 +vt 0.934866 0.843137 +vt 0.934866 0.836601 +vt 0.931035 0.830065 +vt 0.931035 0.816993 +vt 0.934866 0.816993 +vt 0.931035 0.856209 +vt 0.934866 0.856209 +vt 0.931035 0.843137 +vt 0.931035 0.836601 +vt 0.934866 0.862745 +vt 0.934866 0.810458 +vt 0.854406 0.823529 +vt 0.931035 0.823529 +vt 0.854406 0.830065 +vt 0.854406 0.836601 +vt 0.854406 0.843137 +vt 0.854406 0.849673 +vt 0.931035 0.849673 +vt 0.854406 0.856209 +vt 0.931035 0.862745 +vt 0.854406 0.862745 +vt 0.931035 0.810458 +vt 0.724138 0.810458 +vt 0.823755 0.810458 +vt 0.823755 0.836601 +vt 0.823755 0.830065 +vt 0.823755 0.849673 +vt 0.854406 0.810458 +vt 0.823755 0.843137 +vt 0.823755 0.856209 +vt 0.724138 0.823529 +vt 0.724138 0.843137 +vt 0.823755 0.862745 +vt 0.724138 0.856209 +vt 0.724138 0.816993 +vt 0.724138 0.830065 +vt 0.724138 0.836601 +vt 0.724138 0.849673 +vt 0.854406 0.816993 +vt 0.823755 0.823529 +vt 0.823755 0.816993 +vt 0.938697 0.836601 +vt 0.934866 0.830065 +vt 0.938697 0.830065 +vt 0.938697 0.823529 +vt 0.934866 0.823529 +vt 0.938697 0.816993 +vt 0.938697 0.856209 +vt 0.934866 0.849673 +vt 0.938697 0.849673 +vt 0.938697 0.843137 +vt 0.934866 0.836601 +vt 0.931035 0.830065 +vt 0.931035 0.823529 +vt 0.931035 0.816993 +vt 0.934866 0.816993 +vt 0.931035 0.856209 +vt 0.934866 0.856209 +vt 0.931035 0.849673 +vt 0.934866 0.843137 +vt 0.931035 0.836601 +vt 0.934866 0.862745 +vt 0.934866 0.810458 +vt 0.854406 0.823529 +vt 0.854406 0.830065 +vt 0.854406 0.836601 +vt 0.931035 0.843137 +vt 0.854406 0.843137 +vt 0.854406 0.849673 +vt 0.854406 0.856209 +vt 0.931035 0.862745 +vt 0.854406 0.862745 +vt 0.854406 0.810458 +vt 0.724138 0.810458 +vt 0.823755 0.810458 +vt 0.823755 0.836601 +vt 0.823755 0.830065 +vt 0.823755 0.849673 +vt 0.823755 0.843137 +vt 0.823755 0.856209 +vt 0.724138 0.823529 +vt 0.724138 0.843137 +vt 0.823755 0.862745 +vt 0.724138 0.856209 +vt 0.724138 0.816993 +vt 0.724138 0.830065 +vt 0.724138 0.836601 +vt 0.724138 0.849673 +vt 0.854406 0.816993 +vt 0.823755 0.823529 +vt 0.823755 0.816993 +vt 0.938697 0.836601 +vt 0.934866 0.830065 +vt 0.938697 0.830065 +vt 0.938697 0.823529 +vt 0.934866 0.816993 +vt 0.938697 0.816993 +vt 0.938697 0.856209 +vt 0.934866 0.849673 +vt 0.938697 0.849673 +vt 0.938697 0.843137 +vt 0.934866 0.836601 +vt 0.931035 0.830065 +vt 0.931035 0.823529 +vt 0.934866 0.823529 +vt 0.931035 0.816993 +vt 0.931035 0.856209 +vt 0.934866 0.856209 +vt 0.931035 0.843137 +vt 0.934866 0.843137 +vt 0.934866 0.862745 +vt 0.934866 0.810458 +vt 0.854406 0.823529 +vt 0.854406 0.830065 +vt 0.854406 0.836601 +vt 0.854406 0.843137 +vt 0.854406 0.849673 +vt 0.931035 0.849673 +vt 0.854406 0.856209 +vt 0.931035 0.862745 +vt 0.854406 0.862745 +vt 0.854406 0.810458 +vt 0.724138 0.810458 +vt 0.823755 0.810458 +vt 0.823755 0.836601 +vt 0.823755 0.830065 +vt 0.823755 0.849673 +vt 0.823755 0.843137 +vt 0.823755 0.856209 +vt 0.724138 0.823529 +vt 0.724138 0.843137 +vt 0.823755 0.862745 +vt 0.724138 0.856209 +vt 0.724138 0.816993 +vt 0.724138 0.830065 +vt 0.724138 0.836601 +vt 0.724138 0.849673 +vt 0.854406 0.816993 +vt 0.823755 0.823529 +vt 0.823755 0.816993 +vt 0.938697 0.836601 +vt 0.934866 0.830065 +vt 0.938697 0.830065 +vt 0.938697 0.823529 +vt 0.934866 0.823529 +vt 0.938697 0.816993 +vt 0.938697 0.856209 +vt 0.934866 0.849673 +vt 0.938697 0.849673 +vt 0.938697 0.843137 +vt 0.934866 0.843137 +vt 0.934866 0.836601 +vt 0.931035 0.830065 +vt 0.931035 0.823529 +vt 0.934866 0.816993 +vt 0.931035 0.856209 +vt 0.934866 0.856209 +vt 0.931035 0.843137 +vt 0.931035 0.836601 +vt 0.934866 0.862745 +vt 0.934866 0.810458 +vt 0.931035 0.816993 +vt 0.854406 0.823529 +vt 0.854406 0.830065 +vt 0.854406 0.836601 +vt 0.854406 0.843137 +vt 0.854406 0.849673 +vt 0.931035 0.849673 +vt 0.854406 0.856209 +vt 0.931035 0.862745 +vt 0.854406 0.862745 +vt 0.854406 0.810458 +vt 0.724138 0.810458 +vt 0.823755 0.810458 +vt 0.823755 0.836601 +vt 0.823755 0.830065 +vt 0.823755 0.849673 +vt 0.823755 0.843137 +vt 0.823755 0.856209 +vt 0.724138 0.823529 +vt 0.724138 0.843137 +vt 0.823755 0.862745 +vt 0.724138 0.856209 +vt 0.724138 0.816993 +vt 0.724138 0.830065 +vt 0.724138 0.836601 +vt 0.724138 0.849673 +vt 0.854406 0.816993 +vt 0.823755 0.823529 +vt 0.823755 0.816993 +vt 0.938697 0.836601 +vt 0.934866 0.830065 +vt 0.938697 0.830065 +vt 0.938697 0.823529 +vt 0.934866 0.823529 +vt 0.938697 0.816993 +vt 0.938697 0.856209 +vt 0.934866 0.849673 +vt 0.938697 0.849673 +vt 0.938697 0.843137 +vt 0.934866 0.836601 +vt 0.931035 0.830065 +vt 0.931035 0.823529 +vt 0.934866 0.816993 +vt 0.931035 0.856209 +vt 0.934866 0.856209 +vt 0.931035 0.843137 +vt 0.934866 0.843137 +vt 0.931035 0.836601 +vt 0.934866 0.862745 +vt 0.934866 0.810458 +vt 0.931035 0.816993 +vt 0.854406 0.823529 +vt 0.854406 0.830065 +vt 0.854406 0.836601 +vt 0.854406 0.843137 +vt 0.854406 0.849673 +vt 0.931035 0.849673 +vt 0.854406 0.856209 +vt 0.931035 0.862745 +vt 0.854406 0.862745 +vt 0.854406 0.810458 +vt 0.724138 0.810458 +vt 0.823755 0.810458 +vt 0.823755 0.836601 +vt 0.823755 0.830065 +vt 0.823755 0.849673 +vt 0.823755 0.843137 +vt 0.823755 0.856209 +vt 0.724138 0.823529 +vt 0.724138 0.843137 +vt 0.823755 0.862745 +vt 0.724138 0.856209 +vt 0.724138 0.816993 +vt 0.724138 0.830065 +vt 0.724138 0.836601 +vt 0.724138 0.849673 +vt 0.854406 0.816993 +vt 0.823755 0.823529 +vt 0.823755 0.816993 +vt 0.938697 0.836601 +vt 0.934866 0.830065 +vt 0.938697 0.830065 +vt 0.938697 0.823529 +vt 0.934866 0.823529 +vt 0.938697 0.816993 +vt 0.938697 0.856209 +vt 0.934866 0.849673 +vt 0.938697 0.849673 +vt 0.938697 0.843137 +vt 0.934866 0.843137 +vt 0.931035 0.836601 +vt 0.934866 0.836601 +vt 0.931035 0.830065 +vt 0.931035 0.823529 +vt 0.934866 0.816993 +vt 0.931035 0.856209 +vt 0.934866 0.856209 +vt 0.931035 0.849673 +vt 0.931035 0.843137 +vt 0.934866 0.862745 +vt 0.934866 0.810458 +vt 0.931035 0.816993 +vt 0.854406 0.823529 +vt 0.854406 0.830065 +vt 0.854406 0.836601 +vt 0.854406 0.843137 +vt 0.854406 0.849673 +vt 0.854406 0.856209 +vt 0.931035 0.862745 +vt 0.854406 0.862745 +vt 0.854406 0.810458 +vt 0.724138 0.810458 +vt 0.823755 0.810458 +vt 0.823755 0.836601 +vt 0.823755 0.830065 +vt 0.823755 0.849673 +vt 0.823755 0.843137 +vt 0.823755 0.856209 +vt 0.724138 0.823529 +vt 0.724138 0.843137 +vt 0.823755 0.862745 +vt 0.724138 0.856209 +vt 0.724138 0.816993 +vt 0.724138 0.836601 +vt 0.724138 0.830065 +vt 0.724138 0.849673 +vt 0.854406 0.816993 +vt 0.823755 0.823529 +vt 0.823755 0.816993 +vt 0.934866 0.836601 +vt 0.938697 0.830065 +vt 0.938697 0.836601 +vt 0.934866 0.830065 +vt 0.938697 0.823529 +vt 0.934866 0.816993 +vt 0.938697 0.816993 +vt 0.938697 0.856209 +vt 0.934866 0.849673 +vt 0.938697 0.849673 +vt 0.938697 0.843137 +vt 0.931035 0.830065 +vt 0.934866 0.823529 +vt 0.931035 0.823529 +vt 0.931035 0.856209 +vt 0.934866 0.856209 +vt 0.931035 0.843137 +vt 0.934866 0.843137 +vt 0.931035 0.836601 +vt 0.934866 0.862745 +vt 0.934866 0.810458 +vt 0.931035 0.816993 +vt 0.854406 0.823529 +vt 0.854406 0.830065 +vt 0.854406 0.836601 +vt 0.854406 0.843137 +vt 0.854406 0.849673 +vt 0.931035 0.849673 +vt 0.854406 0.856209 +vt 0.931035 0.862745 +vt 0.854406 0.862745 +vt 0.854406 0.810458 +vt 0.823755 0.810458 +vt 0.724138 0.816993 +vt 0.724138 0.810458 +vt 0.823755 0.836601 +vt 0.823755 0.830065 +vt 0.823755 0.849673 +vt 0.823755 0.843137 +vt 0.823755 0.856209 +vt 0.724138 0.823529 +vt 0.724138 0.843137 +vt 0.823755 0.862745 +vt 0.724138 0.856209 +vt 0.724138 0.830065 +vt 0.724138 0.836601 +vt 0.724138 0.849673 +vt 0.432950 0.869281 +vt 0.463602 0.888889 +vt 0.432950 0.888889 +vt 0.463602 0.908497 +vt 0.432950 0.908497 +vt 0.432950 0.928105 +vt 0.463602 0.947712 +vt 0.432950 0.947712 +vt 0.432950 0.810458 +vt 0.463602 0.830065 +vt 0.432950 0.830065 +vt 0.432950 0.810458 +vt 0.463602 0.830065 +vt 0.432950 0.830065 +vt 0.432950 0.928105 +vt 0.463602 0.947712 +vt 0.432950 0.947712 +vt 0.432950 0.888889 +vt 0.463602 0.908497 +vt 0.432950 0.908497 +vt 0.432950 0.869281 +vt 0.463602 0.888889 +vt 0.463602 0.849673 +vt 0.432950 0.849673 +vt 0.463602 0.967320 +vt 0.432950 0.967320 +vt 0.463602 0.928105 +vt 0.463602 0.869281 +vt 0.432950 0.849673 +vt 0.463602 0.869281 +vt 0.432950 0.869281 +vt 0.432950 0.908497 +vt 0.463602 0.928105 +vt 0.432950 0.928105 +vt 0.432950 0.947712 +vt 0.463602 0.967320 +vt 0.432950 0.967320 +vt 0.432950 0.830065 +vt 0.463602 0.849673 +vt 0.463602 0.888889 +vt 0.432950 0.888889 +vt 0.463602 0.908497 +vt 0.463602 0.947712 +vt 0.432950 0.810458 +vt 0.463602 0.830065 +vt 0.463602 0.849673 +vt 0.432950 0.849673 +vt 0.463602 0.967320 +vt 0.432950 0.967320 +vt 0.463602 0.928105 +vt 0.463602 0.869281 +vt 0.432950 0.849673 +vt 0.463602 0.869281 +vt 0.432950 0.869281 +vt 0.432950 0.908497 +vt 0.463602 0.928105 +vt 0.432950 0.928105 +vt 0.432950 0.947712 +vt 0.463602 0.967320 +vt 0.432950 0.967320 +vt 0.432950 0.830065 +vt 0.463602 0.849673 +vt 0.463602 0.888889 +vt 0.432950 0.888889 +vt 0.463602 0.908497 +vt 0.463602 0.947712 +vt 0.432950 0.810458 +vt 0.463602 0.830065 +vt 0.386973 0.117647 +vt 0.295019 0.078431 +vt 0.386973 0.078431 +vt 0.386973 0.039216 +vt 0.295019 0.039216 +vt 0.295019 -0.000000 +vt 0.386973 -0.000000 +vt 0.386973 0.627451 +vt 0.295019 0.588235 +vt 0.386973 0.588235 +vt 0.295019 0.549020 +vt 0.386973 0.549020 +vt 0.295019 0.509804 +vt 0.386973 0.509804 +vt 0.295019 0.470588 +vt 0.386973 0.470588 +vt 0.386973 0.431373 +vt 0.295019 0.431373 +vt 0.295019 0.392157 +vt 0.386973 0.392157 +vt 0.295019 0.352941 +vt 0.386973 0.352941 +vt 0.295019 0.313726 +vt 0.386973 0.313726 +vt 0.295019 0.274510 +vt 0.386973 0.274510 +vt 0.386973 0.235294 +vt 0.295019 0.235294 +vt 0.295019 0.196078 +vt 0.386973 0.196078 +vt 0.386973 0.156863 +vt 0.295019 0.156863 +vt 0.295019 0.117647 +vt 0.000000 0.588235 +vt 0.030651 0.529412 +vt 0.000000 0.529412 +vt 0.000000 0.117647 +vt 0.030651 0.058824 +vt 0.000000 0.058824 +vt 0.000000 0.647059 +vt 0.030651 0.588235 +vt 0.000000 0.176471 +vt 0.030651 0.117647 +vt -0.000000 0.705882 +vt 0.030651 0.647059 +vt 0.000000 0.235294 +vt 0.030651 0.176471 +vt 0.000000 0.764706 +vt 0.030651 0.705882 +vt 0.000000 0.294118 +vt 0.030651 0.235294 +vt 0.000000 0.823529 +vt 0.030651 0.764706 +vt 0.000000 0.352941 +vt 0.030651 0.294118 +vt 0.000000 0.882353 +vt 0.030651 0.823529 +vt 0.000000 0.411765 +vt 0.030651 0.352941 +vt 0.000000 0.941176 +vt 0.030651 0.882353 +vt 0.030651 0.470588 +vt 0.000000 0.470588 +vt 0.030651 0.411765 +vt 0.030651 -0.000000 +vt -0.000000 -0.000000 +vt 0.149425 0.941176 +vt 0.616858 0.117647 +vt 0.616858 -0.000000 +vt 0.616858 0.588235 +vt 0.616858 0.470588 +vt 0.586207 -0.000000 +vt 0.386973 0.627451 +vt 0.616858 0.627451 +vt 0.831418 0.418301 +vt 0.030651 0.941176 +vt 0.724138 0.862745 +vt 0.831418 0.418301 +vt 0.862069 0.470588 +vt 0.892720 0.627451 +vt 0.892720 0.444444 +vt 0.862069 0.418301 +vt 0.831418 0.418301 +vt 0.862069 0.470588 +vt 0.892720 0.627451 +vt 0.892720 0.535948 +vt 0.862069 0.418301 +vt 0.865900 0.444444 +vt 0.030651 0.941176 +vt 0.172414 0.000000 +vt 0.272031 0.941176 +vt 0.268199 0.941176 +vt 0.708812 0.627451 +vt 0.724138 0.862745 +vt 0.931035 0.810458 +vt 0.724138 0.862745 +vt 0.931035 0.836601 +vt 0.931035 0.810458 +vt 0.724138 0.862745 +vt 0.931035 0.810458 +vt 0.724138 0.862745 +vt 0.931035 0.810458 +vt 0.724138 0.862745 +vt 0.931035 0.810458 +vt 0.724138 0.862745 +vt 0.931035 0.810458 +vt 0.724138 0.862745 +vt 0.463602 0.810458 +vt 0.463602 0.810458 +vt 0.463602 0.810458 +vt 0.463602 0.810458 +vt 0.295019 0.627451 +vt 0.030651 0.941176 +vn 0.0000 0.0000 1.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn -0.5000 -0.8660 0.0000 +vn 0.5000 0.8660 0.0000 +vn -0.8660 0.5000 0.0000 +vn 0.8660 -0.5000 0.0000 +vn -0.8660 -0.5000 0.0000 +vn 0.8660 0.5000 0.0000 +vn -0.5000 0.8660 0.0000 +vn 0.5000 -0.8660 0.0000 +vn -0.7071 0.7071 0.0000 +vn 0.7071 0.7071 0.0000 +vn 0.1303 0.3145 0.9402 +vn 0.5000 0.5000 0.7071 +vn 0.2407 0.2407 0.9402 +vn 0.6533 0.2706 0.7071 +vn 0.3145 0.1303 0.9402 +vn 0.7071 0.0000 0.7071 +vn 0.3404 0.0000 0.9402 +vn 0.6533 -0.2706 0.7071 +vn 0.3145 -0.1303 0.9402 +vn 0.5000 -0.5000 0.7071 +vn 0.2407 -0.2407 0.9402 +vn 0.2706 -0.6533 0.7071 +vn 0.1303 -0.3145 0.9402 +vn 0.0000 -0.7071 0.7071 +vn 0.0000 -0.3404 0.9402 +vn -0.2706 -0.6533 0.7071 +vn -0.1303 -0.3145 0.9402 +vn -0.2407 -0.2407 0.9402 +vn -0.5000 -0.5000 0.7071 +vn -0.3145 -0.1303 0.9402 +vn -0.6533 -0.2706 0.7071 +vn -0.3404 0.0000 0.9402 +vn -0.7071 0.0000 0.7071 +vn -0.3145 0.1303 0.9402 +vn -0.6533 0.2706 0.7071 +vn -0.2407 0.2407 0.9402 +vn -0.5000 0.5000 0.7071 +vn -0.1303 0.3145 0.9402 +vn -0.2706 0.6533 0.7071 +vn 0.0000 0.3404 0.9402 +vn 0.0000 0.7071 0.7071 +vn 0.2706 0.6533 0.7071 +vn 0.9701 0.0000 0.2425 +vn 0.8963 0.3713 0.2425 +vn 0.8963 -0.3712 0.2425 +vn 0.6860 -0.6860 0.2425 +vn 0.3712 -0.8963 0.2425 +vn 0.0000 -0.9701 0.2425 +vn -0.3713 -0.8963 0.2425 +vn -0.6860 -0.6860 0.2425 +vn -0.8963 -0.3713 0.2425 +vn -0.9701 0.0000 0.2425 +vn -0.8963 -0.3712 0.2425 +vn -0.8963 0.3713 0.2425 +vn -0.6860 0.6860 0.2425 +vn -0.3712 0.8963 0.2425 +vn 0.0000 0.9701 0.2425 +vn 0.3712 0.8963 0.2425 +vn 0.6860 0.6860 0.2425 +vn -0.9239 0.3827 0.0000 +vn 0.3827 0.9239 0.0000 +vn -0.3827 0.9239 0.0000 +vn 0.9239 0.3827 0.0000 +vn 0.9239 -0.3827 0.0000 +vn 0.7071 -0.7071 0.0000 +vn 0.3827 -0.9239 0.0000 +vn -0.3827 -0.9239 0.0000 +vn -0.7071 -0.7071 0.0000 +vn -0.9239 -0.3827 0.0000 +vn 0.2482 -0.5993 -0.7610 +vn 0.6794 -0.6794 -0.2770 +vn 0.3677 -0.8877 -0.2770 +vn -0.6794 0.6794 -0.2770 +vn -0.5993 0.2482 -0.7610 +vn -0.8877 0.3677 -0.2770 +vn 0.5993 -0.2482 -0.7610 +vn 0.8877 -0.3677 -0.2770 +vn -0.9608 0.0000 -0.2770 +vn 0.6487 0.0000 -0.7610 +vn 0.9608 0.0000 -0.2770 +vn -0.6487 0.0000 -0.7610 +vn -0.8877 -0.3677 -0.2770 +vn 0.8877 0.3677 -0.2770 +vn -0.4587 -0.4587 -0.7610 +vn -0.6794 -0.6794 -0.2770 +vn 0.5993 0.2482 -0.7610 +vn 0.6794 0.6794 -0.2770 +vn -0.2482 -0.5993 -0.7610 +vn -0.3677 -0.8877 -0.2770 +vn 0.2482 0.5993 -0.7610 +vn 0.3677 0.8877 -0.2770 +vn 0.0000 -0.9608 -0.2770 +vn 0.0000 0.9608 -0.2770 +vn -0.2482 0.5993 -0.7610 +vn -0.3677 0.8877 -0.2770 +vn 0.0000 -0.6487 -0.7610 +vn -0.4587 0.4587 -0.7610 +vn 0.0000 0.6487 -0.7610 +vn 0.4587 0.4587 -0.7610 +vn -0.5993 -0.2482 -0.7610 +vn 0.4587 -0.4587 -0.7610 +vn 0.4060 -0.9098 -0.0852 +vn 0.9138 -0.4060 -0.0074 +vn 0.3675 -0.9257 -0.0887 +vn 0.2677 0.6544 -0.7071 +vn 0.6982 0.0343 -0.7150 +vn 0.1449 0.3542 -0.9239 +vn 0.8141 0.2389 -0.5293 +vn 0.9355 -0.3403 -0.0948 +vn 0.9467 -0.3148 -0.0670 +vn 0.5778 -0.5185 0.6303 +vn -0.7755 0.0352 0.6303 +vn -0.8960 0.4390 -0.0670 +vn -0.9058 0.4130 -0.0948 +vn -0.4132 0.7410 -0.5293 +vn -0.4740 0.5139 -0.7150 +vn 0.9012 0.4085 -0.1447 +vn 0.4171 -0.8986 0.1363 +vn 0.5261 -0.7141 0.4617 +vn -0.9273 -0.3485 0.1363 +vn -0.8758 -0.1406 0.4617 +vn -0.3564 0.9230 -0.1447 +vn 0.3720 0.9093 -0.1866 +vn -0.3714 -0.9079 0.1944 +vn 0.9363 -0.3510 0.0074 +vn 0.9422 -0.3344 -0.0196 +vn 0.9110 0.4027 0.0887 +vn 0.3760 0.9190 0.1187 +vn -0.3675 0.9257 0.0887 +vn -0.9138 0.4060 0.0074 +vn -0.9064 0.4219 -0.0196 +vn -0.9273 -0.3644 -0.0852 +vn -0.3756 -0.9181 -0.1259 +vn -0.3786 -0.9255 0.0000 +vn -0.3760 -0.9190 -0.1187 +vn 0.3756 0.9181 0.1259 +vn 0.9273 0.3644 0.0852 +vn -0.9363 0.3510 -0.0074 +vn -0.4060 0.9098 0.0852 +vn -0.9110 -0.4027 -0.0887 +vn 0.9255 -0.3786 0.0000 +vn -0.3867 0.9222 0.0000 +vn -0.9222 -0.3867 0.0000 +vn 0.3867 -0.9222 0.0000 +vn 0.9222 0.3867 0.0000 +vn 0.3786 0.9255 0.0000 +vn -0.9255 0.3786 0.0000 +vn 0.7194 0.1447 0.6794 +vn 0.9824 0.1866 0.0000 +vn 0.5293 0.5293 0.6630 +vn 0.0473 0.0196 0.9987 +vn 0.0670 0.0670 0.9955 +vn -0.6737 -0.1363 0.7263 +vn -0.6737 -0.1363 -0.7263 +vn 0.0670 0.0670 -0.9955 +vn 0.0473 0.0196 -0.9987 +vn 0.5293 0.5293 -0.6630 +vn 0.7194 0.1447 -0.6794 +vn 0.1447 0.7194 0.6794 +vn 0.0196 0.0473 0.9987 +vn -0.4617 -0.4617 0.7573 +vn -0.4617 -0.4617 -0.7573 +vn 0.0196 0.0473 -0.9987 +vn 0.1447 0.7194 -0.6794 +vn -0.1363 -0.6737 0.7263 +vn -0.1363 -0.6737 -0.7263 +vn -0.7071 0.0000 -0.7071 +vn 0.7071 0.0000 -0.7071 +vn 0.0000 0.7071 -0.7071 +vn 0.1866 0.9824 0.0000 +vn 0.0000 -0.7071 -0.7071 +vn -0.6794 -0.7194 0.1447 +vn 0.0000 -0.9824 0.1866 +vn -0.9955 -0.0670 0.0670 +vn -0.9987 -0.0473 0.0196 +vn -0.7573 0.4617 -0.4617 +vn -0.7263 0.6737 -0.1363 +vn 0.7573 0.4617 -0.4617 +vn 0.9987 -0.0473 0.0196 +vn 0.7263 0.6737 -0.1363 +vn 0.9955 -0.0670 0.0670 +vn 0.6794 -0.7194 0.1447 +vn -0.6794 -0.1447 0.7194 +vn -0.6630 -0.5293 0.5293 +vn -0.9987 -0.0196 0.0473 +vn 0.7263 0.1363 -0.6737 +vn 0.9987 -0.0196 0.0473 +vn 0.6630 -0.5293 0.5293 +vn 0.0000 -0.1866 0.9824 +vn -0.7263 0.1363 -0.6737 +vn 0.6794 -0.1447 0.7194 +vn 0.0000 0.1866 -0.9824 +vn 0.6630 0.5293 -0.5293 +vn 0.6794 0.1447 -0.7194 +vn 0.9987 0.0196 -0.0473 +vn 0.7573 -0.4617 0.4617 +vn 0.7263 -0.1363 0.6737 +vn -0.7573 -0.4617 0.4617 +vn -0.9987 0.0196 -0.0473 +vn -0.7263 -0.1363 0.6737 +vn -0.9955 0.0670 -0.0670 +vn -0.6794 0.1447 -0.7194 +vn -0.6630 0.5293 -0.5293 +vn 0.6794 0.7194 -0.1447 +vn 0.9955 0.0670 -0.0670 +vn 0.9987 0.0473 -0.0196 +vn -0.9987 0.0473 -0.0196 +vn -0.6794 0.7194 -0.1447 +vn 0.0000 0.9824 -0.1866 +vn 0.7263 -0.6737 0.1363 +vn -0.7263 -0.6737 0.1363 +vn -0.7194 0.1447 0.6794 +vn -0.9824 0.1866 0.0000 +vn -0.0473 0.0196 0.9987 +vn -0.5293 0.5293 0.6630 +vn 0.6737 -0.1363 0.7263 +vn -0.0670 0.0670 0.9955 +vn 0.6737 -0.1363 -0.7263 +vn -0.0670 0.0670 -0.9955 +vn 0.4617 -0.4617 -0.7573 +vn -0.0473 0.0196 -0.9987 +vn -0.5293 0.5293 -0.6630 +vn -0.7194 0.1447 -0.6794 +vn -0.1447 0.7194 0.6794 +vn -0.1866 0.9824 0.0000 +vn -0.0196 0.0473 0.9987 +vn 0.1363 -0.6737 0.7263 +vn -0.0196 0.0473 -0.9987 +vn 0.1363 -0.6737 -0.7263 +vn -0.1447 0.7194 -0.6794 +vn 0.4617 -0.4617 0.7573 +vn 0.9239 -0.2706 0.2706 +vn -0.0455 0.7064 -0.7064 +vn 0.9859 -0.0639 0.1543 +vn 0.9859 0.0639 -0.1543 +vn 0.9239 0.2706 -0.2706 +vn 0.9859 0.1543 -0.0639 +vn -0.0455 -0.7064 0.7064 +vn 0.9859 -0.1543 0.0639 +vn -0.4060 0.9098 -0.0852 +vn -0.9138 0.4060 -0.0074 +vn -0.3675 0.9257 -0.0887 +vn -0.1449 -0.3542 -0.9239 +vn -0.8141 -0.2389 -0.5293 +vn -0.6982 -0.0343 -0.7150 +vn -0.9355 0.3403 -0.0948 +vn -0.9467 0.3148 -0.0670 +vn -0.5778 0.5185 0.6303 +vn 0.7755 -0.0352 0.6303 +vn 0.8960 -0.4390 -0.0670 +vn 0.9058 -0.4130 -0.0948 +vn 0.4740 -0.5139 -0.7150 +vn 0.4132 -0.7410 -0.5293 +vn -0.2677 -0.6544 -0.7071 +vn -0.9012 -0.4085 -0.1447 +vn -0.4171 0.8986 0.1363 +vn -0.5261 0.7141 0.4617 +vn 0.9273 0.3485 0.1363 +vn 0.8758 0.1406 0.4617 +vn 0.3564 -0.9230 -0.1447 +vn -0.3720 -0.9093 -0.1866 +vn 0.3714 0.9079 0.1944 +vn -0.9363 0.3510 0.0074 +vn -0.9422 0.3344 -0.0196 +vn -0.9110 -0.4027 0.0887 +vn -0.3760 -0.9190 0.1187 +vn 0.3675 -0.9257 0.0887 +vn 0.9138 -0.4060 0.0074 +vn 0.9064 -0.4219 -0.0196 +vn 0.9273 0.3644 -0.0852 +vn 0.3756 0.9181 -0.1259 +vn 0.3760 0.9190 -0.1187 +vn -0.3756 -0.9181 0.1259 +vn -0.9273 -0.3644 0.0852 +vn 0.9363 -0.3510 -0.0074 +vn 0.4060 -0.9098 0.0852 +vn 0.9110 0.4027 -0.0887 +vn -0.9098 -0.4060 -0.0852 +vn -0.4060 -0.9138 -0.0074 +vn -0.9257 -0.3675 -0.0887 +vn 0.3542 -0.1449 -0.9239 +vn 0.2389 -0.8141 -0.5293 +vn 0.0343 -0.6982 -0.7150 +vn -0.3403 -0.9355 -0.0948 +vn -0.3148 -0.9467 -0.0670 +vn -0.5185 -0.5778 0.6303 +vn 0.0352 0.7755 0.6303 +vn 0.4390 0.8960 -0.0670 +vn 0.4130 0.9058 -0.0948 +vn 0.5139 0.4740 -0.7150 +vn 0.6544 -0.2677 -0.7071 +vn 0.4085 -0.9012 -0.1447 +vn -0.3344 -0.9422 -0.0196 +vn -0.8986 -0.4171 0.1363 +vn -0.7141 -0.5261 0.4617 +vn -0.3485 0.9273 0.1363 +vn -0.1406 0.8758 0.4617 +vn 0.4219 0.9064 -0.0196 +vn 0.7410 0.4132 -0.5293 +vn 0.9093 -0.3720 -0.1866 +vn -0.9079 0.3714 0.1944 +vn -0.3510 -0.9363 0.0074 +vn 0.4027 -0.9110 0.0887 +vn 0.9190 -0.3760 0.1187 +vn 0.9230 0.3564 -0.1447 +vn 0.9257 0.3675 0.0887 +vn 0.4060 0.9138 0.0074 +vn -0.3644 0.9273 -0.0852 +vn -0.9181 0.3756 -0.1259 +vn -0.9190 0.3760 -0.1187 +vn 0.9181 -0.3756 0.1259 +vn 0.3644 -0.9273 0.0852 +vn 0.3510 0.9363 -0.0074 +vn 0.9098 0.4060 0.0852 +vn -0.4027 0.9110 -0.0887 +vn 0.9098 0.4060 -0.0852 +vn 0.4060 0.9138 -0.0074 +vn 0.9257 0.3675 -0.0887 +vn -0.3542 0.1449 -0.9239 +vn -0.2389 0.8141 -0.5293 +vn -0.0343 0.6982 -0.7150 +vn 0.3403 0.9355 -0.0948 +vn 0.7141 0.5261 0.4617 +vn 0.5185 0.5778 0.6303 +vn -0.0351 -0.7755 0.6303 +vn -0.4390 -0.8960 -0.0670 +vn -0.4130 -0.9058 -0.0948 +vn -0.5139 -0.4740 -0.7150 +vn -0.6544 0.2677 -0.7071 +vn -0.4085 0.9012 -0.1447 +vn 0.3344 0.9422 -0.0196 +vn 0.3149 0.9467 -0.0670 +vn 0.8986 0.4171 0.1363 +vn 0.3485 -0.9273 0.1363 +vn 0.1406 -0.8758 0.4617 +vn -0.9230 -0.3564 -0.1447 +vn -0.7410 -0.4132 -0.5293 +vn 0.9079 -0.3714 0.1944 +vn 0.3510 0.9363 0.0074 +vn -0.4027 0.9110 0.0887 +vn -0.9190 0.3760 0.1187 +vn -0.9257 -0.3675 0.0887 +vn -0.4060 -0.9138 0.0074 +vn -0.4219 -0.9064 -0.0196 +vn 0.3644 -0.9273 -0.0852 +vn 0.9181 -0.3756 -0.1259 +vn 0.9190 -0.3760 -0.1187 +vn -0.9181 0.3756 0.1259 +vn -0.3644 0.9273 0.0852 +vn -0.3510 -0.9363 -0.0074 +vn -0.9098 -0.4060 0.0852 +vn 0.4027 -0.9110 -0.0887 +vn -0.3563 -0.9305 -0.0852 +vn 0.3591 -0.9333 -0.0074 +vn -0.3947 -0.9145 -0.0887 +vn 0.3529 0.1480 -0.9239 +vn 0.7445 -0.4067 -0.5293 +vn 0.5180 -0.4694 -0.7150 +vn 0.4209 -0.9021 -0.0948 +vn 0.4468 -0.8921 -0.0670 +vn 0.0419 -0.7752 0.6303 +vn -0.5235 0.5732 0.6303 +vn -0.3231 0.9440 -0.0670 +vn -0.3484 0.9325 -0.0948 +vn 0.0282 0.6985 -0.7150 +vn 0.2318 0.8161 -0.5293 +vn 0.6521 0.2734 -0.7071 +vn 0.9261 -0.3483 -0.1447 +vn 0.4298 -0.9027 -0.0196 +vn -0.1329 -0.8770 0.4617 +vn -0.9022 0.4093 0.1363 +vn -0.7187 0.5199 0.4617 +vn 0.4006 0.9047 -0.1447 +vn 0.9060 0.3799 -0.1866 +vn -0.9046 -0.3793 0.1944 +vn -0.3404 -0.9303 0.1363 +vn 0.4139 -0.9103 0.0074 +vn 0.9289 -0.3594 0.0887 +vn 0.9157 0.3840 0.1187 +vn 0.3947 0.9145 0.0887 +vn -0.3591 0.9333 0.0074 +vn -0.3426 0.9393 -0.0196 +vn -0.9134 0.3981 -0.0852 +vn -0.9149 -0.3836 -0.1259 +vn -0.9157 -0.3840 -0.1187 +vn 0.9149 0.3836 0.1259 +vn 0.9134 -0.3981 0.0852 +vn -0.4139 0.9103 -0.0074 +vn 0.3562 0.9305 0.0852 +vn -0.9289 0.3594 -0.0887 +vn 0.3562 0.9305 -0.0852 +vn -0.3591 0.9333 -0.0074 +vn 0.3947 0.9145 -0.0887 +vn -0.3529 -0.1480 -0.9239 +vn -0.7445 0.4067 -0.5293 +vn -0.5180 0.4694 -0.7150 +vn -0.4209 0.9021 -0.0948 +vn -0.4468 0.8921 -0.0670 +vn -0.0419 0.7752 0.6303 +vn 0.5235 -0.5732 0.6303 +vn 0.3231 -0.9440 -0.0670 +vn 0.3484 -0.9325 -0.0948 +vn -0.0282 -0.6985 -0.7150 +vn -0.6521 -0.2734 -0.7071 +vn -0.9261 0.3483 -0.1447 +vn -0.4298 0.9027 -0.0196 +vn 0.1329 0.8770 0.4617 +vn 0.9022 -0.4093 0.1363 +vn 0.7187 -0.5199 0.4617 +vn -0.4006 -0.9047 -0.1447 +vn -0.2318 -0.8161 -0.5293 +vn -0.9060 -0.3799 -0.1866 +vn 0.9046 0.3793 0.1944 +vn 0.3404 0.9303 0.1363 +vn -0.4139 0.9103 0.0074 +vn -0.9289 0.3594 0.0887 +vn -0.9157 -0.3840 0.1187 +vn -0.3947 -0.9145 0.0887 +vn 0.3591 -0.9333 0.0074 +vn 0.3426 -0.9393 -0.0196 +vn 0.9134 -0.3981 -0.0852 +vn 0.9149 0.3836 -0.1259 +vn 0.9157 0.3840 -0.1187 +vn -0.9149 -0.3836 0.1259 +vn -0.9134 0.3981 0.0852 +vn 0.4139 -0.9103 -0.0074 +vn -0.3562 -0.9305 0.0852 +vn 0.9289 -0.3594 -0.0887 +vn -0.9305 0.3562 -0.0852 +vn -0.9333 -0.3591 -0.0074 +vn -0.9145 0.3947 -0.0887 +vn 0.1480 -0.3529 -0.9239 +vn -0.4067 -0.7445 -0.5293 +vn -0.4694 -0.5180 -0.7150 +vn -0.9021 -0.4209 -0.0948 +vn -0.8921 -0.4468 -0.0670 +vn -0.7752 -0.0419 0.6303 +vn 0.5732 0.5235 0.6303 +vn 0.9440 0.3231 -0.0670 +vn 0.9325 0.3485 -0.0948 +vn 0.6985 -0.0282 -0.7150 +vn 0.8161 -0.2318 -0.5293 +vn 0.3799 -0.9060 -0.1866 +vn 0.2734 -0.6521 -0.7071 +vn -0.3483 -0.9261 -0.1447 +vn -0.9027 -0.4298 -0.0196 +vn -0.8770 0.1329 0.4617 +vn 0.4093 0.9022 0.1363 +vn 0.5199 0.7187 0.4617 +vn 0.9393 0.3426 -0.0196 +vn 0.9047 -0.4006 -0.1447 +vn -0.3793 0.9046 0.1944 +vn -0.9303 0.3404 0.1363 +vn -0.9103 -0.4139 0.0074 +vn -0.3594 -0.9289 0.0887 +vn 0.3840 -0.9157 0.1187 +vn 0.9145 -0.3947 0.0887 +vn 0.9333 0.3591 0.0074 +vn 0.3981 0.9134 -0.0852 +vn -0.3836 0.9149 -0.1259 +vn -0.3840 0.9157 -0.1187 +vn 0.3836 -0.9149 0.1259 +vn -0.3981 -0.9134 0.0852 +vn 0.9103 0.4139 -0.0074 +vn 0.9305 -0.3562 0.0852 +vn 0.3594 0.9289 -0.0887 +vn 0.9305 -0.3562 -0.0852 +vn 0.9333 0.3591 -0.0074 +vn 0.9145 -0.3948 -0.0887 +vn -0.2734 0.6521 -0.7071 +vn 0.4694 0.5180 -0.7150 +vn -0.1480 0.3529 -0.9239 +vn 0.4067 0.7445 -0.5293 +vn 0.9021 0.4209 -0.0948 +vn 0.8770 -0.1329 0.4617 +vn 0.7752 0.0419 0.6303 +vn -0.5732 -0.5235 0.6303 +vn -0.9440 -0.3231 -0.0670 +vn -0.9325 -0.3484 -0.0948 +vn -0.6985 0.0282 -0.7150 +vn 0.3483 0.9261 -0.1447 +vn 0.8921 0.4468 -0.0670 +vn 0.9027 0.4298 -0.0196 +vn -0.4093 -0.9022 0.1363 +vn -0.5199 -0.7187 0.4617 +vn -0.9047 0.4006 -0.1447 +vn -0.8161 0.2318 -0.5293 +vn -0.3799 0.9060 -0.1866 +vn 0.3793 -0.9046 0.1944 +vn 0.9303 -0.3404 0.1363 +vn 0.9103 0.4139 0.0074 +vn 0.3594 0.9289 0.0887 +vn -0.3840 0.9157 0.1187 +vn -0.9145 0.3947 0.0887 +vn -0.9333 -0.3591 0.0074 +vn -0.9393 -0.3426 -0.0196 +vn -0.3981 -0.9134 -0.0852 +vn 0.3836 -0.9149 -0.1259 +vn 0.3840 -0.9157 -0.1187 +vn -0.3836 0.9149 0.1259 +vn 0.3981 0.9134 0.0852 +vn -0.9103 -0.4139 -0.0074 +vn -0.9305 0.3562 0.0852 +vn -0.3594 -0.9289 -0.0887 +vn -0.9113 0.3775 0.1644 +vn -0.6975 0.6975 0.1644 +vn -0.3775 0.9113 0.1644 +vn 0.0000 0.9864 0.1644 +vn 0.3775 0.9113 0.1644 +vn 0.6975 0.6975 0.1644 +vn 0.9113 0.3775 0.1644 +vn 0.9864 0.0000 0.1644 +vn 0.9113 -0.3775 0.1644 +vn 0.6975 -0.6975 0.1644 +vn 0.3775 -0.9113 0.1644 +vn 0.0000 -0.9864 0.1644 +vn -0.3775 -0.9113 0.1644 +vn -0.6975 -0.6975 0.1644 +vn -0.9113 -0.3775 0.1644 +vn -0.9864 0.0000 0.1644 +vn 0.8963 -0.3713 0.2425 +vn -0.9093 0.3720 -0.1866 +s off +f 994/1143/410 1025/1144/410 1009/1145/410 +f 1009/1145/410 1024/1146/410 1008/1147/410 +f 1008/1147/410 1023/1148/410 1007/1149/410 +f 1007/1149/410 1022/1150/410 1006/1151/410 +f 1006/1151/410 1021/1152/410 1005/1153/410 +f 1004/1154/410 1021/1152/410 1020/1155/410 +f 1004/1154/410 1019/1156/410 1003/1157/410 +f 1002/1158/410 1019/1156/410 1018/1159/410 +f 1001/1160/410 1018/1161/410 1017/1162/410 +f 1000/1163/410 1017/1162/410 1016/1164/410 +f 999/1165/410 1016/1164/410 1015/1166/410 +f 998/1167/410 1015/1166/410 1014/1168/410 +f 997/1169/410 1014/1168/410 1013/1170/410 +f 996/1171/410 1013/1170/410 1012/1172/410 +f 995/1173/410 1012/1172/410 1011/1174/410 +f 995/1173/410 1010/1175/410 994/1143/410 +f 1094/1176/411 1047/1177/411 1046/1178/411 +f 1045/1179/411 1094/1176/411 1046/1178/411 +f 1092/1180/411 1045/1179/411 1044/1181/411 +f 1091/1182/411 1044/1181/411 1043/1183/411 +f 1090/1184/411 1043/1183/411 1042/1185/411 +f 1105/1186/411 1042/1185/411 1057/1187/411 +f 1104/1188/411 1057/1187/411 1056/1189/411 +f 1103/1190/411 1056/1189/411 1055/1191/411 +f 1102/1192/411 1055/1191/411 1054/1193/411 +f 1053/1194/411 1102/1192/411 1054/1193/411 +f 1100/1195/411 1053/1194/411 1052/1196/411 +f 1099/1197/411 1052/1196/411 1051/1198/411 +f 1050/1199/411 1099/1197/411 1051/1198/411 +f 1049/1200/411 1098/1201/411 1050/1202/411 +f 1048/1203/411 1097/1204/411 1049/1200/411 +f 1047/1177/411 1096/1205/411 1048/1203/411 +f 1119/1206/411 1072/1207/411 1071/1208/411 +f 1120/1209/411 1073/1210/411 1072/1207/411 +f 1121/1211/411 1058/1212/411 1073/1210/411 +f 1106/1213/411 1059/1214/411 1058/1212/411 +f 1107/1215/411 1060/1216/411 1059/1214/411 +f 1060/1216/411 1109/1217/411 1061/1218/411 +f 1061/1218/411 1110/1219/411 1062/1220/411 +f 1062/1220/411 1111/1221/411 1063/1222/411 +f 1063/1222/411 1112/1223/411 1064/1224/411 +f 1064/1224/411 1113/1225/411 1065/1226/411 +f 1065/1226/411 1114/1227/411 1066/1228/411 +f 1066/1229/411 1115/1230/411 1067/1231/411 +f 1115/1230/411 1068/1232/411 1067/1231/411 +f 1116/1233/411 1069/1234/411 1068/1232/411 +f 1117/1235/411 1070/1236/411 1069/1234/411 +f 1118/1237/411 1071/1208/411 1070/1236/411 +f 1088/1238/410 1135/1239/410 1087/1240/410 +f 1089/1241/410 1136/1242/410 1088/1238/410 +f 1074/1243/410 1137/1244/410 1089/1241/410 +f 1075/1245/410 1122/1246/410 1074/1243/410 +f 1076/1247/410 1123/1248/410 1075/1245/410 +f 1076/1247/410 1125/1249/410 1124/1250/410 +f 1077/1251/410 1126/1252/410 1125/1249/410 +f 1078/1253/410 1127/1254/410 1126/1252/410 +f 1079/1255/410 1128/1256/410 1127/1254/410 +f 1080/1257/410 1129/1258/410 1128/1256/410 +f 1081/1259/410 1130/1260/410 1129/1258/410 +f 1082/1261/410 1131/1262/410 1130/1263/410 +f 1084/1264/410 1131/1262/410 1083/1265/410 +f 1084/1264/410 1133/1266/410 1132/1267/410 +f 1086/1268/410 1133/1266/410 1085/1269/410 +f 1087/1240/410 1134/1270/410 1086/1268/410 +f 1144/1271/411 1193/1272/411 1145/1273/411 +f 1152/1274/411 1201/1275/411 1153/1276/411 +f 1145/1273/411 1194/1277/411 1146/1278/411 +f 1139/1279/411 1186/1280/411 1187/1281/411 +f 1138/1282/411 1201/1275/411 1186/1280/411 +f 1147/1283/411 1194/1284/411 1195/1285/411 +f 1139/1279/411 1188/1286/411 1140/1287/411 +f 1147/1283/411 1196/1288/411 1148/1289/411 +f 1140/1287/411 1189/1290/411 1141/1291/411 +f 1148/1289/411 1197/1292/411 1149/1293/411 +f 1141/1291/411 1190/1294/411 1142/1295/411 +f 1150/1296/411 1197/1292/411 1198/1297/411 +f 1143/1298/411 1190/1294/411 1191/1299/411 +f 1151/1300/411 1198/1297/411 1199/1301/411 +f 1143/1298/411 1192/1302/411 1144/1271/411 +f 1152/1274/411 1199/1301/411 1200/1303/411 +f 1170/1304/410 1174/1305/410 1178/1306/410 +f 1212/1307/411 1217/1308/411 1213/1309/411 +f 1211/1310/410 1215/1311/410 1210/1312/410 +f 1204/1313/411 1209/1314/411 1205/1315/411 +f 1203/1316/410 1207/1317/410 1202/1318/410 +f 1205/1315/412 1208/1319/412 1203/1316/412 +f 1202/1318/413 1206/1320/413 1204/1321/413 +f 1213/1309/413 1216/1322/413 1211/1310/413 +f 1210/1312/412 1214/1323/412 1212/1324/412 +f 1228/1325/411 1233/1326/411 1229/1327/411 +f 1227/1328/410 1231/1329/410 1226/1330/410 +f 1220/1331/411 1225/1332/411 1221/1333/411 +f 1218/1334/410 1224/1335/410 1223/1336/410 +f 1221/1333/414 1224/1335/414 1219/1337/414 +f 1218/1334/415 1222/1338/415 1220/1339/415 +f 1229/1327/415 1232/1340/415 1227/1328/415 +f 1226/1330/414 1230/1341/414 1228/1342/414 +f 1244/1343/411 1249/1344/411 1245/1345/411 +f 1242/1346/410 1248/1347/410 1247/1348/410 +f 1237/1349/411 1238/1350/411 1241/1351/411 +f 1235/1352/410 1239/1353/410 1234/1354/410 +f 1237/1349/416 1240/1355/416 1235/1352/416 +f 1234/1354/417 1238/1356/417 1236/1357/417 +f 1245/1345/417 1248/1347/417 1243/1358/417 +f 1242/1346/416 1246/1359/416 1244/1360/416 +f 1260/1361/411 1265/1362/411 1261/1363/411 +f 1258/1364/410 1264/1365/410 1263/1366/410 +f 1252/1367/411 1257/1368/411 1253/1369/411 +f 1251/1370/410 1255/1371/410 1250/1372/410 +f 1253/1369/418 1256/1373/418 1251/1370/418 +f 1250/1372/419 1254/1374/419 1252/1375/419 +f 1261/1363/419 1264/1365/419 1259/1376/419 +f 1258/1364/418 1262/1377/418 1260/1378/418 +f 1276/1379/411 1281/1380/411 1277/1381/411 +f 1274/1382/410 1280/1383/410 1279/1384/410 +f 1268/1385/411 1273/1386/411 1269/1387/411 +f 1267/1388/410 1271/1389/410 1266/1390/410 +f 1269/1387/420 1272/1391/420 1267/1388/420 +f 1266/1390/421 1270/1392/421 1268/1393/421 +f 1277/1381/421 1280/1383/421 1275/1394/421 +f 1274/1382/420 1278/1395/420 1276/1396/420 +f 1292/1397/411 1297/1398/411 1293/1399/411 +f 1290/1400/410 1296/1401/410 1295/1402/410 +f 1285/1403/411 1286/1404/411 1289/1405/411 +f 1283/1406/410 1287/1407/410 1282/1408/410 +f 1285/1403/422 1288/1409/422 1283/1406/422 +f 1282/1408/423 1286/1410/423 1284/1411/423 +f 1293/1399/423 1296/1401/423 1291/1412/423 +f 1290/1400/422 1294/1413/422 1292/1414/422 +f 2032/1415/411 2030/1416/411 2028/1417/411 +f 2036/1418/410 2038/1419/410 2040/1420/410 +f 1309/1421/410 1310/1422/410 1311/1423/410 +f 1304/1424/411 1303/1425/411 1301/1426/411 +f 1393/1427/411 1389/1428/411 1385/1429/411 +f 1444/1430/415 1445/1431/415 1443/1432/415 +f 1443/1432/410 1449/1433/410 1444/1430/410 +f 1444/1430/412 1450/1434/412 1446/1435/412 +f 1445/1431/413 1448/1436/413 1443/1432/413 +f 1446/1435/411 1447/1437/411 1445/1431/411 +f 1452/1438/415 1453/1439/415 1451/1440/415 +f 1451/1440/410 1457/1441/410 1452/1438/410 +f 1452/1438/412 1458/1442/412 1454/1443/412 +f 1453/1439/413 1456/1444/413 1451/1440/413 +f 1454/1443/411 1455/1445/411 1453/1439/411 +f 1463/1446/414 1465/1447/414 1464/1448/414 +f 1459/1449/410 1465/1447/410 1460/1450/410 +f 1460/1451/412 1466/1452/412 1462/1453/412 +f 1461/1454/413 1464/1448/413 1459/1455/413 +f 1462/1456/411 1463/1446/411 1461/1457/411 +f 1476/1458/415 1477/1459/415 1475/1460/415 +f 1471/1461/414 1473/1462/414 1472/1463/414 +f 1467/1464/410 1473/1462/410 1468/1465/410 +f 1468/1466/412 1474/1467/412 1470/1468/412 +f 1469/1469/413 1472/1463/413 1467/1470/413 +f 1470/1471/411 1471/1461/411 1469/1472/411 +f 1492/1473/411 1493/1474/411 1486/1475/411 +f 1483/1476/412 1478/1477/412 1476/1458/412 +f 1478/1477/411 1481/1478/411 1479/1479/411 +f 1477/1459/413 1480/1480/413 1475/1460/413 +f 1481/1481/414 1483/1482/414 1482/1483/414 +f 1479/1484/424 1482/1483/424 1480/1480/424 +f 1486/1475/414 1487/1485/414 1485/1486/414 +f 1493/1487/412 1488/1488/412 1486/1475/412 +f 1488/1488/410 1491/1489/410 1489/1490/410 +f 1487/1485/413 1490/1491/413 1485/1486/413 +f 1491/1492/415 1493/1493/415 1492/1494/415 +f 1489/1495/425 1492/1494/425 1490/1491/425 +f 1482/1496/410 1483/1497/410 1476/1458/410 +f 1551/1498/411 1553/1499/411 1555/1500/411 +f 1543/1501/410 1542/1502/410 1547/1503/410 +f 1679/1504/412 1678/1505/412 1677/1506/412 +f 1683/1507/413 1681/1508/413 1682/1509/413 +f 1680/1510/415 1683/1507/415 1678/1511/415 +f 1677/1506/414 1681/1508/414 1679/1504/414 +f 1679/1512/411 1684/1513/411 1680/1514/411 +f 1678/1515/410 1682/1509/410 1677/1516/410 +f 1688/1517/415 1685/1518/415 1686/1519/415 +f 1691/1520/410 1685/1518/410 1687/1521/410 +f 1708/1522/414 1715/1523/414 1707/1524/414 +f 1690/1525/414 1691/1520/414 1692/1526/414 +f 1696/1527/415 1693/1528/415 1694/1529/415 +f 1699/1530/410 1693/1528/410 1695/1531/410 +f 1709/1532/415 1702/1533/415 1701/1534/415 +f 1698/1535/414 1699/1530/414 1700/1536/414 +f 1713/1537/415 1706/1538/415 1705/1539/415 +f 1704/1540/414 1711/1541/414 1703/1542/414 +f 1712/1543/411 1709/1532/411 1711/1541/411 +f 1716/1544/411 1713/1537/411 1715/1523/411 +f 2052/1545/411 2053/1546/411 2055/1547/411 +f 2045/1548/410 2044/1549/410 2049/1550/410 +f 994/1143/410 1010/1175/410 1025/1144/410 +f 1009/1145/410 1025/1144/410 1024/1146/410 +f 1008/1147/410 1024/1146/410 1023/1148/410 +f 1007/1149/410 1023/1148/410 1022/1150/410 +f 1006/1151/410 1022/1150/410 1021/1152/410 +f 1004/1154/410 1005/1153/410 1021/1152/410 +f 1004/1154/410 1020/1155/410 1019/1156/410 +f 1002/1158/410 1003/1157/410 1019/1156/410 +f 1001/1160/410 1002/1551/410 1018/1161/410 +f 1000/1163/410 1001/1160/410 1017/1162/410 +f 999/1165/410 1000/1163/410 1016/1164/410 +f 998/1167/410 999/1165/410 1015/1166/410 +f 997/1169/410 998/1167/410 1014/1168/410 +f 996/1171/410 997/1169/410 1013/1170/410 +f 995/1173/410 996/1171/410 1012/1172/410 +f 995/1173/410 1011/1174/410 1010/1175/410 +f 1094/1176/411 1095/1552/411 1047/1177/411 +f 1045/1179/411 1093/1553/411 1094/1176/411 +f 1092/1180/411 1093/1553/411 1045/1179/411 +f 1091/1182/411 1092/1180/411 1044/1181/411 +f 1090/1184/411 1091/1182/411 1043/1183/411 +f 1105/1186/411 1090/1184/411 1042/1185/411 +f 1104/1188/411 1105/1186/411 1057/1187/411 +f 1103/1190/411 1104/1188/411 1056/1189/411 +f 1102/1192/411 1103/1190/411 1055/1191/411 +f 1053/1194/411 1101/1554/411 1102/1192/411 +f 1100/1195/411 1101/1554/411 1053/1194/411 +f 1099/1197/411 1100/1195/411 1052/1196/411 +f 1050/1199/411 1098/1555/411 1099/1197/411 +f 1049/1200/411 1097/1204/411 1098/1201/411 +f 1048/1203/411 1096/1205/411 1097/1204/411 +f 1047/1177/411 1095/1552/411 1096/1205/411 +f 1119/1206/411 1120/1209/411 1072/1207/411 +f 1120/1209/411 1121/1211/411 1073/1210/411 +f 1121/1211/411 1106/1213/411 1058/1212/411 +f 1106/1213/411 1107/1215/411 1059/1214/411 +f 1107/1215/411 1108/1556/411 1060/1216/411 +f 1060/1216/411 1108/1556/411 1109/1217/411 +f 1061/1218/411 1109/1217/411 1110/1219/411 +f 1062/1220/411 1110/1219/411 1111/1221/411 +f 1063/1222/411 1111/1221/411 1112/1223/411 +f 1064/1224/411 1112/1223/411 1113/1225/411 +f 1065/1226/411 1113/1225/411 1114/1227/411 +f 1066/1229/411 1114/1557/411 1115/1230/411 +f 1115/1230/411 1116/1233/411 1068/1232/411 +f 1116/1233/411 1117/1235/411 1069/1234/411 +f 1117/1235/411 1118/1237/411 1070/1236/411 +f 1118/1237/411 1119/1206/411 1071/1208/411 +f 1088/1238/410 1136/1242/410 1135/1239/410 +f 1089/1241/410 1137/1244/410 1136/1242/410 +f 1074/1243/410 1122/1246/410 1137/1244/410 +f 1075/1245/410 1123/1248/410 1122/1246/410 +f 1076/1247/410 1124/1250/410 1123/1248/410 +f 1076/1247/410 1077/1251/410 1125/1249/410 +f 1077/1251/410 1078/1253/410 1126/1252/410 +f 1078/1253/410 1079/1255/410 1127/1254/410 +f 1079/1255/410 1080/1257/410 1128/1256/410 +f 1080/1257/410 1081/1259/410 1129/1258/410 +f 1081/1259/410 1082/1558/410 1130/1260/410 +f 1082/1261/410 1083/1265/410 1131/1262/410 +f 1084/1264/410 1132/1267/410 1131/1262/410 +f 1084/1264/410 1085/1269/410 1133/1266/410 +f 1086/1268/410 1134/1270/410 1133/1266/410 +f 1087/1240/410 1135/1239/410 1134/1270/410 +f 1144/1271/411 1192/1302/411 1193/1272/411 +f 1152/1274/411 1200/1303/411 1201/1275/411 +f 1145/1273/411 1193/1272/411 1194/1277/411 +f 1139/1279/411 1138/1282/411 1186/1280/411 +f 1138/1282/411 1153/1276/411 1201/1275/411 +f 1147/1283/411 1146/1559/411 1194/1284/411 +f 1139/1279/411 1187/1281/411 1188/1286/411 +f 1147/1283/411 1195/1285/411 1196/1288/411 +f 1140/1287/411 1188/1286/411 1189/1290/411 +f 1148/1289/411 1196/1288/411 1197/1292/411 +f 1141/1291/411 1189/1290/411 1190/1294/411 +f 1150/1296/411 1149/1293/411 1197/1292/411 +f 1143/1298/411 1142/1295/411 1190/1294/411 +f 1151/1300/411 1150/1296/411 1198/1297/411 +f 1143/1298/411 1191/1299/411 1192/1302/411 +f 1152/1274/411 1151/1300/411 1199/1301/411 +f 1170/1304/410 1171/1560/410 1172/1561/410 +f 1172/1561/410 1173/1562/410 1174/1305/410 +f 1174/1305/410 1175/1563/410 1178/1306/410 +f 1175/1563/410 1176/1564/410 1178/1306/410 +f 1176/1564/410 1177/1565/410 1178/1306/410 +f 1178/1306/410 1179/1566/410 1180/1567/410 +f 1180/1567/410 1181/1568/410 1182/1569/410 +f 1182/1569/410 1183/1570/410 1184/1571/410 +f 1184/1571/410 1185/1572/410 1182/1569/410 +f 1185/1572/410 1170/1304/410 1182/1569/410 +f 1170/1304/410 1172/1561/410 1174/1305/410 +f 1178/1306/410 1180/1567/410 1170/1304/410 +f 1180/1567/410 1182/1569/410 1170/1304/410 +f 1212/1307/411 1214/1573/411 1217/1308/411 +f 1211/1310/410 1216/1322/410 1215/1311/410 +f 1204/1313/411 1206/1574/411 1209/1314/411 +f 1203/1316/410 1208/1319/410 1207/1317/410 +f 1205/1315/412 1209/1314/412 1208/1319/412 +f 1202/1318/413 1207/1317/413 1206/1320/413 +f 1213/1309/413 1217/1308/413 1216/1322/413 +f 1210/1312/412 1215/1311/412 1214/1323/412 +f 1228/1325/411 1230/1575/411 1233/1326/411 +f 1227/1328/410 1232/1340/410 1231/1329/410 +f 1220/1331/411 1222/1576/411 1225/1332/411 +f 1218/1334/410 1219/1337/410 1224/1335/410 +f 1221/1333/414 1225/1332/414 1224/1335/414 +f 1218/1334/415 1223/1336/415 1222/1338/415 +f 1229/1327/415 1233/1326/415 1232/1340/415 +f 1226/1330/414 1231/1329/414 1230/1341/414 +f 1244/1343/411 1246/1577/411 1249/1344/411 +f 1242/1346/410 1243/1358/410 1248/1347/410 +f 1237/1349/411 1236/1578/411 1238/1350/411 +f 1235/1352/410 1240/1355/410 1239/1353/410 +f 1237/1349/416 1241/1351/416 1240/1355/416 +f 1234/1354/417 1239/1353/417 1238/1356/417 +f 1245/1345/417 1249/1344/417 1248/1347/417 +f 1242/1346/416 1247/1348/416 1246/1359/416 +f 1260/1361/411 1262/1579/411 1265/1362/411 +f 1258/1364/410 1259/1376/410 1264/1365/410 +f 1252/1367/411 1254/1580/411 1257/1368/411 +f 1251/1370/410 1256/1373/410 1255/1371/410 +f 1253/1369/418 1257/1368/418 1256/1373/418 +f 1250/1372/419 1255/1371/419 1254/1374/419 +f 1261/1363/419 1265/1362/419 1264/1365/419 +f 1258/1364/418 1263/1366/418 1262/1377/418 +f 1276/1379/411 1278/1581/411 1281/1380/411 +f 1274/1382/410 1275/1394/410 1280/1383/410 +f 1268/1385/411 1270/1582/411 1273/1386/411 +f 1267/1388/410 1272/1391/410 1271/1389/410 +f 1269/1387/420 1273/1386/420 1272/1391/420 +f 1266/1390/421 1271/1389/421 1270/1392/421 +f 1277/1381/421 1281/1380/421 1280/1383/421 +f 1274/1382/420 1279/1384/420 1278/1395/420 +f 1292/1397/411 1294/1583/411 1297/1398/411 +f 1290/1400/410 1291/1412/410 1296/1401/410 +f 1285/1403/411 1284/1584/411 1286/1404/411 +f 1283/1406/410 1288/1409/410 1287/1407/410 +f 1285/1403/422 1289/1405/422 1288/1409/422 +f 1282/1408/423 1287/1407/423 1286/1410/423 +f 1293/1399/423 1297/1398/423 1296/1401/423 +f 1290/1400/422 1295/1402/422 1294/1413/422 +f 2033/1585/411 2034/1586/411 2032/1415/411 +f 2032/1415/411 2031/1587/411 2030/1416/411 +f 2030/1416/411 2029/1588/411 2028/1417/411 +f 2028/1417/411 2027/1589/411 2033/1585/411 +f 2033/1585/411 2032/1415/411 2028/1417/411 +f 2040/1420/410 2042/1590/410 2036/1418/410 +f 2042/1590/410 2041/1591/410 2036/1418/410 +f 2041/1591/410 2035/1592/410 2036/1418/410 +f 2036/1418/410 2037/1593/410 2038/1419/410 +f 2038/1419/410 2039/1594/410 2040/1420/410 +f 1311/1423/410 1313/1595/410 1307/1596/410 +f 1313/1595/410 1312/1597/410 1307/1596/410 +f 1312/1597/410 1306/1598/410 1307/1596/410 +f 1307/1596/410 1308/1599/410 1311/1423/410 +f 1308/1599/410 1309/1421/410 1311/1423/410 +f 1304/1424/411 1305/1600/411 1303/1425/411 +f 1303/1425/411 1302/1601/411 1301/1426/411 +f 1301/1426/411 1300/1602/411 1304/1424/411 +f 1300/1602/411 1299/1603/411 1304/1424/411 +f 1299/1603/411 1298/1604/411 1304/1424/411 +f 1381/1605/411 1380/1606/411 1393/1427/411 +f 1380/1606/411 1379/1607/411 1393/1427/411 +f 1379/1607/411 1394/1608/411 1393/1427/411 +f 1393/1427/411 1392/1609/411 1391/1610/411 +f 1391/1610/411 1390/1611/411 1393/1427/411 +f 1390/1611/411 1389/1428/411 1393/1427/411 +f 1389/1428/411 1388/1612/411 1385/1429/411 +f 1388/1612/411 1387/1613/411 1385/1429/411 +f 1387/1613/411 1386/1614/411 1385/1429/411 +f 1385/1429/411 1384/1615/411 1381/1605/411 +f 1384/1615/411 1383/1616/411 1381/1605/411 +f 1383/1616/411 1382/1617/411 1381/1605/411 +f 1381/1605/411 1393/1427/411 1385/1429/411 +f 1444/1430/415 1446/1435/415 1445/1431/415 +f 1443/1432/410 1448/1618/410 1449/1433/410 +f 1444/1430/412 1449/1619/412 1450/1434/412 +f 1445/1431/413 1447/1620/413 1448/1436/413 +f 1446/1435/411 1450/1621/411 1447/1437/411 +f 1452/1438/415 1454/1443/415 1453/1439/415 +f 1451/1440/410 1456/1622/410 1457/1441/410 +f 1452/1438/412 1457/1623/412 1458/1442/412 +f 1453/1439/413 1455/1624/413 1456/1444/413 +f 1454/1443/411 1458/1625/411 1455/1445/411 +f 1463/1446/414 1466/1452/414 1465/1447/414 +f 1459/1449/410 1464/1448/410 1465/1447/410 +f 1460/1451/412 1465/1447/412 1466/1452/412 +f 1461/1454/413 1463/1446/413 1464/1448/413 +f 1462/1456/411 1466/1452/411 1463/1446/411 +f 1476/1458/415 1478/1477/415 1477/1459/415 +f 1471/1461/414 1474/1467/414 1473/1462/414 +f 1467/1464/410 1472/1463/410 1473/1462/410 +f 1468/1466/412 1473/1462/412 1474/1467/412 +f 1469/1469/413 1471/1461/413 1472/1463/413 +f 1470/1471/411 1474/1467/411 1471/1461/411 +f 1485/1486/411 1490/1626/411 1486/1475/411 +f 1490/1626/411 1492/1473/411 1486/1475/411 +f 1483/1476/412 1484/1627/412 1478/1477/412 +f 1479/1479/411 1477/1459/411 1478/1477/411 +f 1478/1477/411 1484/1628/411 1481/1478/411 +f 1477/1459/413 1479/1484/413 1480/1480/413 +f 1481/1481/414 1484/1629/414 1483/1482/414 +f 1479/1484/424 1481/1481/424 1482/1483/424 +f 1486/1475/414 1488/1488/414 1487/1485/414 +f 1493/1487/412 1494/1630/412 1488/1488/412 +f 1489/1490/410 1487/1485/410 1488/1488/410 +f 1488/1488/410 1494/1631/410 1491/1489/410 +f 1487/1485/413 1489/1495/413 1490/1491/413 +f 1491/1492/415 1494/1632/415 1493/1493/415 +f 1489/1495/425 1491/1492/425 1492/1494/425 +f 1475/1460/410 1480/1633/410 1476/1458/410 +f 1480/1633/410 1482/1496/410 1476/1458/410 +f 1550/1634/411 1549/1635/411 1551/1498/411 +f 1551/1498/411 1552/1636/411 1553/1499/411 +f 1553/1499/411 1554/1637/411 1555/1500/411 +f 1555/1500/411 1556/1638/411 1550/1634/411 +f 1550/1634/411 1551/1498/411 1555/1500/411 +f 1543/1501/410 1541/1639/410 1542/1502/410 +f 1542/1502/410 1548/1640/410 1547/1503/410 +f 1547/1503/410 1546/1641/410 1543/1501/410 +f 1546/1641/410 1545/1642/410 1543/1501/410 +f 1545/1642/410 1544/1643/410 1543/1501/410 +f 1679/1504/412 1680/1644/412 1678/1505/412 +f 1683/1507/413 1684/1513/413 1681/1508/413 +f 1680/1510/415 1684/1513/415 1683/1507/415 +f 1677/1506/414 1682/1509/414 1681/1508/414 +f 1679/1512/411 1681/1508/411 1684/1513/411 +f 1678/1515/410 1683/1507/410 1682/1509/410 +f 1688/1517/415 1687/1521/415 1685/1518/415 +f 1691/1520/410 1689/1645/410 1685/1518/410 +f 1708/1522/414 1716/1544/414 1715/1523/414 +f 1690/1525/414 1689/1645/414 1691/1520/414 +f 1696/1527/415 1695/1531/415 1693/1528/415 +f 1699/1530/410 1697/1646/410 1693/1528/410 +f 1709/1532/415 1710/1647/415 1702/1533/415 +f 1698/1535/414 1697/1646/414 1699/1530/414 +f 1713/1537/415 1714/1648/415 1706/1538/415 +f 1704/1540/414 1712/1543/414 1711/1541/414 +f 1712/1543/411 1710/1647/411 1709/1532/411 +f 1716/1544/411 1714/1648/411 1713/1537/411 +f 2052/1545/411 2051/1649/411 2053/1546/411 +f 2053/1546/411 2054/1650/411 2055/1547/411 +f 2055/1547/411 2056/1651/411 2052/1545/411 +f 2056/1651/411 2057/1652/411 2052/1545/411 +f 2057/1652/411 2058/1653/411 2052/1545/411 +f 2045/1548/410 2043/1654/410 2044/1549/410 +f 2044/1549/410 2050/1655/410 2049/1550/410 +f 2049/1550/410 2048/1656/410 2045/1548/410 +f 2048/1656/410 2047/1657/410 2045/1548/410 +f 2047/1657/410 2046/1658/410 2045/1548/410 +s 1 +f 1017/1162/426 1035/1659/427 1016/1164/428 +f 1016/1164/428 1036/1660/429 1015/1166/430 +f 1015/1166/430 1037/1661/431 1014/1168/432 +f 1014/1168/432 1038/1662/433 1013/1170/434 +f 1013/1170/434 1039/1663/435 1012/1172/436 +f 1012/1172/436 1040/1664/437 1011/1174/438 +f 1011/1174/438 1041/1665/439 1010/1175/440 +f 1010/1175/440 1026/1666/441 1025/1144/442 +f 1024/1146/443 1026/1666/441 1027/1667/444 +f 1023/1148/445 1027/1667/444 1028/1668/446 +f 1022/1150/447 1028/1668/446 1029/1669/448 +f 1021/1152/449 1029/1669/448 1030/1670/450 +f 1020/1155/451 1030/1670/450 1031/1671/452 +f 1019/1156/453 1031/1671/452 1032/1672/454 +f 1018/1159/455 1032/1672/454 1033/1673/456 +f 1018/1161/455 1034/1674/457 1017/1162/426 +f 1975/1675/458 1992/1676/459 1976/1677/459 +f 1974/1678/460 1991/1679/458 1975/1675/458 +f 1989/1680/461 1974/1678/460 1973/1681/461 +f 1988/1682/462 1973/1681/461 1972/1683/462 +f 1971/1684/463 1988/1682/462 1972/1683/462 +f 1970/1685/464 1987/1686/463 1971/1687/463 +f 1985/1688/465 1970/1685/464 1969/1689/465 +f 1968/1690/466 1985/1688/465 1969/1689/465 +f 1967/1691/467 1984/1692/468 1968/1690/466 +f 1982/1693/469 1967/1691/467 1966/1694/469 +f 1981/1695/470 1966/1694/469 1965/1696/470 +f 1980/1697/471 1965/1696/470 1964/1698/471 +f 1979/1699/472 1964/1698/471 1963/1700/472 +f 1994/1701/473 1963/1700/472 1978/1702/473 +f 1993/1703/474 1978/1702/473 1977/1704/474 +f 1992/1676/459 1977/1704/474 1976/1677/459 +f 1166/1705/475 2513/1706/414 1165/1707/414 +f 1167/1708/424 2512/1709/475 1166/1705/475 +f 1154/1710/476 2509/1711/413 1169/1712/413 +f 1168/1713/477 2511/1714/424 1167/1708/424 +f 1155/1715/425 2524/1716/476 1154/1710/476 +f 1169/1712/413 2510/1717/477 1168/1713/477 +f 1156/1718/478 2523/1719/425 1155/1715/425 +f 1157/1720/415 2522/1721/478 1156/1718/478 +f 1158/1722/479 2521/1723/415 1157/1720/415 +f 1159/1724/480 2520/1725/479 1158/1722/479 +f 1160/1726/481 2519/1727/480 1159/1724/480 +f 1161/1728/412 2518/1729/481 1160/1726/481 +f 1162/1730/482 2517/1731/412 1161/1732/412 +f 1163/1733/483 2516/1734/482 1162/1730/482 +f 1164/1735/484 2515/1736/483 1163/1733/483 +f 1165/1707/414 2514/1737/484 1164/1735/484 +f 2491/1738/425 2506/1739/478 2490/1740/478 +f 2483/1741/483 2498/1742/484 2482/1743/484 +f 2490/1740/478 2505/1744/415 2489/1745/415 +f 2482/1743/484 2497/1746/414 2481/1747/414 +f 2489/1745/415 2504/1748/479 2488/1749/479 +f 2481/1747/414 2496/1750/475 2480/1751/475 +f 2488/1749/479 2503/1752/480 2487/1753/480 +f 2480/1751/475 2495/1754/424 2479/1755/424 +f 2487/1753/480 2502/1756/481 2486/1757/481 +f 2479/1755/424 2494/1758/477 2478/1759/477 +f 2486/1757/481 2501/1760/412 2485/1761/412 +f 2477/1762/413 2508/1763/476 2492/1764/476 +f 2478/1759/477 2493/1765/413 2477/1762/413 +f 2485/1766/412 2500/1767/482 2484/1768/482 +f 2492/1764/476 2507/1769/425 2491/1738/425 +f 2484/1768/482 2499/1770/483 2483/1741/483 +f 1339/1771/485 1324/1772/486 1323/1773/487 +f 1316/1774/488 1333/1775/489 1317/1776/490 +f 1324/1772/486 1341/1777/491 1325/1778/492 +f 1333/1779/489 1318/1780/493 1317/1776/490 +f 1325/1778/492 1342/1781/494 1326/1782/495 +f 1334/1783/496 1319/1784/497 1318/1780/493 +f 1342/1785/494 1327/1786/498 1326/1782/495 +f 1319/1784/497 1336/1787/499 1320/1788/500 +f 1343/1789/501 1328/1790/502 1327/1786/498 +f 1320/1788/500 1337/1791/503 1321/1792/504 +f 1328/1790/502 1345/1793/505 1329/1794/506 +f 1337/1795/503 1322/1796/507 1321/1792/504 +f 1314/1797/508 1331/1798/509 1315/1799/510 +f 1345/1800/505 1314/1797/508 1329/1794/506 +f 1338/1801/511 1323/1773/487 1322/1802/507 +f 1331/1803/509 1316/1774/488 1315/1799/510 +f 1333/1779/489 1346/1804/411 1334/1805/496 +f 1332/1806/512 1346/1807/411 1333/1775/489 +f 1331/1803/509 1346/1808/411 1332/1809/512 +f 1330/1810/513 1346/1811/411 1331/1798/509 +f 1345/1800/505 1346/1812/411 1330/1813/513 +f 1344/1814/514 1346/1815/411 1345/1793/505 +f 1343/1789/501 1346/1816/411 1344/1817/514 +f 1334/1783/496 1346/1818/411 1335/1819/515 +f 1335/1820/515 1346/1821/411 1336/1787/499 +f 1336/1822/499 1346/1823/411 1337/1791/503 +f 1337/1795/503 1346/1824/411 1338/1825/511 +f 1338/1801/511 1346/1826/411 1339/1827/485 +f 1339/1771/485 1346/1828/411 1340/1829/516 +f 1340/1830/516 1346/1831/411 1341/1777/491 +f 1341/1832/491 1346/1833/411 1342/1781/494 +f 1342/1785/494 1346/1834/411 1343/1835/501 +f 1359/1836/415 1374/1837/479 1358/1838/479 +f 1352/1839/484 1367/1840/414 1351/1841/414 +f 1360/1842/478 1375/1843/415 1359/1836/415 +f 1353/1844/483 1368/1845/484 1352/1839/484 +f 1361/1846/425 1376/1847/478 1360/1842/478 +f 1354/1848/482 1369/1849/483 1353/1844/483 +f 1362/1850/476 1377/1851/425 1361/1846/425 +f 1355/1852/412 1370/1853/482 1354/1848/482 +f 1348/1854/477 1363/1855/413 1347/1856/413 +f 1347/1856/413 1378/1857/476 1362/1850/476 +f 1356/1858/481 1371/1859/412 1355/1860/412 +f 1349/1861/424 1364/1862/477 1348/1854/477 +f 1357/1863/480 1372/1864/481 1356/1858/481 +f 1350/1865/475 1365/1866/424 1349/1861/424 +f 1358/1838/479 1373/1867/480 1357/1863/480 +f 1351/1841/414 1366/1868/475 1350/1865/475 +f 1320/1788/500 1400/1869/484 1319/1784/497 +f 1321/1792/504 1401/1870/483 1320/1788/500 +f 1322/1796/507 1402/1871/482 1321/1792/504 +f 1323/1773/487 1403/1872/412 1322/1802/507 +f 1324/1772/486 1404/1873/481 1323/1773/487 +f 1325/1778/492 1405/1874/480 1324/1772/486 +f 1326/1782/495 1406/1875/479 1325/1778/492 +f 1327/1786/498 1407/1876/415 1326/1782/495 +f 1328/1790/502 1408/1877/478 1327/1786/498 +f 1315/1799/510 1395/1878/413 1314/1797/508 +f 1329/1794/506 1409/1879/425 1328/1790/502 +f 1316/1774/488 1396/1880/477 1315/1799/510 +f 1314/1797/508 1410/1881/476 1329/1794/506 +f 1317/1776/490 1397/1882/424 1316/1774/488 +f 1318/1780/493 1398/1883/475 1317/1776/490 +f 1319/1784/497 1399/1884/414 1318/1780/493 +f 1428/1885/477 1413/1886/424 1412/1887/477 +f 1436/1888/481 1421/1889/480 1420/1890/481 +f 1429/1891/424 1414/1892/475 1413/1886/424 +f 1437/1893/480 1422/1894/479 1421/1889/480 +f 1430/1895/475 1415/1896/414 1414/1892/475 +f 1438/1897/479 1423/1898/415 1422/1894/479 +f 1431/1899/414 1416/1900/484 1415/1896/414 +f 1439/1901/415 1424/1902/478 1423/1898/415 +f 1432/1903/484 1417/1904/483 1416/1900/484 +f 1440/1905/478 1425/1906/425 1424/1902/478 +f 1433/1907/483 1418/1908/482 1417/1904/483 +f 1441/1909/425 1426/1910/476 1425/1906/425 +f 1434/1911/482 1419/1912/412 1418/1908/482 +f 1427/1913/413 1412/1887/477 1411/1914/413 +f 1442/1915/476 1411/1914/413 1426/1910/476 +f 1435/1916/412 1420/1890/481 1419/1917/412 +f 1498/1918/517 1527/1919/518 1528/1920/519 +f 1510/1921/520 1504/1922/521 1503/1923/522 +f 1511/1924/523 1505/1925/524 1504/1922/521 +f 1512/1926/525 1506/1927/526 1505/1925/524 +f 1507/1928/527 1516/1929/528 1508/1930/529 +f 1508/1930/529 1517/1931/530 1509/1932/531 +f 1517/1931/530 1503/1923/522 1509/1932/531 +f 1510/1921/520 1519/1933/532 1511/1924/523 +f 1519/1933/532 1512/1926/525 1511/1924/523 +f 1512/1926/525 1521/1934/533 1513/1935/534 +f 1522/1936/535 1516/1929/528 1515/1937/536 +f 1516/1929/528 1524/1938/537 1517/1931/530 +f 1517/1931/530 1518/1939/538 1510/1921/520 +f 1515/1937/536 1514/1940/539 1522/1936/535 +f 1515/1937/536 1507/1928/527 1514/1940/539 +f 1514/1941/539 1513/1935/534 1521/1934/533 +f 1513/1935/534 1514/1941/539 1506/1927/526 +f 1521/1934/533 1497/1942/540 1498/1918/517 +f 1520/1943/541 1496/1944/542 1497/1942/540 +f 1519/1933/532 1495/1945/543 1496/1944/542 +f 1495/1945/543 1524/1938/537 1502/1946/544 +f 1524/1938/537 1501/1947/545 1502/1946/544 +f 1523/1948/546 1500/1949/547 1501/1947/545 +f 1500/1949/547 1514/1950/539 1499/1951/548 +f 1498/1918/517 1514/1952/539 1521/1934/533 +f 1528/1920/519 1537/1953/549 1529/1954/550 +f 1496/1944/542 1526/1955/551 1525/1956/552 +f 1502/1946/544 1526/1955/551 1495/1945/543 +f 1500/1949/547 1531/1957/553 1501/1947/545 +f 1499/1958/548 1528/1920/519 1529/1954/550 +f 1497/1942/540 1525/1956/552 1527/1919/518 +f 1501/1947/545 1532/1959/554 1502/1946/544 +f 1499/1951/548 1530/1960/555 1500/1949/547 +f 1525/1956/552 1535/1961/556 1527/1919/518 +f 1531/1957/553 1540/1962/557 1532/1959/554 +f 1529/1963/550 1538/1964/558 1530/1960/555 +f 1527/1919/518 1536/1965/559 1528/1920/519 +f 1526/1955/551 1533/1966/560 1525/1956/552 +f 1532/1959/554 1534/1967/561 1526/1955/551 +f 1530/1960/555 1539/1968/562 1531/1957/553 +f 1565/1969/425 1558/1970/563 1557/1971/564 +f 1566/1972/565 1559/1973/566 1558/1970/563 +f 1567/1974/567 1560/1975/568 1559/1973/566 +f 1562/1976/569 1570/1977/570 1563/1978/571 +f 1563/1978/571 1571/1979/572 1564/1980/573 +f 1564/1980/573 1565/1969/425 1557/1971/564 +f 1565/1969/425 1573/1981/574 1566/1972/565 +f 1566/1972/565 1574/1982/575 1567/1974/567 +f 1574/1982/575 1568/1983/576 1567/1974/567 +f 1569/1984/577 1577/1985/578 1570/1977/570 +f 1577/1985/578 1571/1979/572 1570/1977/570 +f 1578/1986/579 1565/1969/425 1571/1979/572 +f 1568/1983/576 1561/1987/483 1560/1975/568 +f 1575/1988/580 1561/1987/483 1568/1983/576 +f 1562/1976/569 1561/1989/483 1569/1984/577 +f 1576/1990/581 1569/1984/577 1561/1989/483 +f 1560/1975/568 1581/1991/410 1559/1973/566 +f 1563/1978/571 1584/1992/582 1562/1976/569 +f 1557/1971/564 1586/1993/583 1564/1980/573 +f 1561/1994/483 1582/1995/448 1560/1975/568 +f 1564/1980/573 1585/1996/411 1563/1978/571 +f 1559/1973/566 1580/1997/431 1558/1970/563 +f 1558/1970/563 1579/1998/415 1557/1971/564 +f 1562/1976/569 1583/1999/414 1561/2000/483 +f 1574/1982/575 1591/2001/439 1575/1988/580 +f 1577/1985/578 1594/2002/584 1578/1986/579 +f 1572/2003/585 1589/2004/456 1573/1981/574 +f 1561/2005/483 1592/2006/586 1576/1990/581 +f 1575/1988/580 1587/2007/412 1561/2008/483 +f 1576/1990/581 1593/2009/411 1577/1985/578 +f 1573/1981/574 1590/2010/410 1574/1982/575 +f 1578/1986/579 1588/2011/413 1572/2003/585 +f 1603/2012/425 1596/2013/563 1595/2014/564 +f 1604/2015/565 1597/2016/566 1596/2013/563 +f 1605/2017/567 1598/2018/568 1597/2016/566 +f 1600/2019/569 1608/2020/570 1601/2021/571 +f 1601/2021/571 1609/2022/572 1602/2023/573 +f 1602/2023/573 1603/2012/425 1595/2014/564 +f 1610/2024/585 1604/2015/565 1603/2012/425 +f 1604/2015/565 1612/2025/575 1605/2017/567 +f 1605/2017/567 1613/2026/580 1606/2027/576 +f 1607/2028/577 1615/2029/578 1608/2020/570 +f 1615/2029/578 1609/2022/572 1608/2020/570 +f 1616/2030/579 1603/2012/425 1609/2022/572 +f 1606/2027/576 1599/2031/483 1598/2018/568 +f 1613/2026/580 1599/2031/483 1606/2027/576 +f 1600/2019/569 1599/2032/483 1607/2028/577 +f 1614/2033/581 1607/2028/577 1599/2032/483 +f 1612/2025/575 1621/2034/439 1613/2026/580 +f 1615/2029/578 1624/2035/584 1616/2030/579 +f 1610/2024/585 1619/2036/456 1611/2037/574 +f 1599/2038/483 1622/2039/586 1614/2033/581 +f 1613/2026/580 1617/2040/412 1599/2041/483 +f 1614/2033/581 1623/2042/411 1615/2029/578 +f 1611/2037/574 1620/2043/410 1612/2025/575 +f 1616/2030/579 1618/2044/413 1610/2024/585 +f 1633/2045/439 1626/2046/587 1625/2047/588 +f 1626/2046/587 1635/2048/589 1627/2049/590 +f 1627/2050/590 1636/2051/591 1628/2052/592 +f 1637/2053/593 1631/2054/594 1630/2055/595 +f 1638/2056/596 1632/2057/597 1631/2054/594 +f 1632/2057/597 1633/2045/439 1625/2047/588 +f 1633/2045/439 1641/2058/598 1634/2059/599 +f 1641/2058/598 1635/2048/589 1634/2059/599 +f 1642/2060/600 1636/2051/591 1635/2061/589 +f 1644/2062/601 1638/2056/596 1637/2053/593 +f 1645/2063/602 1639/2064/603 1638/2056/596 +f 1639/2064/603 1640/2065/604 1633/2045/439 +f 1636/2051/591 1629/2066/584 1628/2052/592 +f 1643/2067/605 1629/2066/584 1636/2051/591 +f 1630/2055/595 1629/2066/584 1637/2053/593 +f 1644/2062/601 1637/2053/593 1629/2066/584 +f 1641/2058/598 1597/2016/566 1598/2018/568 +f 1642/2068/600 1598/2018/568 1599/2069/483 +f 1643/2067/605 1599/2070/483 1600/2019/569 +f 1629/2071/584 1600/2019/569 1601/2021/571 +f 1596/2013/563 1640/2065/604 1646/2072/606 +f 1646/2072/606 1595/2014/564 1596/2013/563 +f 1645/2063/602 1602/2023/573 1595/2014/564 +f 1602/2023/573 1629/2071/584 1601/2021/571 +f 1647/2073/607 1656/2074/608 1648/2075/609 +f 1656/2074/608 1649/2076/610 1648/2075/609 +f 1649/2076/610 1658/2077/611 1650/2078/612 +f 1659/2079/613 1653/2080/614 1652/2081/615 +f 1660/2082/616 1654/2083/617 1653/2084/614 +f 1661/2085/618 1647/2073/607 1654/2083/617 +f 1655/2086/584 1663/2087/619 1656/2074/608 +f 1663/2087/619 1657/2088/620 1656/2074/608 +f 1664/2089/621 1658/2077/611 1657/2088/620 +f 1659/2079/613 1667/2090/622 1660/2091/616 +f 1660/2082/616 1668/2092/623 1661/2085/618 +f 1661/2085/618 1662/2093/624 1655/2086/584 +f 1658/2077/611 1651/2094/439 1650/2078/612 +f 1665/2095/625 1651/2094/439 1658/2077/611 +f 1652/2081/615 1651/2094/439 1659/2079/613 +f 1666/2096/626 1659/2079/613 1651/2094/439 +f 1650/2078/612 1671/2097/415 1649/2076/610 +f 1653/2080/614 1674/2098/448 1652/2081/615 +f 1647/2073/607 1676/2099/582 1654/2083/617 +f 1651/2100/439 1672/2101/431 1650/2078/612 +f 1654/2083/617 1675/2102/414 1653/2084/614 +f 1649/2076/610 1670/2103/583 1648/2075/609 +f 1648/2075/609 1669/2104/411 1647/2073/607 +f 1652/2081/615 1673/2105/410 1651/2100/439 +f 1626/2046/587 1651/2106/439 1625/2047/588 +f 1667/2090/622 1626/2046/587 1627/2049/590 +f 1668/2092/623 1627/2050/590 1628/2052/592 +f 1629/2107/584 1668/2092/623 1628/2052/592 +f 1663/2087/619 1629/2107/584 1630/2055/595 +f 1664/2089/621 1630/2055/595 1631/2054/594 +f 1665/2095/625 1631/2054/594 1632/2057/597 +f 1651/2106/439 1632/2057/597 1625/2047/588 +f 1718/2108/627 1725/2109/424 1717/2110/628 +f 1719/2111/629 1726/2112/630 1718/2108/627 +f 1720/2113/631 1727/2114/632 1719/2111/629 +f 1722/2115/633 1730/2116/634 1729/2117/635 +f 1723/2118/636 1731/2119/637 1730/2116/634 +f 1724/2120/638 1725/2109/424 1731/2119/637 +f 1725/2109/424 1733/2121/639 1732/2122/640 +f 1726/2112/630 1734/2123/641 1733/2121/639 +f 1727/2114/632 1735/2124/642 1734/2123/641 +f 1729/2117/635 1737/2125/643 1736/2126/644 +f 1731/2119/637 1737/2125/643 1730/2116/634 +f 1725/2109/424 1738/2127/645 1731/2119/637 +f 1728/2128/646 1720/2113/631 1721/2129/480 +f 1735/2124/642 1728/2128/646 1721/2129/480 +f 1722/2115/633 1729/2117/635 1721/2130/480 +f 1736/2126/644 1721/2130/480 1729/2117/635 +f 1741/2131/410 1720/2113/631 1719/2111/629 +f 1744/2132/583 1723/2118/636 1722/2115/633 +f 1746/2133/582 1717/2110/628 1724/2120/638 +f 1742/2134/431 1721/2135/480 1720/2113/631 +f 1745/2136/411 1724/2120/638 1723/2118/636 +f 1740/2137/448 1719/2111/629 1718/2108/627 +f 1739/2138/414 1718/2108/627 1717/2110/628 +f 1743/2139/415 1722/2115/633 1721/2140/480 +f 1751/2141/439 1734/2123/641 1735/2124/642 +f 1754/2142/584 1737/2125/643 1738/2127/645 +f 1749/2143/456 1732/2122/640 1733/2121/639 +f 1752/2144/586 1721/2145/480 1736/2126/644 +f 1747/2146/412 1735/2124/642 1721/2147/480 +f 1753/2148/411 1736/2126/644 1737/2125/643 +f 1750/2149/410 1733/2121/639 1734/2123/641 +f 1748/2150/413 1738/2127/645 1732/2122/640 +f 1756/2151/627 1763/2152/424 1755/2153/628 +f 1757/2154/629 1764/2155/630 1756/2151/627 +f 1758/2156/631 1765/2157/632 1757/2154/629 +f 1760/2158/633 1768/2159/634 1767/2160/635 +f 1761/2161/636 1769/2162/637 1768/2159/634 +f 1762/2163/638 1763/2152/424 1769/2162/637 +f 1764/2155/630 1770/2164/640 1763/2152/424 +f 1764/2155/630 1772/2165/641 1771/2166/639 +f 1765/2157/632 1773/2167/642 1772/2165/641 +f 1767/2160/635 1775/2168/643 1774/2169/644 +f 1769/2162/637 1775/2168/643 1768/2159/634 +f 1763/2152/424 1776/2170/645 1769/2162/637 +f 1766/2171/646 1758/2156/631 1759/2172/480 +f 1773/2167/642 1766/2171/646 1759/2172/480 +f 1760/2158/633 1767/2160/635 1759/2173/480 +f 1774/2169/644 1759/2173/480 1767/2160/635 +f 1781/2174/439 1772/2165/641 1773/2167/642 +f 1784/2175/584 1775/2168/643 1776/2170/645 +f 1779/2176/456 1770/2164/640 1771/2166/639 +f 1782/2177/586 1759/2178/480 1774/2169/644 +f 1777/2179/412 1773/2167/642 1759/2180/480 +f 1783/2181/411 1774/2169/644 1775/2168/643 +f 1780/2182/410 1771/2166/639 1772/2165/641 +f 1778/2183/413 1776/2170/645 1770/2164/640 +f 1786/2184/597 1793/2185/439 1785/2186/588 +f 1786/2184/597 1795/2187/647 1794/2188/603 +f 1791/2189/590 1796/2190/591 1790/2191/592 +f 1792/2192/587 1797/2193/589 1791/2189/590 +f 1792/2192/587 1793/2185/439 1798/2194/599 +f 1793/2185/439 1800/2195/606 1799/2196/604 +f 1795/2187/647 1800/2195/606 1794/2188/603 +f 1797/2193/589 1803/2197/605 1796/2190/591 +f 1798/2194/599 1804/2198/600 1797/2193/589 +f 1793/2185/439 1805/2199/598 1798/2194/599 +f 1790/2191/592 1796/2190/591 1789/2200/648 +f 1803/2197/605 1789/2200/648 1796/2190/591 +f 1757/2154/629 1800/2195/606 1758/2156/631 +f 1758/2156/631 1801/2201/649 1759/2202/480 +f 1759/2203/480 1802/2204/583 1760/2158/633 +f 1760/2158/633 1789/2205/648 1761/2161/636 +f 1756/2151/627 1799/2196/604 1757/2154/629 +f 1755/2153/628 1805/2199/598 1756/2151/627 +f 1762/2163/638 1804/2198/600 1755/2153/628 +f 1789/2205/648 1762/2163/638 1761/2161/636 +f 1807/2206/617 1814/2207/584 1806/2208/607 +f 1808/2209/614 1815/2210/618 1807/2206/617 +f 1808/2209/614 1817/2211/613 1816/2212/616 +f 1812/2213/650 1819/2214/608 1818/2215/651 +f 1806/2208/607 1819/2214/608 1813/2216/609 +f 1815/2210/618 1820/2217/624 1814/2207/584 +f 1816/2212/616 1821/2218/623 1815/2210/618 +f 1817/2211/613 1822/2219/622 1816/2212/616 +f 1818/2215/651 1826/2220/619 1825/2221/652 +f 1819/2214/608 1820/2217/624 1826/2220/619 +f 1817/2211/613 1809/2222/615 1810/2223/653 +f 1823/2224/626 1817/2211/613 1810/2223/653 +f 1829/2225/414 1809/2222/615 1808/2209/614 +f 1832/2226/431 1812/2227/650 1811/2228/431 +f 1834/2229/583 1806/2208/607 1813/2216/609 +f 1830/2230/448 1810/2231/653 1809/2222/615 +f 1833/2232/415 1813/2216/609 1812/2213/650 +f 1828/2233/582 1808/2209/614 1807/2206/617 +f 1827/2234/411 1807/2206/617 1806/2208/607 +f 1831/2235/410 1811/2228/431 1810/2231/653 +f 1810/2236/653 1786/2184/597 1785/2186/588 +f 1786/2184/597 1825/2237/652 1787/2238/654 +f 1787/2239/654 1826/2220/619 1788/2240/425 +f 1826/2220/619 1789/2241/648 1788/2240/425 +f 1789/2241/648 1821/2218/623 1790/2191/592 +f 1790/2191/592 1822/2219/622 1791/2189/590 +f 1791/2189/590 1823/2224/626 1792/2192/587 +f 1792/2192/587 1810/2236/653 1785/2186/588 +f 1842/2242/413 1858/2243/476 1843/2244/476 +f 1841/2245/477 1859/2246/413 1842/2247/413 +f 1840/2248/424 1860/2249/477 1841/2245/477 +f 1839/2250/475 1861/2251/424 1840/2248/424 +f 1838/2252/414 1862/2253/475 1839/2250/475 +f 1837/2254/484 1863/2255/414 1838/2252/414 +f 1836/2256/483 1864/2257/484 1837/2254/484 +f 1835/2258/482 1865/2259/483 1836/2256/483 +f 1850/2260/412 1866/2261/482 1835/2258/482 +f 1850/2260/412 1852/2262/481 1851/2263/412 +f 1848/2264/480 1852/2262/481 1849/2265/481 +f 1848/2264/480 1854/2266/479 1853/2267/480 +f 1846/2268/415 1854/2266/479 1847/2269/479 +f 1846/2268/415 1856/2270/478 1855/2271/415 +f 1844/2272/425 1856/2270/478 1845/2273/478 +f 1844/2272/425 1858/2243/476 1857/2274/425 +f 1870/2275/475 1903/2276/414 1871/2277/414 +f 1878/2278/479 1911/2279/415 1879/2280/415 +f 1871/2277/414 1904/2281/484 1872/2282/484 +f 1879/2280/415 1912/2283/478 1880/2284/478 +f 1872/2282/484 1905/2285/483 1873/2286/483 +f 1880/2284/478 1913/2287/425 1881/2288/425 +f 1873/2286/483 1906/2289/482 1874/2290/482 +f 1881/2288/425 1914/2291/476 1882/2292/476 +f 1874/2290/482 1907/2293/412 1875/2294/412 +f 1867/2295/413 1900/2296/477 1868/2297/477 +f 1882/2292/476 1899/2298/413 1867/2295/413 +f 1875/2299/412 1908/2300/481 1876/2301/481 +f 1868/2297/477 1901/2302/424 1869/2303/424 +f 1876/2301/481 1909/2304/480 1877/2305/480 +f 1869/2303/424 1902/2306/475 1870/2275/475 +f 1877/2305/480 1910/2307/479 1878/2278/479 +f 1896/2308/478 1927/2309/415 1895/2310/415 +f 1889/2311/483 1920/2312/484 1888/2313/484 +f 1897/2314/425 1928/2315/478 1896/2308/478 +f 1890/2316/482 1921/2317/483 1889/2311/483 +f 1898/2318/476 1929/2319/425 1897/2314/425 +f 1891/2320/412 1922/2321/482 1890/2316/482 +f 1884/2322/477 1915/2323/413 1883/2324/413 +f 1883/2324/413 1930/2325/476 1898/2318/476 +f 1892/2326/481 1923/2327/412 1891/2328/412 +f 1885/2329/424 1916/2330/477 1884/2322/477 +f 1893/2331/480 1924/2332/481 1892/2326/481 +f 1886/2333/475 1917/2334/424 1885/2329/424 +f 1894/2335/479 1925/2336/480 1893/2331/480 +f 1887/2337/414 1918/2338/475 1886/2333/475 +f 1895/2310/415 1926/2339/479 1894/2335/479 +f 1888/2313/484 1919/2340/414 1887/2337/414 +f 1960/2341/478 1945/2342/425 1944/2343/478 +f 1961/2344/425 1946/2345/476 1945/2342/425 +f 1962/2346/476 1931/2347/413 1946/2345/476 +f 1947/2348/413 1932/2349/477 1931/2347/413 +f 1948/2350/477 1933/2351/424 1932/2349/477 +f 1949/2352/424 1934/2353/475 1933/2351/424 +f 1950/2354/475 1935/2355/414 1934/2353/475 +f 1951/2356/414 1936/2357/484 1935/2355/414 +f 1952/2358/484 1937/2359/483 1936/2357/484 +f 1953/2360/483 1938/2361/482 1937/2359/483 +f 1954/2362/482 1939/2363/412 1938/2361/482 +f 1955/2364/412 1940/2365/481 1939/2366/412 +f 1956/2367/481 1941/2368/480 1940/2365/481 +f 1957/2369/480 1942/2370/479 1941/2368/480 +f 1958/2371/479 1943/2372/415 1942/2370/479 +f 1959/2373/415 1944/2343/478 1943/2372/415 +f 2002/2374/476 2019/2375/413 2003/2376/413 +f 2003/2377/413 2020/2378/477 2004/2379/477 +f 2004/2379/477 2021/2380/424 2005/2381/424 +f 2005/2381/424 2022/2382/475 2006/2383/475 +f 2006/2383/475 2023/2384/414 2007/2385/414 +f 2007/2385/414 2024/2386/484 2008/2387/484 +f 2008/2387/484 2025/2388/483 2009/2389/483 +f 1995/2390/412 2012/2391/481 1996/2392/481 +f 2009/2389/483 2026/2393/482 2010/2394/482 +f 1996/2392/481 2013/2395/480 1997/2396/480 +f 2010/2394/482 2011/2397/412 1995/2390/412 +f 1997/2396/480 2014/2398/479 1998/2399/479 +f 1998/2399/479 2015/2400/415 1999/2401/415 +f 1999/2401/415 2016/2402/478 2000/2403/478 +f 2000/2403/478 2017/2404/425 2001/2405/425 +f 2001/2405/425 2018/2406/476 2002/2374/476 +f 2062/2407/655 2091/2408/656 2092/2409/657 +f 2067/2410/658 2075/2411/659 2068/2412/660 +f 2075/2411/659 2069/2413/661 2068/2412/660 +f 2076/2414/662 2070/2415/663 2069/2413/661 +f 2071/2416/664 2080/2417/665 2072/2418/666 +f 2080/2417/665 2073/2419/667 2072/2418/666 +f 2081/2420/668 2067/2410/658 2073/2419/667 +f 2074/2421/669 2083/2422/670 2075/2411/659 +f 2083/2422/670 2076/2414/662 2075/2411/659 +f 2076/2414/662 2085/2423/671 2077/2424/672 +f 2086/2425/673 2080/2417/665 2079/2426/674 +f 2080/2417/665 2088/2427/675 2081/2420/668 +f 2081/2420/668 2082/2428/676 2074/2421/669 +f 2079/2426/674 2078/2429/677 2086/2425/673 +f 2079/2426/674 2071/2416/664 2078/2429/677 +f 2078/2430/677 2077/2424/672 2085/2423/671 +f 2077/2424/672 2078/2430/677 2070/2415/663 +f 2085/2423/671 2061/2431/678 2062/2407/655 +f 2084/2432/679 2060/2433/680 2061/2431/678 +f 2083/2422/670 2059/2434/681 2060/2433/680 +f 2066/2435/682 2082/2428/676 2088/2427/675 +f 2088/2427/675 2065/2436/683 2066/2435/682 +f 2087/2437/684 2064/2438/685 2065/2436/683 +f 2064/2438/685 2078/2439/677 2063/2440/686 +f 2062/2407/655 2078/2441/677 2085/2423/671 +f 2092/2409/657 2101/2442/561 2093/2443/687 +f 2060/2433/680 2090/2444/688 2089/2445/689 +f 2066/2435/682 2090/2444/688 2059/2434/681 +f 2064/2438/685 2095/2446/690 2065/2436/683 +f 2063/2447/686 2092/2409/657 2093/2443/687 +f 2061/2431/678 2089/2445/689 2091/2408/656 +f 2065/2436/683 2096/2448/691 2066/2435/682 +f 2063/2440/686 2094/2449/692 2064/2438/685 +f 2089/2445/689 2099/2450/562 2091/2408/656 +f 2095/2446/690 2104/2451/559 2096/2448/691 +f 2093/2452/687 2102/2453/560 2094/2449/692 +f 2091/2408/656 2100/2454/557 2092/2409/657 +f 2090/2444/688 2097/2455/558 2089/2445/689 +f 2096/2448/691 2098/2456/549 2090/2444/688 +f 2094/2449/692 2103/2457/556 2095/2446/690 +f 2108/2458/693 2137/2459/694 2138/2460/695 +f 2113/2461/696 2121/2462/697 2114/2463/698 +f 2121/2462/697 2115/2464/699 2114/2463/698 +f 2122/2465/700 2116/2466/701 2115/2464/699 +f 2117/2467/702 2126/2468/703 2118/2469/704 +f 2126/2468/703 2119/2470/705 2118/2469/704 +f 2119/2470/705 2120/2471/706 2113/2461/696 +f 2120/2471/706 2129/2472/707 2121/2462/697 +f 2121/2462/697 2130/2473/708 2122/2465/700 +f 2122/2465/700 2131/2474/709 2123/2475/710 +f 2132/2476/711 2126/2468/703 2125/2477/712 +f 2133/2478/713 2127/2479/714 2126/2468/703 +f 2127/2479/714 2128/2480/715 2120/2471/706 +f 2125/2477/712 2124/2481/716 2132/2476/711 +f 2125/2477/712 2117/2467/702 2124/2481/716 +f 2124/2482/716 2123/2475/710 2131/2474/709 +f 2123/2475/710 2124/2482/716 2116/2466/701 +f 2131/2474/709 2107/2483/717 2108/2458/693 +f 2130/2473/708 2106/2484/718 2107/2483/717 +f 2129/2472/707 2105/2485/719 2106/2484/718 +f 2105/2485/719 2134/2486/720 2112/2487/721 +f 2134/2486/720 2111/2488/722 2112/2487/721 +f 2133/2478/713 2110/2489/723 2111/2488/722 +f 2110/2489/723 2124/2490/716 2109/2491/724 +f 2109/2492/724 2131/2474/709 2108/2458/693 +f 2138/2460/695 2147/2493/562 2139/2494/725 +f 2106/2484/718 2136/2495/726 2135/2496/727 +f 2112/2487/721 2136/2495/726 2105/2485/719 +f 2110/2489/723 2141/2497/728 2111/2488/722 +f 2109/2492/724 2138/2460/695 2139/2494/725 +f 2107/2483/717 2135/2496/727 2137/2459/694 +f 2111/2488/722 2142/2498/729 2112/2487/721 +f 2109/2491/724 2140/2499/730 2110/2489/723 +f 2135/2496/727 2145/2500/549 2137/2459/694 +f 2141/2497/728 2150/2501/560 2142/2498/729 +f 2139/2502/725 2148/2503/557 2140/2499/730 +f 2137/2459/694 2146/2504/558 2138/2460/695 +f 2136/2495/726 2143/2505/559 2135/2496/727 +f 2142/2498/729 2144/2506/556 2136/2495/726 +f 2140/2499/730 2149/2507/561 2141/2497/728 +f 2154/2508/731 2183/2509/732 2184/2510/733 +f 2159/2511/734 2167/2512/735 2160/2513/736 +f 2167/2512/735 2161/2514/737 2160/2513/736 +f 2161/2514/737 2169/2515/738 2162/2516/739 +f 2163/2517/740 2172/2518/741 2164/2519/742 +f 2172/2518/741 2165/2520/743 2164/2519/742 +f 2165/2520/743 2166/2521/744 2159/2511/734 +f 2166/2521/744 2175/2522/745 2167/2512/735 +f 2167/2512/735 2176/2523/746 2168/2524/747 +f 2168/2524/747 2177/2525/748 2169/2515/738 +f 2178/2526/749 2172/2518/741 2171/2527/750 +f 2172/2518/741 2180/2528/751 2173/2529/752 +f 2180/2528/751 2166/2521/744 2173/2529/752 +f 2171/2527/750 2170/2530/753 2178/2526/749 +f 2171/2527/750 2163/2517/740 2170/2530/753 +f 2170/2531/753 2169/2515/738 2177/2525/748 +f 2169/2515/738 2170/2531/753 2162/2516/739 +f 2177/2525/748 2153/2532/754 2154/2508/731 +f 2176/2523/746 2152/2533/755 2153/2532/754 +f 2175/2522/745 2151/2534/756 2152/2533/755 +f 2151/2534/756 2180/2528/751 2158/2535/757 +f 2180/2528/751 2157/2536/758 2158/2535/757 +f 2179/2537/759 2156/2538/760 2157/2536/758 +f 2156/2538/760 2170/2539/753 2155/2540/761 +f 2155/2541/761 2177/2525/748 2154/2508/731 +f 2184/2510/733 2193/2542/556 2185/2543/762 +f 2152/2533/755 2182/2544/763 2181/2545/764 +f 2158/2535/757 2182/2544/763 2151/2534/756 +f 2156/2538/760 2187/2546/765 2157/2536/758 +f 2155/2541/761 2184/2510/733 2185/2543/762 +f 2153/2532/754 2181/2545/764 2183/2509/732 +f 2157/2536/758 2188/2547/766 2158/2535/757 +f 2155/2540/761 2186/2548/767 2156/2538/760 +f 2181/2545/764 2191/2549/561 2183/2509/732 +f 2187/2546/765 2196/2550/558 2188/2547/766 +f 2185/2551/762 2194/2552/559 2186/2548/767 +f 2183/2509/732 2192/2553/560 2184/2510/733 +f 2182/2544/763 2189/2554/557 2181/2545/764 +f 2188/2547/766 2190/2555/562 2182/2544/763 +f 2186/2548/767 2195/2556/549 2187/2546/765 +f 2200/2557/768 2229/2558/769 2230/2559/770 +f 2205/2560/771 2213/2561/772 2206/2562/773 +f 2213/2561/772 2207/2563/774 2206/2562/773 +f 2214/2564/775 2208/2565/776 2207/2563/774 +f 2209/2566/777 2218/2567/778 2210/2568/779 +f 2218/2567/778 2211/2569/780 2210/2568/779 +f 2219/2570/781 2205/2560/771 2211/2569/780 +f 2212/2571/782 2221/2572/783 2213/2561/772 +f 2221/2572/783 2214/2564/775 2213/2561/772 +f 2222/2573/784 2215/2574/785 2214/2564/775 +f 2224/2575/786 2218/2567/778 2217/2576/787 +f 2218/2567/778 2226/2577/788 2219/2570/781 +f 2219/2570/781 2220/2578/789 2212/2571/782 +f 2217/2576/787 2216/2579/790 2224/2575/786 +f 2217/2576/787 2209/2566/777 2216/2579/790 +f 2216/2580/790 2215/2574/785 2223/2581/791 +f 2215/2574/785 2216/2580/790 2208/2565/776 +f 2223/2581/791 2199/2582/792 2200/2557/768 +f 2222/2573/784 2198/2583/793 2199/2582/792 +f 2221/2572/783 2197/2584/794 2198/2583/793 +f 2197/2584/794 2226/2577/788 2204/2585/795 +f 2226/2577/788 2203/2586/796 2204/2585/795 +f 2225/2587/797 2202/2588/798 2203/2586/796 +f 2202/2588/798 2216/2589/790 2201/2590/799 +f 2201/2591/799 2223/2581/791 2200/2557/768 +f 2230/2559/770 2239/2592/558 2231/2593/800 +f 2198/2583/793 2228/2594/801 2227/2595/802 +f 2204/2585/795 2228/2594/801 2197/2584/794 +f 2202/2588/798 2233/2596/803 2203/2586/796 +f 2201/2591/799 2230/2559/770 2231/2593/800 +f 2199/2582/792 2227/2595/802 2229/2558/769 +f 2203/2586/796 2234/2597/804 2204/2585/795 +f 2201/2590/799 2232/2598/805 2202/2588/798 +f 2227/2595/802 2237/2599/559 2229/2558/769 +f 2233/2596/803 2242/2600/561 2234/2597/804 +f 2231/2601/800 2240/2602/562 2232/2598/805 +f 2229/2558/769 2238/2603/549 2230/2559/770 +f 2228/2594/801 2235/2604/556 2227/2595/802 +f 2234/2597/804 2236/2605/560 2228/2594/801 +f 2232/2598/805 2241/2606/557 2233/2596/803 +f 2246/2607/806 2275/2608/807 2276/2609/808 +f 2251/2610/809 2259/2611/810 2252/2612/811 +f 2259/2611/810 2253/2613/812 2252/2612/811 +f 2260/2614/813 2254/2615/814 2253/2613/812 +f 2255/2616/815 2264/2617/816 2256/2618/817 +f 2264/2617/816 2257/2619/818 2256/2618/817 +f 2257/2619/818 2258/2620/819 2251/2610/809 +f 2258/2620/819 2267/2621/820 2259/2611/810 +f 2259/2611/810 2268/2622/821 2260/2614/813 +f 2268/2622/821 2261/2623/822 2260/2614/813 +f 2270/2624/823 2264/2617/816 2263/2625/824 +f 2264/2617/816 2272/2626/825 2265/2627/826 +f 2265/2627/826 2266/2628/827 2258/2620/819 +f 2263/2625/824 2262/2629/828 2270/2624/823 +f 2263/2625/824 2255/2616/815 2262/2629/828 +f 2262/2630/828 2261/2623/822 2269/2631/829 +f 2261/2623/822 2262/2630/828 2254/2615/814 +f 2269/2631/829 2245/2632/830 2246/2607/806 +f 2268/2622/821 2244/2633/831 2245/2632/830 +f 2267/2621/820 2243/2634/832 2244/2633/831 +f 2243/2634/832 2272/2626/825 2250/2635/833 +f 2272/2626/825 2249/2636/834 2250/2635/833 +f 2271/2637/835 2248/2638/836 2249/2636/834 +f 2248/2638/836 2262/2639/828 2247/2640/837 +f 2247/2641/837 2269/2631/829 2246/2607/806 +f 2276/2609/808 2285/2642/560 2277/2643/838 +f 2244/2633/831 2274/2644/839 2273/2645/840 +f 2250/2635/833 2274/2644/839 2243/2634/832 +f 2248/2638/836 2279/2646/841 2249/2636/834 +f 2247/2641/837 2276/2609/808 2277/2643/838 +f 2245/2632/830 2273/2645/840 2275/2608/807 +f 2249/2636/834 2280/2647/842 2250/2635/833 +f 2247/2640/837 2278/2648/843 2248/2638/836 +f 2273/2645/840 2283/2649/557 2275/2608/807 +f 2279/2646/841 2288/2650/549 2280/2647/842 +f 2277/2651/838 2286/2652/556 2278/2648/843 +f 2275/2608/807 2284/2653/561 2276/2609/808 +f 2274/2644/839 2281/2654/562 2273/2645/840 +f 2280/2647/842 2282/2655/558 2274/2644/839 +f 2278/2648/843 2287/2656/559 2279/2646/841 +f 2292/2657/844 2321/2658/845 2322/2659/846 +f 2297/2660/847 2305/2661/848 2298/2662/849 +f 2305/2661/848 2299/2663/850 2298/2662/849 +f 2306/2664/851 2300/2665/852 2299/2663/850 +f 2301/2666/853 2310/2667/854 2302/2668/855 +f 2310/2667/854 2303/2669/856 2302/2668/855 +f 2311/2670/857 2297/2660/847 2303/2669/856 +f 2312/2671/858 2305/2661/848 2304/2672/859 +f 2313/2673/860 2306/2664/851 2305/2661/848 +f 2314/2674/861 2307/2675/862 2306/2664/851 +f 2316/2676/863 2310/2667/854 2309/2677/864 +f 2317/2678/865 2311/2670/857 2310/2667/854 +f 2318/2679/866 2304/2672/859 2311/2670/857 +f 2309/2677/864 2308/2680/867 2316/2676/863 +f 2309/2677/864 2301/2666/853 2308/2680/867 +f 2308/2681/867 2307/2675/862 2315/2682/868 +f 2307/2675/862 2308/2681/867 2300/2665/852 +f 2315/2682/868 2291/2683/869 2292/2657/844 +f 2314/2674/861 2290/2684/870 2291/2683/869 +f 2313/2673/860 2289/2685/871 2290/2684/870 +f 2289/2685/871 2318/2679/866 2296/2686/872 +f 2318/2679/866 2295/2687/873 2296/2686/872 +f 2317/2678/865 2294/2688/874 2295/2687/873 +f 2294/2688/874 2308/2689/867 2293/2690/875 +f 2293/2691/875 2315/2682/868 2292/2657/844 +f 2322/2659/846 2331/2692/557 2323/2693/876 +f 2290/2684/870 2320/2694/877 2319/2695/878 +f 2296/2686/872 2320/2694/877 2289/2685/871 +f 2294/2688/874 2325/2696/879 2295/2687/873 +f 2293/2691/875 2322/2659/846 2323/2693/876 +f 2291/2683/869 2319/2695/878 2321/2658/845 +f 2295/2687/873 2326/2697/880 2296/2686/872 +f 2293/2690/875 2324/2698/881 2294/2688/874 +f 2319/2695/878 2329/2699/558 2321/2658/845 +f 2325/2696/879 2334/2700/556 2326/2697/880 +f 2323/2701/876 2332/2702/561 2324/2698/881 +f 2321/2658/845 2330/2703/562 2322/2659/846 +f 2319/2695/878 2328/2704/559 2327/2705/549 +f 2326/2697/880 2328/2704/559 2320/2694/877 +f 2324/2698/881 2333/2706/560 2325/2696/879 +f 2338/2707/882 2367/2708/883 2368/2709/884 +f 2350/2710/885 2344/2711/886 2343/2712/887 +f 2351/2713/888 2345/2714/889 2344/2711/886 +f 2345/2714/889 2353/2715/890 2346/2716/891 +f 2347/2717/892 2356/2718/893 2348/2719/894 +f 2356/2718/893 2349/2720/895 2348/2719/894 +f 2349/2720/895 2350/2710/885 2343/2712/887 +f 2350/2710/885 2359/2721/896 2351/2713/888 +f 2359/2721/896 2352/2722/897 2351/2713/888 +f 2360/2723/898 2353/2715/890 2352/2722/897 +f 2362/2724/899 2356/2718/893 2355/2725/900 +f 2356/2718/893 2364/2726/901 2357/2727/902 +f 2357/2727/902 2358/2728/903 2350/2710/885 +f 2355/2725/900 2354/2729/904 2362/2724/899 +f 2355/2725/900 2347/2717/892 2354/2729/904 +f 2354/2730/904 2353/2715/890 2361/2731/905 +f 2353/2715/890 2354/2730/904 2346/2716/891 +f 2361/2731/905 2337/2732/906 2338/2707/882 +f 2360/2723/898 2336/2733/907 2337/2732/906 +f 2359/2721/896 2335/2734/908 2336/2733/907 +f 2342/2735/909 2358/2728/903 2364/2726/901 +f 2364/2726/901 2341/2736/910 2342/2735/909 +f 2363/2737/911 2340/2738/912 2341/2736/910 +f 2340/2738/912 2354/2739/904 2339/2740/913 +f 2339/2741/913 2361/2731/905 2338/2707/882 +f 2369/2742/914 2376/2743/556 2377/2744/559 +f 2336/2733/907 2366/2745/915 2365/2746/916 +f 2342/2735/909 2366/2745/915 2335/2734/908 +f 2340/2738/912 2371/2747/917 2341/2736/910 +f 2339/2741/913 2368/2709/884 2369/2742/914 +f 2337/2732/906 2365/2746/916 2367/2708/883 +f 2341/2736/910 2372/2748/918 2342/2735/909 +f 2339/2740/913 2370/2749/919 2340/2738/912 +f 2365/2746/916 2375/2750/560 2367/2708/883 +f 2371/2747/917 2380/2751/562 2372/2748/918 +f 2369/2752/914 2378/2753/549 2370/2749/919 +f 2367/2708/883 2376/2743/556 2368/2709/884 +f 2366/2745/915 2373/2754/561 2365/2746/916 +f 2372/2748/918 2374/2755/557 2366/2745/915 +f 2370/2749/919 2379/2756/558 2371/2747/917 +f 2428/2757/557 2419/2758/562 2427/2759/562 +f 2427/2759/562 2413/2760/558 2421/2761/558 +f 2422/2762/549 2415/2763/559 2423/2764/559 +f 2424/2765/556 2417/2766/560 2425/2767/560 +f 2392/2768/562 2385/2769/558 2393/2770/558 +f 2390/2771/561 2383/2772/557 2391/2773/557 +f 2395/2774/556 2381/2775/560 2389/2776/560 +f 2396/2777/559 2387/2778/556 2395/2774/556 +f 2393/2770/558 2386/2779/549 2394/2780/549 +f 2391/2773/557 2384/2781/562 2392/2782/562 +f 2389/2776/560 2382/2783/561 2390/2771/561 +f 2394/2780/549 2388/2784/559 2396/2777/559 +f 2399/2785/559 2405/2786/556 2397/2787/556 +f 2404/2788/561 2411/2789/557 2403/2790/557 +f 2402/2791/562 2409/2792/558 2401/2793/558 +f 2400/2794/549 2407/2795/559 2399/2785/559 +f 2397/2787/556 2406/2796/560 2398/2797/560 +f 2398/2797/560 2412/2798/561 2404/2788/561 +f 2403/2790/557 2410/2799/562 2402/2791/562 +f 2401/2800/558 2408/2801/549 2400/2794/549 +f 2425/2767/560 2418/2802/561 2426/2803/561 +f 2423/2764/559 2416/2804/556 2424/2805/556 +f 2421/2761/558 2414/2806/549 2422/2762/549 +f 2426/2803/561 2420/2807/557 2428/2757/557 +f 2431/2808/557 2437/2809/562 2429/2810/562 +f 2436/2811/549 2443/2812/559 2435/2813/559 +f 2434/2814/556 2441/2815/560 2433/2816/560 +f 2432/2817/561 2439/2818/557 2431/2808/557 +f 2429/2810/562 2438/2819/558 2430/2820/558 +f 2430/2820/558 2444/2821/549 2436/2811/549 +f 2435/2813/559 2442/2822/556 2434/2814/556 +f 2433/2823/560 2440/2824/561 2432/2817/561 +f 2456/2825/920 2471/2826/921 2455/2827/921 +f 2454/2828/922 2471/2826/921 2470/2829/922 +f 2454/2828/922 2469/2830/923 2453/2831/923 +f 2453/2832/923 2468/2833/924 2452/2834/924 +f 2452/2834/924 2467/2835/925 2451/2836/925 +f 2451/2836/925 2466/2837/926 2450/2838/926 +f 2450/2838/926 2465/2839/927 2449/2840/927 +f 2448/2841/928 2465/2839/927 2464/2842/928 +f 2448/2841/928 2463/2843/929 2447/2844/929 +f 2447/2844/929 2462/2845/930 2446/2846/930 +f 2446/2846/930 2461/2847/931 2445/2848/931 +f 2445/2848/931 2476/2849/932 2460/2850/932 +f 2459/2851/933 2476/2849/932 2475/2852/933 +f 2459/2851/933 2474/2853/934 2458/2854/934 +f 2457/2855/935 2474/2853/934 2473/2856/935 +f 2457/2855/935 2472/2857/920 2456/2825/920 +f 2527/2858/480 2542/2859/481 2526/2860/481 +f 2535/2861/424 2550/2862/477 2534/2863/477 +f 2528/2864/479 2543/2865/480 2527/2858/480 +f 2536/2866/475 2551/2867/424 2535/2861/424 +f 2529/2868/415 2544/2869/479 2528/2864/479 +f 2537/2870/414 2552/2871/475 2536/2866/475 +f 2530/2872/478 2545/2873/415 2529/2868/415 +f 2538/2874/484 2553/2875/414 2537/2870/414 +f 2531/2876/425 2546/2877/478 2530/2872/478 +f 2539/2878/483 2554/2879/484 2538/2874/484 +f 2532/2880/476 2547/2881/425 2531/2876/425 +f 2540/2882/482 2555/2883/483 2539/2878/483 +f 2533/2884/413 2548/2885/476 2532/2880/476 +f 2526/2860/481 2541/2886/412 2525/2887/412 +f 2525/2887/412 2556/2888/482 2540/2882/482 +f 2534/2863/477 2549/2889/413 2533/2890/413 +f 1017/1162/426 1034/1674/457 1035/1659/427 +f 1016/1164/428 1035/1659/427 1036/1660/429 +f 1015/1166/430 1036/1660/429 1037/1661/431 +f 1014/1168/432 1037/1661/431 1038/1662/433 +f 1013/1170/434 1038/1662/433 1039/1663/435 +f 1012/1172/436 1039/1663/435 1040/1664/437 +f 1011/1174/438 1040/1664/437 1041/1665/439 +f 1010/1175/440 1041/1665/439 1026/1666/441 +f 1024/1146/443 1025/1144/442 1026/1666/441 +f 1023/1148/445 1024/1146/443 1027/1667/444 +f 1022/1150/447 1023/1148/445 1028/1668/446 +f 1021/1152/449 1022/1150/447 1029/1669/448 +f 1020/1155/451 1021/1152/449 1030/1670/450 +f 1019/1156/453 1020/1155/451 1031/1671/452 +f 1018/1159/455 1019/1156/453 1032/1672/454 +f 1018/1161/455 1033/2891/456 1034/1674/457 +f 1975/1675/458 1991/1679/458 1992/1676/459 +f 1974/1678/460 1990/2892/936 1991/1679/458 +f 1989/1680/461 1990/2892/936 1974/1678/460 +f 1988/1682/462 1989/1680/461 1973/1681/461 +f 1971/1684/463 1987/2893/463 1988/1682/462 +f 1970/1685/464 1986/2894/464 1987/1686/463 +f 1985/1688/465 1986/2894/464 1970/1685/464 +f 1968/1690/466 1984/1692/468 1985/1688/465 +f 1967/1691/467 1983/2895/467 1984/1692/468 +f 1982/1693/469 1983/2895/467 1967/1691/467 +f 1981/1695/470 1982/1693/469 1966/1694/469 +f 1980/1697/471 1981/1695/470 1965/1696/470 +f 1979/1699/472 1980/1697/471 1964/1698/471 +f 1994/1701/473 1979/1699/472 1963/1700/472 +f 1993/1703/474 1994/1701/473 1978/1702/473 +f 1992/1676/459 1993/1703/474 1977/1704/474 +f 1166/1705/475 2512/1709/475 2513/1706/414 +f 1167/1708/424 2511/1714/424 2512/1709/475 +f 1154/1710/476 2524/1716/476 2509/1711/413 +f 1168/1713/477 2510/1717/477 2511/1714/424 +f 1155/1715/425 2523/1719/425 2524/1716/476 +f 1169/1712/413 2509/1711/413 2510/1717/477 +f 1156/1718/478 2522/1721/478 2523/1719/425 +f 1157/1720/415 2521/1723/415 2522/1721/478 +f 1158/1722/479 2520/1725/479 2521/1723/415 +f 1159/1724/480 2519/1727/480 2520/1725/479 +f 1160/1726/481 2518/1729/481 2519/1727/480 +f 1161/1728/412 2517/2896/412 2518/1729/481 +f 1162/1730/482 2516/1734/482 2517/1731/412 +f 1163/1733/483 2515/1736/483 2516/1734/482 +f 1164/1735/484 2514/1737/484 2515/1736/483 +f 1165/1707/414 2513/1706/414 2514/1737/484 +f 2491/1738/425 2507/1769/425 2506/1739/478 +f 2483/1741/483 2499/1770/483 2498/1742/484 +f 2490/1740/478 2506/1739/478 2505/1744/415 +f 2482/1743/484 2498/1742/484 2497/1746/414 +f 2489/1745/415 2505/1744/415 2504/1748/479 +f 2481/1747/414 2497/1746/414 2496/1750/475 +f 2488/1749/479 2504/1748/479 2503/1752/480 +f 2480/1751/475 2496/1750/475 2495/1754/424 +f 2487/1753/480 2503/1752/480 2502/1756/481 +f 2479/1755/424 2495/1754/424 2494/1758/477 +f 2486/1757/481 2502/1756/481 2501/1760/412 +f 2477/1762/413 2493/1765/413 2508/1763/476 +f 2478/1759/477 2494/1758/477 2493/1765/413 +f 2485/1766/412 2501/2897/412 2500/1767/482 +f 2492/1764/476 2508/1763/476 2507/1769/425 +f 2484/1768/482 2500/1767/482 2499/1770/483 +f 1339/1771/485 1340/1829/516 1324/1772/486 +f 1316/1774/488 1332/1806/512 1333/1775/489 +f 1324/1772/486 1340/1830/516 1341/1777/491 +f 1333/1779/489 1334/1805/496 1318/1780/493 +f 1325/1778/492 1341/1832/491 1342/1781/494 +f 1334/1783/496 1335/1819/515 1319/1784/497 +f 1342/1785/494 1343/1835/501 1327/1786/498 +f 1319/1784/497 1335/1820/515 1336/1787/499 +f 1343/1789/501 1344/1817/514 1328/1790/502 +f 1320/1788/500 1336/1822/499 1337/1791/503 +f 1328/1790/502 1344/1814/514 1345/1793/505 +f 1337/1795/503 1338/1825/511 1322/1796/507 +f 1314/1797/508 1330/1810/513 1331/1798/509 +f 1345/1800/505 1330/1813/513 1314/1797/508 +f 1338/1801/511 1339/1827/485 1323/1773/487 +f 1331/1803/509 1332/1809/512 1316/1774/488 +f 1359/1836/415 1375/1843/415 1374/1837/479 +f 1352/1839/484 1368/1845/484 1367/1840/414 +f 1360/1842/478 1376/1847/478 1375/1843/415 +f 1353/1844/483 1369/1849/483 1368/1845/484 +f 1361/1846/425 1377/1851/425 1376/1847/478 +f 1354/1848/482 1370/1853/482 1369/1849/483 +f 1362/1850/476 1378/1857/476 1377/1851/425 +f 1355/1852/412 1371/2898/412 1370/1853/482 +f 1348/1854/477 1364/1862/477 1363/1855/413 +f 1347/1856/413 1363/1855/413 1378/1857/476 +f 1356/1858/481 1372/1864/481 1371/1859/412 +f 1349/1861/424 1365/1866/424 1364/1862/477 +f 1357/1863/480 1373/1867/480 1372/1864/481 +f 1350/1865/475 1366/1868/475 1365/1866/424 +f 1358/1838/479 1374/1837/479 1373/1867/480 +f 1351/1841/414 1367/1840/414 1366/1868/475 +f 1320/1788/500 1401/1870/483 1400/1869/484 +f 1321/1792/504 1402/1871/482 1401/1870/483 +f 1322/1796/507 1403/2899/412 1402/1871/482 +f 1323/1773/487 1404/1873/481 1403/1872/412 +f 1324/1772/486 1405/1874/480 1404/1873/481 +f 1325/1778/492 1406/1875/479 1405/1874/480 +f 1326/1782/495 1407/1876/415 1406/1875/479 +f 1327/1786/498 1408/1877/478 1407/1876/415 +f 1328/1790/502 1409/1879/425 1408/1877/478 +f 1315/1799/510 1396/1880/477 1395/1878/413 +f 1329/1794/506 1410/1881/476 1409/1879/425 +f 1316/1774/488 1397/1882/424 1396/1880/477 +f 1314/1797/508 1395/1878/413 1410/1881/476 +f 1317/1776/490 1398/1883/475 1397/1882/424 +f 1318/1780/493 1399/1884/414 1398/1883/475 +f 1319/1784/497 1400/1869/484 1399/1884/414 +f 1428/1885/477 1429/1891/424 1413/1886/424 +f 1436/1888/481 1437/1893/480 1421/1889/480 +f 1429/1891/424 1430/1895/475 1414/1892/475 +f 1437/1893/480 1438/1897/479 1422/1894/479 +f 1430/1895/475 1431/1899/414 1415/1896/414 +f 1438/1897/479 1439/1901/415 1423/1898/415 +f 1431/1899/414 1432/1903/484 1416/1900/484 +f 1439/1901/415 1440/1905/478 1424/1902/478 +f 1432/1903/484 1433/1907/483 1417/1904/483 +f 1440/1905/478 1441/1909/425 1425/1906/425 +f 1433/1907/483 1434/1911/482 1418/1908/482 +f 1441/1909/425 1442/1915/476 1426/1910/476 +f 1434/1911/482 1435/2900/412 1419/1912/412 +f 1427/1913/413 1428/1885/477 1412/1887/477 +f 1442/1915/476 1427/1913/413 1411/1914/413 +f 1435/1916/412 1436/1888/481 1420/1890/481 +f 1498/1918/517 1497/1942/540 1527/1919/518 +f 1510/1921/520 1511/1924/523 1504/1922/521 +f 1511/1924/523 1512/1926/525 1505/1925/524 +f 1512/1926/525 1513/1935/534 1506/1927/526 +f 1507/1928/527 1515/1937/536 1516/1929/528 +f 1508/1930/529 1516/1929/528 1517/1931/530 +f 1517/1931/530 1510/1921/520 1503/1923/522 +f 1510/1921/520 1518/1939/538 1519/1933/532 +f 1519/1933/532 1520/1943/541 1512/1926/525 +f 1512/1926/525 1520/1943/541 1521/1934/533 +f 1522/1936/535 1523/1948/546 1516/1929/528 +f 1516/1929/528 1523/1948/546 1524/1938/537 +f 1517/1931/530 1524/1938/537 1518/1939/538 +f 1521/1934/533 1520/1943/541 1497/1942/540 +f 1520/1943/541 1519/1933/532 1496/1944/542 +f 1519/1933/532 1518/1939/538 1495/1945/543 +f 1495/1945/543 1518/1939/538 1524/1938/537 +f 1524/1938/537 1523/1948/546 1501/1947/545 +f 1523/1948/546 1522/1936/535 1500/1949/547 +f 1500/1949/547 1522/1936/535 1514/1950/539 +f 1498/1918/517 1499/1958/548 1514/1952/539 +f 1528/1920/519 1536/1965/559 1537/1953/549 +f 1496/1944/542 1495/1945/543 1526/1955/551 +f 1502/1946/544 1532/1959/554 1526/1955/551 +f 1500/1949/547 1530/1960/555 1531/1957/553 +f 1499/1958/548 1498/1918/517 1528/1920/519 +f 1497/1942/540 1496/1944/542 1525/1956/552 +f 1501/1947/545 1531/1957/553 1532/1959/554 +f 1499/1951/548 1529/1963/550 1530/1960/555 +f 1525/1956/552 1533/1966/560 1535/1961/556 +f 1531/1957/553 1539/1968/562 1540/1962/557 +f 1529/1963/550 1537/2901/549 1538/1964/558 +f 1527/1919/518 1535/1961/556 1536/1965/559 +f 1526/1955/551 1534/1967/561 1533/1966/560 +f 1532/1959/554 1540/1962/557 1534/1967/561 +f 1530/1960/555 1538/1964/558 1539/1968/562 +f 1565/1969/425 1566/1972/565 1558/1970/563 +f 1566/1972/565 1567/1974/567 1559/1973/566 +f 1567/1974/567 1568/1983/576 1560/1975/568 +f 1562/1976/569 1569/1984/577 1570/1977/570 +f 1563/1978/571 1570/1977/570 1571/1979/572 +f 1564/1980/573 1571/1979/572 1565/1969/425 +f 1565/1969/425 1572/2003/585 1573/1981/574 +f 1566/1972/565 1573/1981/574 1574/1982/575 +f 1574/1982/575 1575/1988/580 1568/1983/576 +f 1569/1984/577 1576/1990/581 1577/1985/578 +f 1577/1985/578 1578/1986/579 1571/1979/572 +f 1578/1986/579 1572/2003/585 1565/1969/425 +f 1560/1975/568 1582/1995/448 1581/1991/410 +f 1563/1978/571 1585/1996/411 1584/1992/582 +f 1557/1971/564 1579/1998/415 1586/1993/583 +f 1561/1994/483 1583/2902/414 1582/1995/448 +f 1564/1980/573 1586/1993/583 1585/1996/411 +f 1559/1973/566 1581/1991/410 1580/1997/431 +f 1558/1970/563 1580/1997/431 1579/1998/415 +f 1562/1976/569 1584/1992/582 1583/1999/414 +f 1574/1982/575 1590/2010/410 1591/2001/439 +f 1577/1985/578 1593/2009/411 1594/2002/584 +f 1572/2003/585 1588/2011/413 1589/2004/456 +f 1561/2005/483 1587/2903/412 1592/2006/586 +f 1575/1988/580 1591/2001/439 1587/2007/412 +f 1576/1990/581 1592/2006/586 1593/2009/411 +f 1573/1981/574 1589/2004/456 1590/2010/410 +f 1578/1986/579 1594/2002/584 1588/2011/413 +f 1603/2012/425 1604/2015/565 1596/2013/563 +f 1604/2015/565 1605/2017/567 1597/2016/566 +f 1605/2017/567 1606/2027/576 1598/2018/568 +f 1600/2019/569 1607/2028/577 1608/2020/570 +f 1601/2021/571 1608/2020/570 1609/2022/572 +f 1602/2023/573 1609/2022/572 1603/2012/425 +f 1610/2024/585 1611/2037/574 1604/2015/565 +f 1604/2015/565 1611/2037/574 1612/2025/575 +f 1605/2017/567 1612/2025/575 1613/2026/580 +f 1607/2028/577 1614/2033/581 1615/2029/578 +f 1615/2029/578 1616/2030/579 1609/2022/572 +f 1616/2030/579 1610/2024/585 1603/2012/425 +f 1612/2025/575 1620/2043/410 1621/2034/439 +f 1615/2029/578 1623/2042/411 1624/2035/584 +f 1610/2024/585 1618/2044/413 1619/2036/456 +f 1599/2038/483 1617/2904/412 1622/2039/586 +f 1613/2026/580 1621/2034/439 1617/2040/412 +f 1614/2033/581 1622/2039/586 1623/2042/411 +f 1611/2037/574 1619/2036/456 1620/2043/410 +f 1616/2030/579 1624/2035/584 1618/2044/413 +f 1633/2045/439 1634/2059/599 1626/2046/587 +f 1626/2046/587 1634/2059/599 1635/2048/589 +f 1627/2050/590 1635/2061/589 1636/2051/591 +f 1637/2053/593 1638/2056/596 1631/2054/594 +f 1638/2056/596 1639/2064/603 1632/2057/597 +f 1632/2057/597 1639/2064/603 1633/2045/439 +f 1633/2045/439 1640/2065/604 1641/2058/598 +f 1641/2058/598 1642/2068/600 1635/2048/589 +f 1642/2060/600 1643/2067/605 1636/2051/591 +f 1644/2062/601 1645/2063/602 1638/2056/596 +f 1645/2063/602 1646/2072/606 1639/2064/603 +f 1639/2064/603 1646/2072/606 1640/2065/604 +f 1641/2058/598 1640/2065/604 1597/2016/566 +f 1642/2068/600 1641/2058/598 1598/2018/568 +f 1643/2067/605 1642/2060/600 1599/2070/483 +f 1629/2071/584 1643/2067/605 1600/2019/569 +f 1596/2013/563 1597/2016/566 1640/2065/604 +f 1646/2072/606 1645/2063/602 1595/2014/564 +f 1645/2063/602 1644/2062/601 1602/2023/573 +f 1602/2023/573 1644/2062/601 1629/2071/584 +f 1647/2073/607 1655/2086/584 1656/2074/608 +f 1656/2074/608 1657/2088/620 1649/2076/610 +f 1649/2076/610 1657/2088/620 1658/2077/611 +f 1659/2079/613 1660/2091/616 1653/2080/614 +f 1660/2082/616 1661/2085/618 1654/2083/617 +f 1661/2085/618 1655/2086/584 1647/2073/607 +f 1655/2086/584 1662/2093/624 1663/2087/619 +f 1663/2087/619 1664/2089/621 1657/2088/620 +f 1664/2089/621 1665/2095/625 1658/2077/611 +f 1659/2079/613 1666/2096/626 1667/2090/622 +f 1660/2082/616 1667/2905/622 1668/2092/623 +f 1661/2085/618 1668/2092/623 1662/2093/624 +f 1650/2078/612 1672/2101/431 1671/2097/415 +f 1653/2080/614 1675/2906/414 1674/2098/448 +f 1647/2073/607 1669/2104/411 1676/2099/582 +f 1651/2100/439 1673/2105/410 1672/2101/431 +f 1654/2083/617 1676/2099/582 1675/2102/414 +f 1649/2076/610 1671/2097/415 1670/2103/583 +f 1648/2075/609 1670/2103/583 1669/2104/411 +f 1652/2081/615 1674/2098/448 1673/2105/410 +f 1626/2046/587 1666/2096/626 1651/2106/439 +f 1667/2090/622 1666/2096/626 1626/2046/587 +f 1668/2092/623 1667/2905/622 1627/2050/590 +f 1629/2107/584 1662/2093/624 1668/2092/623 +f 1663/2087/619 1662/2093/624 1629/2107/584 +f 1664/2089/621 1663/2087/619 1630/2055/595 +f 1665/2095/625 1664/2089/621 1631/2054/594 +f 1651/2106/439 1665/2095/625 1632/2057/597 +f 1718/2108/627 1726/2112/630 1725/2109/424 +f 1719/2111/629 1727/2114/632 1726/2112/630 +f 1720/2113/631 1728/2128/646 1727/2114/632 +f 1722/2115/633 1723/2118/636 1730/2116/634 +f 1723/2118/636 1724/2120/638 1731/2119/637 +f 1724/2120/638 1717/2110/628 1725/2109/424 +f 1725/2109/424 1726/2112/630 1733/2121/639 +f 1726/2112/630 1727/2114/632 1734/2123/641 +f 1727/2114/632 1728/2128/646 1735/2124/642 +f 1729/2117/635 1730/2116/634 1737/2125/643 +f 1731/2119/637 1738/2127/645 1737/2125/643 +f 1725/2109/424 1732/2122/640 1738/2127/645 +f 1741/2131/410 1742/2134/431 1720/2113/631 +f 1744/2132/583 1745/2136/411 1723/2118/636 +f 1746/2133/582 1739/2138/414 1717/2110/628 +f 1742/2134/431 1743/2907/415 1721/2135/480 +f 1745/2136/411 1746/2133/582 1724/2120/638 +f 1740/2137/448 1741/2131/410 1719/2111/629 +f 1739/2138/414 1740/2137/448 1718/2108/627 +f 1743/2139/415 1744/2132/583 1722/2115/633 +f 1751/2141/439 1750/2149/410 1734/2123/641 +f 1754/2142/584 1753/2148/411 1737/2125/643 +f 1749/2143/456 1748/2150/413 1732/2122/640 +f 1752/2144/586 1747/2908/412 1721/2145/480 +f 1747/2146/412 1751/2141/439 1735/2124/642 +f 1753/2148/411 1752/2144/586 1736/2126/644 +f 1750/2149/410 1749/2143/456 1733/2121/639 +f 1748/2150/413 1754/2142/584 1738/2127/645 +f 1756/2151/627 1764/2155/630 1763/2152/424 +f 1757/2154/629 1765/2157/632 1764/2155/630 +f 1758/2156/631 1766/2171/646 1765/2157/632 +f 1760/2158/633 1761/2161/636 1768/2159/634 +f 1761/2161/636 1762/2163/638 1769/2162/637 +f 1762/2163/638 1755/2153/628 1763/2152/424 +f 1764/2155/630 1771/2166/639 1770/2164/640 +f 1764/2155/630 1765/2157/632 1772/2165/641 +f 1765/2157/632 1766/2171/646 1773/2167/642 +f 1767/2160/635 1768/2159/634 1775/2168/643 +f 1769/2162/637 1776/2170/645 1775/2168/643 +f 1763/2152/424 1770/2164/640 1776/2170/645 +f 1781/2174/439 1780/2182/410 1772/2165/641 +f 1784/2175/584 1783/2181/411 1775/2168/643 +f 1779/2176/456 1778/2183/413 1770/2164/640 +f 1782/2177/586 1777/2909/412 1759/2178/480 +f 1777/2179/412 1781/2174/439 1773/2167/642 +f 1783/2181/411 1782/2177/586 1774/2169/644 +f 1780/2182/410 1779/2176/456 1771/2166/639 +f 1778/2183/413 1784/2175/584 1776/2170/645 +f 1786/2184/597 1794/2188/603 1793/2185/439 +f 1786/2184/597 1787/2238/654 1795/2187/647 +f 1791/2189/590 1797/2193/589 1796/2190/591 +f 1792/2192/587 1798/2194/599 1797/2193/589 +f 1792/2192/587 1785/2186/588 1793/2185/439 +f 1793/2185/439 1794/2188/603 1800/2195/606 +f 1795/2187/647 1801/2201/649 1800/2195/606 +f 1797/2193/589 1804/2198/600 1803/2197/605 +f 1798/2194/599 1805/2199/598 1804/2198/600 +f 1793/2185/439 1799/2196/604 1805/2199/598 +f 1757/2154/629 1799/2196/604 1800/2195/606 +f 1758/2156/631 1800/2195/606 1801/2201/649 +f 1759/2203/480 1801/2910/649 1802/2204/583 +f 1760/2158/633 1802/2204/583 1789/2205/648 +f 1756/2151/627 1805/2199/598 1799/2196/604 +f 1755/2153/628 1804/2198/600 1805/2199/598 +f 1762/2163/638 1803/2197/605 1804/2198/600 +f 1789/2205/648 1803/2197/605 1762/2163/638 +f 1807/2206/617 1815/2210/618 1814/2207/584 +f 1808/2209/614 1816/2212/616 1815/2210/618 +f 1808/2209/614 1809/2222/615 1817/2211/613 +f 1812/2213/650 1813/2216/609 1819/2214/608 +f 1806/2208/607 1814/2207/584 1819/2214/608 +f 1815/2210/618 1821/2218/623 1820/2217/624 +f 1816/2212/616 1822/2219/622 1821/2218/623 +f 1817/2211/613 1823/2224/626 1822/2219/622 +f 1818/2215/651 1819/2214/608 1826/2220/619 +f 1819/2214/608 1814/2207/584 1820/2217/624 +f 1829/2225/414 1830/2230/448 1809/2222/615 +f 1832/2226/431 1833/2911/415 1812/2227/650 +f 1834/2229/583 1827/2234/411 1806/2208/607 +f 1830/2230/448 1831/2235/410 1810/2231/653 +f 1833/2232/415 1834/2229/583 1813/2216/609 +f 1828/2233/582 1829/2225/414 1808/2209/614 +f 1827/2234/411 1828/2233/582 1807/2206/617 +f 1831/2235/410 1832/2226/431 1811/2228/431 +f 1810/2236/653 1824/2912/480 1786/2184/597 +f 1786/2184/597 1824/2912/480 1825/2237/652 +f 1787/2239/654 1825/2221/652 1826/2220/619 +f 1826/2220/619 1820/2217/624 1789/2241/648 +f 1789/2241/648 1820/2217/624 1821/2218/623 +f 1790/2191/592 1821/2218/623 1822/2219/622 +f 1791/2189/590 1822/2219/622 1823/2224/626 +f 1792/2192/587 1823/2224/626 1810/2236/653 +f 1842/2242/413 1859/2913/413 1858/2243/476 +f 1841/2245/477 1860/2249/477 1859/2246/413 +f 1840/2248/424 1861/2251/424 1860/2249/477 +f 1839/2250/475 1862/2253/475 1861/2251/424 +f 1838/2252/414 1863/2255/414 1862/2253/475 +f 1837/2254/484 1864/2257/484 1863/2255/414 +f 1836/2256/483 1865/2259/483 1864/2257/484 +f 1835/2258/482 1866/2261/482 1865/2259/483 +f 1850/2260/412 1851/2263/412 1866/2261/482 +f 1850/2260/412 1849/2265/481 1852/2262/481 +f 1848/2264/480 1853/2267/480 1852/2262/481 +f 1848/2264/480 1847/2269/479 1854/2266/479 +f 1846/2268/415 1855/2271/415 1854/2266/479 +f 1846/2268/415 1845/2273/478 1856/2270/478 +f 1844/2272/425 1857/2274/425 1856/2270/478 +f 1844/2272/425 1843/2244/476 1858/2243/476 +f 1870/2275/475 1902/2306/475 1903/2276/414 +f 1878/2278/479 1910/2307/479 1911/2279/415 +f 1871/2277/414 1903/2276/414 1904/2281/484 +f 1879/2280/415 1911/2279/415 1912/2283/478 +f 1872/2282/484 1904/2281/484 1905/2285/483 +f 1880/2284/478 1912/2283/478 1913/2287/425 +f 1873/2286/483 1905/2285/483 1906/2289/482 +f 1881/2288/425 1913/2287/425 1914/2291/476 +f 1874/2290/482 1906/2289/482 1907/2293/412 +f 1867/2295/413 1899/2298/413 1900/2296/477 +f 1882/2292/476 1914/2291/476 1899/2298/413 +f 1875/2299/412 1907/2914/412 1908/2300/481 +f 1868/2297/477 1900/2296/477 1901/2302/424 +f 1876/2301/481 1908/2300/481 1909/2304/480 +f 1869/2303/424 1901/2302/424 1902/2306/475 +f 1877/2305/480 1909/2304/480 1910/2307/479 +f 1896/2308/478 1928/2315/478 1927/2309/415 +f 1889/2311/483 1921/2317/483 1920/2312/484 +f 1897/2314/425 1929/2319/425 1928/2315/478 +f 1890/2316/482 1922/2321/482 1921/2317/483 +f 1898/2318/476 1930/2325/476 1929/2319/425 +f 1891/2320/412 1923/2915/412 1922/2321/482 +f 1884/2322/477 1916/2330/477 1915/2323/413 +f 1883/2324/413 1915/2323/413 1930/2325/476 +f 1892/2326/481 1924/2332/481 1923/2327/412 +f 1885/2329/424 1917/2334/424 1916/2330/477 +f 1893/2331/480 1925/2336/480 1924/2332/481 +f 1886/2333/475 1918/2338/475 1917/2334/424 +f 1894/2335/479 1926/2339/479 1925/2336/480 +f 1887/2337/414 1919/2340/414 1918/2338/475 +f 1895/2310/415 1927/2309/415 1926/2339/479 +f 1888/2313/484 1920/2312/484 1919/2340/414 +f 1960/2341/478 1961/2344/425 1945/2342/425 +f 1961/2344/425 1962/2346/476 1946/2345/476 +f 1962/2346/476 1947/2348/413 1931/2347/413 +f 1947/2348/413 1948/2350/477 1932/2349/477 +f 1948/2350/477 1949/2352/424 1933/2351/424 +f 1949/2352/424 1950/2354/475 1934/2353/475 +f 1950/2354/475 1951/2356/414 1935/2355/414 +f 1951/2356/414 1952/2358/484 1936/2357/484 +f 1952/2358/484 1953/2360/483 1937/2359/483 +f 1953/2360/483 1954/2362/482 1938/2361/482 +f 1954/2362/482 1955/2916/412 1939/2363/412 +f 1955/2364/412 1956/2367/481 1940/2365/481 +f 1956/2367/481 1957/2369/480 1941/2368/480 +f 1957/2369/480 1958/2371/479 1942/2370/479 +f 1958/2371/479 1959/2373/415 1943/2372/415 +f 1959/2373/415 1960/2341/478 1944/2343/478 +f 2002/2374/476 2018/2406/476 2019/2375/413 +f 2003/2377/413 2019/2917/413 2020/2378/477 +f 2004/2379/477 2020/2378/477 2021/2380/424 +f 2005/2381/424 2021/2380/424 2022/2382/475 +f 2006/2383/475 2022/2382/475 2023/2384/414 +f 2007/2385/414 2023/2384/414 2024/2386/484 +f 2008/2387/484 2024/2386/484 2025/2388/483 +f 1995/2390/412 2011/2397/412 2012/2391/481 +f 2009/2389/483 2025/2388/483 2026/2393/482 +f 1996/2392/481 2012/2391/481 2013/2395/480 +f 2010/2394/482 2026/2393/482 2011/2397/412 +f 1997/2396/480 2013/2395/480 2014/2398/479 +f 1998/2399/479 2014/2398/479 2015/2400/415 +f 1999/2401/415 2015/2400/415 2016/2402/478 +f 2000/2403/478 2016/2402/478 2017/2404/425 +f 2001/2405/425 2017/2404/425 2018/2406/476 +f 2062/2407/655 2061/2431/678 2091/2408/656 +f 2067/2410/658 2074/2421/669 2075/2411/659 +f 2075/2411/659 2076/2414/662 2069/2413/661 +f 2076/2414/662 2077/2424/672 2070/2415/663 +f 2071/2416/664 2079/2426/674 2080/2417/665 +f 2080/2417/665 2081/2420/668 2073/2419/667 +f 2081/2420/668 2074/2421/669 2067/2410/658 +f 2074/2421/669 2082/2428/676 2083/2422/670 +f 2083/2422/670 2084/2432/679 2076/2414/662 +f 2076/2414/662 2084/2432/679 2085/2423/671 +f 2086/2425/673 2087/2437/684 2080/2417/665 +f 2080/2417/665 2087/2437/684 2088/2427/675 +f 2081/2420/668 2088/2427/675 2082/2428/676 +f 2085/2423/671 2084/2432/679 2061/2431/678 +f 2084/2432/679 2083/2422/670 2060/2433/680 +f 2083/2422/670 2082/2428/676 2059/2434/681 +f 2066/2435/682 2059/2434/681 2082/2428/676 +f 2088/2427/675 2087/2437/684 2065/2436/683 +f 2087/2437/684 2086/2425/673 2064/2438/685 +f 2064/2438/685 2086/2425/673 2078/2439/677 +f 2062/2407/655 2063/2447/686 2078/2441/677 +f 2092/2409/657 2100/2454/557 2101/2442/561 +f 2060/2433/680 2059/2434/681 2090/2444/688 +f 2066/2435/682 2096/2448/691 2090/2444/688 +f 2064/2438/685 2094/2449/692 2095/2446/690 +f 2063/2447/686 2062/2407/655 2092/2409/657 +f 2061/2431/678 2060/2433/680 2089/2445/689 +f 2065/2436/683 2095/2446/690 2096/2448/691 +f 2063/2440/686 2093/2452/687 2094/2449/692 +f 2089/2445/689 2097/2455/558 2099/2450/562 +f 2095/2446/690 2103/2457/556 2104/2451/559 +f 2093/2452/687 2101/2918/561 2102/2453/560 +f 2091/2408/656 2099/2450/562 2100/2454/557 +f 2090/2444/688 2098/2456/549 2097/2455/558 +f 2096/2448/691 2104/2451/559 2098/2456/549 +f 2094/2449/692 2102/2453/560 2103/2457/556 +f 2108/2458/693 2107/2483/717 2137/2459/694 +f 2113/2461/696 2120/2471/706 2121/2462/697 +f 2121/2462/697 2122/2465/700 2115/2464/699 +f 2122/2465/700 2123/2475/710 2116/2466/701 +f 2117/2467/702 2125/2477/712 2126/2468/703 +f 2126/2468/703 2127/2479/714 2119/2470/705 +f 2119/2470/705 2127/2479/714 2120/2471/706 +f 2120/2471/706 2128/2480/715 2129/2472/707 +f 2121/2462/697 2129/2472/707 2130/2473/708 +f 2122/2465/700 2130/2473/708 2131/2474/709 +f 2132/2476/711 2133/2478/713 2126/2468/703 +f 2133/2478/713 2134/2486/720 2127/2479/714 +f 2127/2479/714 2134/2486/720 2128/2480/715 +f 2131/2474/709 2130/2473/708 2107/2483/717 +f 2130/2473/708 2129/2472/707 2106/2484/718 +f 2129/2472/707 2128/2480/715 2105/2485/719 +f 2105/2485/719 2128/2480/715 2134/2486/720 +f 2134/2486/720 2133/2478/713 2111/2488/722 +f 2133/2478/713 2132/2476/711 2110/2489/723 +f 2110/2489/723 2132/2476/711 2124/2490/716 +f 2109/2492/724 2124/2919/716 2131/2474/709 +f 2138/2460/695 2146/2504/558 2147/2493/562 +f 2106/2484/718 2105/2485/719 2136/2495/726 +f 2112/2487/721 2142/2498/729 2136/2495/726 +f 2110/2489/723 2140/2499/730 2141/2497/728 +f 2109/2492/724 2108/2458/693 2138/2460/695 +f 2107/2483/717 2106/2484/718 2135/2496/727 +f 2111/2488/722 2141/2497/728 2142/2498/729 +f 2109/2491/724 2139/2502/725 2140/2499/730 +f 2135/2496/727 2143/2505/559 2145/2500/549 +f 2141/2497/728 2149/2507/561 2150/2501/560 +f 2139/2502/725 2147/2920/562 2148/2503/557 +f 2137/2459/694 2145/2500/549 2146/2504/558 +f 2136/2495/726 2144/2506/556 2143/2505/559 +f 2142/2498/729 2150/2501/560 2144/2506/556 +f 2140/2499/730 2148/2503/557 2149/2507/561 +f 2154/2508/731 2153/2532/754 2183/2509/732 +f 2159/2511/734 2166/2521/744 2167/2512/735 +f 2167/2512/735 2168/2524/747 2161/2514/737 +f 2161/2514/737 2168/2524/747 2169/2515/738 +f 2163/2517/740 2171/2527/750 2172/2518/741 +f 2172/2518/741 2173/2529/752 2165/2520/743 +f 2165/2520/743 2173/2529/752 2166/2521/744 +f 2166/2521/744 2174/2921/937 2175/2522/745 +f 2167/2512/735 2175/2522/745 2176/2523/746 +f 2168/2524/747 2176/2523/746 2177/2525/748 +f 2178/2526/749 2179/2537/759 2172/2518/741 +f 2172/2518/741 2179/2537/759 2180/2528/751 +f 2180/2528/751 2174/2921/937 2166/2521/744 +f 2177/2525/748 2176/2523/746 2153/2532/754 +f 2176/2523/746 2175/2522/745 2152/2533/755 +f 2175/2522/745 2174/2921/937 2151/2534/756 +f 2151/2534/756 2174/2921/937 2180/2528/751 +f 2180/2528/751 2179/2537/759 2157/2536/758 +f 2179/2537/759 2178/2526/749 2156/2538/760 +f 2156/2538/760 2178/2526/749 2170/2539/753 +f 2155/2541/761 2170/2922/753 2177/2525/748 +f 2184/2510/733 2192/2553/560 2193/2542/556 +f 2152/2533/755 2151/2534/756 2182/2544/763 +f 2158/2535/757 2188/2547/766 2182/2544/763 +f 2156/2538/760 2186/2548/767 2187/2546/765 +f 2155/2541/761 2154/2508/731 2184/2510/733 +f 2153/2532/754 2152/2533/755 2181/2545/764 +f 2157/2536/758 2187/2546/765 2188/2547/766 +f 2155/2540/761 2185/2551/762 2186/2548/767 +f 2181/2545/764 2189/2554/557 2191/2549/561 +f 2187/2546/765 2195/2556/549 2196/2550/558 +f 2185/2551/762 2193/2923/556 2194/2552/559 +f 2183/2509/732 2191/2549/561 2192/2553/560 +f 2182/2544/763 2190/2555/562 2189/2554/557 +f 2188/2547/766 2196/2550/558 2190/2555/562 +f 2186/2548/767 2194/2552/559 2195/2556/549 +f 2200/2557/768 2199/2582/792 2229/2558/769 +f 2205/2560/771 2212/2571/782 2213/2561/772 +f 2213/2561/772 2214/2564/775 2207/2563/774 +f 2214/2564/775 2215/2574/785 2208/2565/776 +f 2209/2566/777 2217/2576/787 2218/2567/778 +f 2218/2567/778 2219/2570/781 2211/2569/780 +f 2219/2570/781 2212/2571/782 2205/2560/771 +f 2212/2571/782 2220/2578/789 2221/2572/783 +f 2221/2572/783 2222/2573/784 2214/2564/775 +f 2222/2573/784 2223/2581/791 2215/2574/785 +f 2224/2575/786 2225/2587/797 2218/2567/778 +f 2218/2567/778 2225/2587/797 2226/2577/788 +f 2219/2570/781 2226/2577/788 2220/2578/789 +f 2223/2581/791 2222/2573/784 2199/2582/792 +f 2222/2573/784 2221/2572/783 2198/2583/793 +f 2221/2572/783 2220/2578/789 2197/2584/794 +f 2197/2584/794 2220/2578/789 2226/2577/788 +f 2226/2577/788 2225/2587/797 2203/2586/796 +f 2225/2587/797 2224/2575/786 2202/2588/798 +f 2202/2588/798 2224/2575/786 2216/2589/790 +f 2201/2591/799 2216/2924/790 2223/2581/791 +f 2230/2559/770 2238/2603/549 2239/2592/558 +f 2198/2583/793 2197/2584/794 2228/2594/801 +f 2204/2585/795 2234/2597/804 2228/2594/801 +f 2202/2588/798 2232/2598/805 2233/2596/803 +f 2201/2591/799 2200/2557/768 2230/2559/770 +f 2199/2582/792 2198/2583/793 2227/2595/802 +f 2203/2586/796 2233/2596/803 2234/2597/804 +f 2201/2590/799 2231/2601/800 2232/2598/805 +f 2227/2595/802 2235/2604/556 2237/2599/559 +f 2233/2596/803 2241/2606/557 2242/2600/561 +f 2231/2601/800 2239/2925/558 2240/2602/562 +f 2229/2558/769 2237/2599/559 2238/2603/549 +f 2228/2594/801 2236/2605/560 2235/2604/556 +f 2234/2597/804 2242/2600/561 2236/2605/560 +f 2232/2598/805 2240/2602/562 2241/2606/557 +f 2246/2607/806 2245/2632/830 2275/2608/807 +f 2251/2610/809 2258/2620/819 2259/2611/810 +f 2259/2611/810 2260/2614/813 2253/2613/812 +f 2260/2614/813 2261/2623/822 2254/2615/814 +f 2255/2616/815 2263/2625/824 2264/2617/816 +f 2264/2617/816 2265/2627/826 2257/2619/818 +f 2257/2619/818 2265/2627/826 2258/2620/819 +f 2258/2620/819 2266/2628/827 2267/2621/820 +f 2259/2611/810 2267/2621/820 2268/2622/821 +f 2268/2622/821 2269/2631/829 2261/2623/822 +f 2270/2624/823 2271/2637/835 2264/2617/816 +f 2264/2617/816 2271/2637/835 2272/2626/825 +f 2265/2627/826 2272/2626/825 2266/2628/827 +f 2269/2631/829 2268/2622/821 2245/2632/830 +f 2268/2622/821 2267/2621/820 2244/2633/831 +f 2267/2621/820 2266/2628/827 2243/2634/832 +f 2243/2634/832 2266/2628/827 2272/2626/825 +f 2272/2626/825 2271/2637/835 2249/2636/834 +f 2271/2637/835 2270/2624/823 2248/2638/836 +f 2248/2638/836 2270/2624/823 2262/2639/828 +f 2247/2641/837 2262/2926/828 2269/2631/829 +f 2276/2609/808 2284/2653/561 2285/2642/560 +f 2244/2633/831 2243/2634/832 2274/2644/839 +f 2250/2635/833 2280/2647/842 2274/2644/839 +f 2248/2638/836 2278/2648/843 2279/2646/841 +f 2247/2641/837 2246/2607/806 2276/2609/808 +f 2245/2632/830 2244/2633/831 2273/2645/840 +f 2249/2636/834 2279/2646/841 2280/2647/842 +f 2247/2640/837 2277/2651/838 2278/2648/843 +f 2273/2645/840 2281/2654/562 2283/2649/557 +f 2279/2646/841 2287/2656/559 2288/2650/549 +f 2277/2651/838 2285/2927/560 2286/2652/556 +f 2275/2608/807 2283/2649/557 2284/2653/561 +f 2274/2644/839 2282/2655/558 2281/2654/562 +f 2280/2647/842 2288/2650/549 2282/2655/558 +f 2278/2648/843 2286/2652/556 2287/2656/559 +f 2292/2657/844 2291/2683/869 2321/2658/845 +f 2297/2660/847 2304/2672/859 2305/2661/848 +f 2305/2661/848 2306/2664/851 2299/2663/850 +f 2306/2664/851 2307/2675/862 2300/2665/852 +f 2301/2666/853 2309/2677/864 2310/2667/854 +f 2310/2667/854 2311/2670/857 2303/2669/856 +f 2311/2670/857 2304/2672/859 2297/2660/847 +f 2312/2671/858 2313/2673/860 2305/2661/848 +f 2313/2673/860 2314/2674/861 2306/2664/851 +f 2314/2674/861 2315/2682/868 2307/2675/862 +f 2316/2676/863 2317/2678/865 2310/2667/854 +f 2317/2678/865 2318/2679/866 2311/2670/857 +f 2318/2679/866 2312/2671/858 2304/2672/859 +f 2315/2682/868 2314/2674/861 2291/2683/869 +f 2314/2674/861 2313/2673/860 2290/2684/870 +f 2313/2673/860 2312/2671/858 2289/2685/871 +f 2289/2685/871 2312/2671/858 2318/2679/866 +f 2318/2679/866 2317/2678/865 2295/2687/873 +f 2317/2678/865 2316/2676/863 2294/2688/874 +f 2294/2688/874 2316/2676/863 2308/2689/867 +f 2293/2691/875 2308/2928/867 2315/2682/868 +f 2322/2659/846 2330/2703/562 2331/2692/557 +f 2290/2684/870 2289/2685/871 2320/2694/877 +f 2296/2686/872 2326/2697/880 2320/2694/877 +f 2294/2688/874 2324/2698/881 2325/2696/879 +f 2293/2691/875 2292/2657/844 2322/2659/846 +f 2291/2683/869 2290/2684/870 2319/2695/878 +f 2295/2687/873 2325/2696/879 2326/2697/880 +f 2293/2690/875 2323/2701/876 2324/2698/881 +f 2319/2695/878 2327/2705/549 2329/2699/558 +f 2325/2696/879 2333/2706/560 2334/2700/556 +f 2323/2701/876 2331/2929/557 2332/2702/561 +f 2321/2658/845 2329/2699/558 2330/2703/562 +f 2319/2695/878 2320/2694/877 2328/2704/559 +f 2326/2697/880 2334/2700/556 2328/2704/559 +f 2324/2698/881 2332/2702/561 2333/2706/560 +f 2338/2707/882 2337/2732/906 2367/2708/883 +f 2350/2710/885 2351/2713/888 2344/2711/886 +f 2351/2713/888 2352/2722/897 2345/2714/889 +f 2345/2714/889 2352/2722/897 2353/2715/890 +f 2347/2717/892 2355/2725/900 2356/2718/893 +f 2356/2718/893 2357/2727/902 2349/2720/895 +f 2349/2720/895 2357/2727/902 2350/2710/885 +f 2350/2710/885 2358/2728/903 2359/2721/896 +f 2359/2721/896 2360/2723/898 2352/2722/897 +f 2360/2723/898 2361/2731/905 2353/2715/890 +f 2362/2724/899 2363/2737/911 2356/2718/893 +f 2356/2718/893 2363/2737/911 2364/2726/901 +f 2357/2727/902 2364/2726/901 2358/2728/903 +f 2361/2731/905 2360/2723/898 2337/2732/906 +f 2360/2723/898 2359/2721/896 2336/2733/907 +f 2359/2721/896 2358/2728/903 2335/2734/908 +f 2342/2735/909 2335/2734/908 2358/2728/903 +f 2364/2726/901 2363/2737/911 2341/2736/910 +f 2363/2737/911 2362/2724/899 2340/2738/912 +f 2340/2738/912 2362/2724/899 2354/2739/904 +f 2339/2741/913 2354/2930/904 2361/2731/905 +f 2369/2742/914 2368/2709/884 2376/2743/556 +f 2336/2733/907 2335/2734/908 2366/2745/915 +f 2342/2735/909 2372/2748/918 2366/2745/915 +f 2340/2738/912 2370/2749/919 2371/2747/917 +f 2339/2741/913 2338/2707/882 2368/2709/884 +f 2337/2732/906 2336/2733/907 2365/2746/916 +f 2341/2736/910 2371/2747/917 2372/2748/918 +f 2339/2740/913 2369/2752/914 2370/2749/919 +f 2365/2746/916 2373/2754/561 2375/2750/560 +f 2371/2747/917 2379/2756/558 2380/2751/562 +f 2369/2752/914 2377/2931/559 2378/2753/549 +f 2367/2708/883 2375/2750/560 2376/2743/556 +f 2366/2745/915 2374/2755/557 2373/2754/561 +f 2372/2748/918 2380/2751/562 2374/2755/557 +f 2370/2749/919 2378/2753/549 2379/2756/558 +f 2428/2757/557 2420/2807/557 2419/2758/562 +f 2427/2759/562 2419/2758/562 2413/2760/558 +f 2422/2762/549 2414/2806/549 2415/2763/559 +f 2424/2765/556 2416/2932/556 2417/2766/560 +f 2392/2768/562 2384/2933/562 2385/2769/558 +f 2390/2771/561 2382/2783/561 2383/2772/557 +f 2395/2774/556 2387/2778/556 2381/2775/560 +f 2396/2777/559 2388/2784/559 2387/2778/556 +f 2393/2770/558 2385/2769/558 2386/2779/549 +f 2391/2773/557 2383/2772/557 2384/2781/562 +f 2389/2776/560 2381/2775/560 2382/2783/561 +f 2394/2780/549 2386/2779/549 2388/2784/559 +f 2399/2785/559 2407/2795/559 2405/2786/556 +f 2404/2788/561 2412/2798/561 2411/2789/557 +f 2402/2791/562 2410/2799/562 2409/2792/558 +f 2400/2794/549 2408/2801/549 2407/2795/559 +f 2397/2787/556 2405/2786/556 2406/2796/560 +f 2398/2797/560 2406/2796/560 2412/2798/561 +f 2403/2790/557 2411/2789/557 2410/2799/562 +f 2401/2800/558 2409/2934/558 2408/2801/549 +f 2425/2767/560 2417/2766/560 2418/2802/561 +f 2423/2764/559 2415/2763/559 2416/2804/556 +f 2421/2761/558 2413/2760/558 2414/2806/549 +f 2426/2803/561 2418/2802/561 2420/2807/557 +f 2431/2808/557 2439/2818/557 2437/2809/562 +f 2436/2811/549 2444/2821/549 2443/2812/559 +f 2434/2814/556 2442/2822/556 2441/2815/560 +f 2432/2817/561 2440/2824/561 2439/2818/557 +f 2429/2810/562 2437/2809/562 2438/2819/558 +f 2430/2820/558 2438/2819/558 2444/2821/549 +f 2435/2813/559 2443/2812/559 2442/2822/556 +f 2433/2823/560 2441/2935/560 2440/2824/561 +f 2456/2825/920 2472/2857/920 2471/2826/921 +f 2454/2828/922 2455/2827/921 2471/2826/921 +f 2454/2828/922 2470/2829/922 2469/2830/923 +f 2453/2832/923 2469/2936/923 2468/2833/924 +f 2452/2834/924 2468/2833/924 2467/2835/925 +f 2451/2836/925 2467/2835/925 2466/2837/926 +f 2450/2838/926 2466/2837/926 2465/2839/927 +f 2448/2841/928 2449/2840/927 2465/2839/927 +f 2448/2841/928 2464/2842/928 2463/2843/929 +f 2447/2844/929 2463/2843/929 2462/2845/930 +f 2446/2846/930 2462/2845/930 2461/2847/931 +f 2445/2848/931 2461/2847/931 2476/2849/932 +f 2459/2851/933 2460/2850/932 2476/2849/932 +f 2459/2851/933 2475/2852/933 2474/2853/934 +f 2457/2855/935 2458/2854/934 2474/2853/934 +f 2457/2855/935 2473/2856/935 2472/2857/920 +f 2527/2858/480 2543/2865/480 2542/2859/481 +f 2535/2861/424 2551/2867/424 2550/2862/477 +f 2528/2864/479 2544/2869/479 2543/2865/480 +f 2536/2866/475 2552/2871/475 2551/2867/424 +f 2529/2868/415 2545/2873/415 2544/2869/479 +f 2537/2870/414 2553/2875/414 2552/2871/475 +f 2530/2872/478 2546/2877/478 2545/2873/415 +f 2538/2874/484 2554/2879/484 2553/2875/414 +f 2531/2876/425 2547/2881/425 2546/2877/478 +f 2539/2878/483 2555/2883/483 2554/2879/484 +f 2532/2880/476 2548/2885/476 2547/2881/425 +f 2540/2882/482 2556/2888/482 2555/2883/483 +f 2533/2884/413 2549/2937/413 2548/2885/476 +f 2526/2860/481 2542/2859/481 2541/2886/412 +f 2525/2887/412 2541/2886/412 2556/2888/482 +f 2534/2863/477 2550/2862/477 2549/2889/413 diff --git a/src/main/resources/assets/hbm/textures/items/circuit_aluminium.png b/src/main/resources/assets/hbm/textures/items/circuit_aluminium.png index cf34db6b73d89ed278e394819a850a1c21fbc74b..9579bd9ddd27f369dd02b1ba6baa13ebab765c08 100644 GIT binary patch delta 354 zcmV-o0iFJx0{#M!C4X~5NmK|32nc)#WQYI&0X0cPK~y-6-I6hm!Y~v>U+m->9Ex2Vh5{)`PD4+|g& zf}7Tws;U|+%kpi_vMf%glVt;Vo@XYyt_wh`)oLhpyIqFEp?^82X$pW1a5x;^Dwk!+ zY&K)DSfG?*JRTE85kiQEh4cA*d$)n_`({`ehGv85bjtB~yj$4qc7J+Zuh-Od&0sJf zO;eI2!M1HfW5M_RmkdUu5dd{v1E94gj$?CgKA%4ZY`5En_tk1;8u$A>*Xxz#a*0xk z$z(zh1V||X5L*CQmT|dU$n(6R*y(g=x7#SC==b}4Kl#1!ImBo5dcE84JgTa~aU7(S zIF4g7*lafU5T8*L1wWrkYmL?#Ap}y&7yc7`0dh&!2s)>x@Bjb+07*qoM6N<$g4sBp AkpKVy delta 256 zcmV+b0ssE~0-XYoC4Xl@O+f$vv5yPL_jpyk*(k$Bqwdr1LUI!dyB40000$ffPqzjCD&)x9?r1%Ehb+yotmhX4y0+U%P& zePVN-st0wxI0irzV0&a9=@_K#;(qufua5yqDP5(q0L>QUt`ig%8>pxXExey%`UnUK zX3t6i_GS7dAXs@A=W)00S=buP;PyPednEEy!Csn19K-okjr{ExxvK;!uF(UEh^0ac zN1t}MgAp&L%YR7#jN`$HV<;>&f`6;EiLk+jHRnz52vQe{*%ZdP2jF2n1Fag>wKtkA zST2uqF;hp!GyodFwH0njA@?er_$8!{ZKe)yX|^DFItswWjCTpoyuZYsn%kc={Wmw5 zuAnWA9?)n@6Y=xAo#$SkQ1YaZuEOmqHvj+t M07*qoM6N<$f+~`@cmMzZ delta 254 zcmV zp{*cUTn2d2%Mv3Qa)ZpN$W&1sAc3u3tPXfeIIPFg3iGsC!m%qD1^@s607*qoM6N<$ Ef|z_^U;qFB diff --git a/src/main/resources/assets/hbm/textures/items/circuit_gold.png b/src/main/resources/assets/hbm/textures/items/circuit_gold.png index 113bb0a155b730fb935f311759975616d2708f50..1ea35bc0d6cac46c843e4720530ebd6feb158a93 100644 GIT binary patch delta 486 zcmVE`2GQU2pjx+3+!BDHl)&?$Z~~5$U}{bYfw9vNg03BgN=+%2;rKa7ex|Sk1OfP2^l^Yboq(g` z;AfF*C#_yAqqkpzi{RIf0R&qO;oBZ^MN3@a#@%y}yI0Ic4+| z+6b+1e%oyIJb&x@i1oFa&;gmeD*)a;Uh5MOcA?cZ*`ANyQwU?E3R2C3i@}Y<=gq$J zRLa$_aO|u}^|LlPjG=>hb}_gJeb9tX9+~`uKp*BIY?@ypru}F$o$TL ze*jRasXkKV=8R2S{DjQs(0YViiXn+%?=5Vsq`0AjU|))5%UxuW_j5oO+vrjkMn>Vx ztp2qFh6C_($ch$h2Kz8v+UWMU5@-|5bj+_{HNPO^~l$)9TrLK8KeSh=z^y6hXxBE0x>)Nbc zAMTwDAm{tq&!bMhS@1amNO!KNd6uAwW|R;FIh6>`z6R4v>(73Jj$J zaFsv?UGDD1{>}zm*Ckl`8W6z<3+%zren9}==>Nb^X*}QqU}^-112$veOZ~B+Q5ueA a?G2GSjK=6|bPZtu00001BwKYG=ITKL_t(Ijop#GYg1tq#(y{O81id{T02{B?xw5d> zj4=QB;b!(_k$Q2zGy81d@bBCu3_}2JKY2>6R)YzsR;v`Je8%$y_QWlZ z+6NZDeC3TQs>;6P4gfMy$hFbqEHxYlhm)+&t}=A-5?SNy$ZN3x00000x03*%sw(Qb#(Pgy zRgC>d00x5rMNw#LKnMZvJxP+#>2v_7>zZfx`dDk3OeXaE{b(n?KR(pu(Sg2nJ1UAo zmq!P3&M8e({eStv<_Y*6TCB5&Z#K W!PaG8u~4A^0000K~y-6)sjyugi#d6e`f9-%-9W* zY}i@O%2Hz?nMkpbQp(ao3e%8CCSx)A4hRb+ic&tnOw)`~D8&W~u@Ph5_ujX$nCY57 ze1LiCbk3=J&hwn73pI~AfLtz@cN_=Xw*L&vvQSEu)h?HdP=6>?Cjjnedd)_!*9SmT zV|^LZ-C&sJy|C$@$JPK40G->HRjltNwSPBE$I%*D;Bk0~&XWz?ZujpA*V8@u{}eoo ztQgsChs#F6+r%cpV6bpPd+e-A!G~?reh@)xjemEMr_og&h9XEQ@pwFViV6h4%i>^} z2MxgYvZ9a_<0x6}*Qp(EFTE!1~H_OEcb`Gcy00000NkvXXu0mjftL3}! delta 272 zcmV+r0q_2>1FQm&C4Xl@O+f$vv5yPa<^_JflR*+y5|z#I`EZc^c0?ovMH#va zazr9QDWx{%<{RBbTS2lo4e+9uC5~j+56Ig;Hkm3e2S{M67cU3wjg#*%9~*Pn@&zQO W&fZKp^PT_z00{s|MNUMnLSTZVs%?(| diff --git a/src/main/resources/assets/hbm/textures/items/circuit_schrabidium.png b/src/main/resources/assets/hbm/textures/items/circuit_schrabidium.png index f3cae51ae33146c42fa3eacfe922d27b5b066894..27c3cbcf99a47f352c09ed608fdd806fb57e0600 100644 GIT binary patch delta 512 zcmV+b0{{KA0-6MnB!2{RLP=Bz2nYy#2xN!=00GfSL_t(Ijm?q4Y7DUf(xI@h0ox|O~Fk?UNgE*FYy?-tMVHirY*%WK7EPYRw zLTgQ<(LigB)>^vO@@svauC;V06GpwBL{Wq>h9pVK#d;}}QfRGtd3MI@G-WFYFvc($ z4grXwi08-0IOh9#T$PKLqE@R(tJUIt z90Twv3{gszWPcxKGXO5y^Z&t*=$ytS1N>IC{Yvv z;GDxb2Y~k;fd0t|0DpFO@!rc~u~@xB!2;OQb$4nuFf3k00004XF*Lt006O%3;baP00009a7bBm000id z000id0mpBsWB>pF7<5HgbW?9;ba!ELWdLwtX>N2bZe?^JG%heMHvEiZ-v9srrAb6V zR5(wij!_Q8AP7XggE1yvy5Bua&qf&n7OH9OuE_)>ycrS^{ePwD@QbFy)*7YbAXMvX zt)jH=R7&Bsj|Kq6VB3B$P0t^iXKAn49;P(Rz8H8#ODw6N#LnG|c#eg9* zy2DWXFg!>>80DOK?ZLoOB~jt7H-i9rSiu<#^#-t<$}p;F*`NcQ>cM4$K3I5RKYaB0 fnU}q5M(G4b2og#Tx<-mu00000NkvXXu0mjf4McC= diff --git a/src/main/resources/assets/hbm/textures/items/circuit_simple_overlay.png b/src/main/resources/assets/hbm/textures/items/circuit_simple_overlay.png new file mode 100644 index 0000000000000000000000000000000000000000..799f5d83dd50417d733ab1bdb672f462351adbad GIT binary patch literal 353 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

(uUG%QnPD)AN9(bg&ZP>bg0 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 DrL-WY&{ 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 diff --git a/src/main/resources/assets/hbm/textures/models/machines/turbofan.png b/src/main/resources/assets/hbm/textures/models/machines/turbofan.png new file mode 100644 index 0000000000000000000000000000000000000000..d51b70aca0f64d938f98527d1f585d2f546617cc GIT binary patch literal 2038 zcmZ8i4LFl)AHO$dGjEK>If=&PWN#hB;^bpzmTw2Unj=ZWA$20DbxC+wof46JHs4Lj zdh=Zx64t6EL?5J&`AU?nMnjW1yiawy-s^hr>w50{dH&b``u+aD-~HVGJB{w+whF6{ z1put_aChDg00ITS7h=@l`6m|(LwHeT(LDSx@JPgjrviYk@o;wXi!1ps)Ry_m6({%@ z8lx4%KHh&-Q^siaW(p2qZEFn$b=--K%`p%u<8Dp1)xDN<4HcO|P;QmVkIn!7nei@; zXe!GQ`^sc1XoGOCYv;RME*bBQZJKhnOQV*GQ=X-gvr~{~4rea{+6%O1tmKVN-ucm# z&UP;d0RAa12ssHq70)BFrY}2++I=oEi&skHt)XP)vybujk_Z#T8@=ZUzq+n@J2_c- zRcfb-3YRV~Q|68FX?g7RMRR@O1myIyyMr z-QCxNm;0giDUt5hk}$rL+kKsIY-kqAXcxTT@KzVA^o}GKx7rr-_Qbm6kWM<$sr*j7 z(8x?M+%tdWk-5n{={IkEKdoO)eQueU;n@uqb!H+eRFN3o^2CRl~Ypz{CNgJl&yzd9J-iRYKJ!7A(L50=q8#b0V; zzNVbA2yPE3);Y+nF>q=`(ad^y)*bTt4B&lj^FX zGm+X`VyCpRwlm>c30ow|ckCc?mq3E|0Thy_rD>oKHx)rvKy<#-k zuX6MZmo3R66=>t>hE^!+6EwvB8p?Ab!?Lv?Av=%ttm&rwNwSmMa6zrK@%NOw1L(&e zkd=AvPxsXca!Cc*Bx;>B$9zmyA+_5bV#KgCF$-uu@L}=UL5}(RxIN33!^<|yO2YLz zTL!JIbYbR=0WQ8sz|Gt5>}>atqCdQ}c5a}L+|`$ejZGD{=pboz6$%}7Cq$TOQmSX7 zFG3q1<0n7Od!v|KGl<{x?$eRE%YR$Hsfz5MDc>BFcvrg+DZyaciiWF9tx!?rBZ9go z!@l9ww<;Pw=X0XhW>-ZgzG{_-`Vju3bLH#rfJf-GT|VUvnohT`Cl$$O_$ynX%%hAK z$U>w)(agD?@P2KKKDneM0yWxiWu3cD49=kW*i$_nZC2uf`i`55}NZO3i@vBhQI7ir;tF@w| zdWx;KW}Asl4C2M&1Q|FqWW9v@zb`6YV3XL>A(x`8NPnr(<=a7YC>Jo`jx z*-vvm)~RE&0mnS5mEd3?v`h_Z*rAZTdb-qm;LQ$n!0%U1|A2<(BtsDt7-7p#xCS!OwCWjWD8_Ff5N zIh0U9S|L&>Cc3i%jy*7W+U3Q|J(;Mndk6z9?H%7rk-hhr(e7z4tRlBt!&?PhuTa3F zi;Dn0*zC>lcVmGP=OG(7et%riFgu^~(SUGtAW6ef$frZV5?0U|)H!MD&y=U;b8zX? zlct0D92g<(b1(iI5Kf&%@Xvg^(0u)DA2f3oM%Dg?3fL`LK=dW)j|tOr85=G3FbzXw z+k#k1y9L+pvS2S^9)5JRaJ7;G@(-zFJU&4&`VHHApn$DqpA93)k<}e6a11^_M3{#XTHrGuV6hnmk8sqec0Vn<3l2!1J`Ims1AUrC_jn zhwC&g6~^XITOfCvbp9FmAKE`|jG3*)gsFLc6ml|Pd<^^O5_%6$=3y(177ZcN|R<@7=B_Dg}PDDL(-5=g5r zL$WtL;(-utD>(9!g7Rk;MFbrq&3*-jNvV1P|0Dbdu~A96OUcr)RD@2%WuCM5qI|7V z8_)J^C_`qs$3ocZTjaC(9J(D`)h6MT3Z1lwcj#)f6NpbYKUe%e=7U<_+tZ<-^Hl5z z`Wt;(i$K5a^T_O K<6KJ%Iq_f2n6UW( literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/machines/turbofan_back.png b/src/main/resources/assets/hbm/textures/models/machines/turbofan_back.png new file mode 100644 index 0000000000000000000000000000000000000000..9829eecde9ac5b37d69c0caf559b50cf5baaa117 GIT binary patch literal 292 zcmeAS@N?(olHy`uVBq!ia0vp^B0!wL!3HE{t%7a=DVAa<&kznEsNqQI0P=5px;TbJ zw7#9@$k(hO;A-D%o^;W=^rALH_=`i)m1?^(FEwfSTxBu(zrM%VuGM~ihC&F-qqx6n ztk+x~6iU8i?$hgM7ukJAho2*5nkmD~R9=U)NahKV*BH>aI=kM;#j78l^Q~uoD)SQW zHCgxc{g=-E_p|tKR-I^rTuj=uaIcs$v5WUN^L0y1`&RtSDe7%m3*7d3|0{$6%84RxX=Gi!>(% cp8Cord%))G>qoN|0KLiJ>FVdQ&MBb@0G;J_82|tP literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/mining_drill.png b/src/main/resources/assets/hbm/textures/models/mining_drill.png index 78f6b2b1898b30c641a0b32c69d7f6ea4666c053..c4c2f2c653b2f2c14a4e830e732a7eab0af7d373 100755 GIT binary patch literal 14089 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�E<0Ps<$n|dVp?n9~Rn)(9AGWY*G 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%0D@&; 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 kus+uaVgQ+Xtv7Z4l;|C+`8!X1R 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 z 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

1a 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 Pfp3xQND*i2$af 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

$Mk{Iix} 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

    @;!AA&u31Xfo6Wb_`yn%g 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

    4Y;T_{@)E7lqA* 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�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

    `k!8O!VK8z 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 XtSgN-aeIgV00000NkvXXu0mjf=>qsh From e4e4e00c3076abf303a1d5bb4a8c2c32627a3724 Mon Sep 17 00:00:00 2001 From: Bob Date: Sun, 22 May 2022 18:17:05 +0200 Subject: [PATCH 17/80] recipes and sound loop fixes --- .../hbm/blocks/machine/MachineTurbofan.java | 65 +++++++++--------- .../java/com/hbm/crafting/ArmorRecipes.java | 4 ++ .../com/hbm/handler/MultiblockHandler.java | 8 +-- .../handler/nei/AssemblerRecipeHandler.java | 3 +- .../com/hbm/inventory/fluid/FluidType.java | 4 +- .../inventory/recipes/AssemblerRecipes.java | 12 ++++ .../java/com/hbm/items/armor/ArmorDiesel.java | 2 +- .../com/hbm/items/weapon/ItemGunGauss.java | 10 +++ src/main/java/com/hbm/lib/RefStrings.java | 2 +- .../hbm/render/tileentity/RenderTurbofan.java | 2 +- .../machine/TileEntityMachineAssembler.java | 20 +++--- .../machine/TileEntityMachineChemplant.java | 11 ++- .../machine/TileEntityMachineTurbofan.java | 57 ++++++++------- .../machine/TileEntitySoyuzLauncher.java | 9 ++- .../hbm/textures/models/machines/turbofan.png | Bin 2038 -> 4370 bytes .../models/machines/turbofan_afterburner.png | Bin 0 -> 407 bytes .../models/machines/turbofan_back.png | Bin 292 -> 477 bytes src/main/resources/mcmod.info | 2 +- 18 files changed, 131 insertions(+), 80 deletions(-) create mode 100644 src/main/resources/assets/hbm/textures/models/machines/turbofan_afterburner.png diff --git a/src/main/java/com/hbm/blocks/machine/MachineTurbofan.java b/src/main/java/com/hbm/blocks/machine/MachineTurbofan.java index fa6c9a40f..c7da8fe6c 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineTurbofan.java +++ b/src/main/java/com/hbm/blocks/machine/MachineTurbofan.java @@ -11,7 +11,6 @@ import com.hbm.inventory.fluid.types.FluidTypeCombustible.FuelGrade; import com.hbm.items.ModItems; import com.hbm.main.MainRegistry; import com.hbm.tileentity.machine.TileEntityDummy; -import com.hbm.tileentity.machine.TileEntityMachineDiesel; import com.hbm.tileentity.machine.TileEntityMachineTurbofan; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; @@ -73,32 +72,32 @@ public class MachineTurbofan extends BlockContainer implements IMultiblock, IToo // DummyBlockTurbofan.safeBreak = true; - world.setBlock(x + 1, y + 1, z + 1, ModBlocks.dummy_port_turbofan); - TileEntity te = world.getTileEntity(x + 1, y + 1, z + 1); + world.setBlock(x, y, z + 1, ModBlocks.dummy_port_turbofan); + TileEntity te = world.getTileEntity(x, y, z + 1); if(te instanceof TileEntityDummy) { TileEntityDummy dummy = (TileEntityDummy)te; dummy.targetX = x; dummy.targetY = y; dummy.targetZ = z; } - world.setBlock(x - 1, y + 1, z - 1, ModBlocks.dummy_port_turbofan); - TileEntity te2 = world.getTileEntity(x - 1, y + 1, z - 1); + world.setBlock(x - 1, y, z - 1, ModBlocks.dummy_port_turbofan); + TileEntity te2 = world.getTileEntity(x - 1, y, z - 1); if(te instanceof TileEntityDummy) { TileEntityDummy dummy = (TileEntityDummy)te2; dummy.targetX = x; dummy.targetY = y; dummy.targetZ = z; } - world.setBlock(x + 1, y + 1, z - 1, ModBlocks.dummy_port_turbofan); - TileEntity te3 = world.getTileEntity(x + 1, y + 1, z - 1); + world.setBlock(x, y, z - 1, ModBlocks.dummy_port_turbofan); + TileEntity te3 = world.getTileEntity(x, y, z - 1); if(te3 instanceof TileEntityDummy) { TileEntityDummy dummy = (TileEntityDummy)te3; dummy.targetX = x; dummy.targetY = y; dummy.targetZ = z; } - world.setBlock(x - 1, y + 1, z + 1, ModBlocks.dummy_port_turbofan); - TileEntity te4 = world.getTileEntity(x - 1, y + 1, z + 1); + world.setBlock(x - 1, y, z + 1, ModBlocks.dummy_port_turbofan); + TileEntity te4 = world.getTileEntity(x - 1, y, z + 1); if(te4 instanceof TileEntityDummy) { TileEntityDummy dummy = (TileEntityDummy)te4; dummy.targetX = x; @@ -118,32 +117,32 @@ public class MachineTurbofan extends BlockContainer implements IMultiblock, IToo // DummyBlockTurbofan.safeBreak = true; - world.setBlock(x + 1, y + 1, z + 1, ModBlocks.dummy_port_turbofan); - TileEntity te = world.getTileEntity(x + 1, y + 1, z + 1); + world.setBlock(x + 1, y, z, ModBlocks.dummy_port_turbofan); + TileEntity te = world.getTileEntity(x + 1, y, z); if(te instanceof TileEntityDummy) { TileEntityDummy dummy = (TileEntityDummy)te; dummy.targetX = x; dummy.targetY = y; dummy.targetZ = z; } - world.setBlock(x - 1, y + 1, z - 1, ModBlocks.dummy_port_turbofan); - TileEntity te2 = world.getTileEntity(x - 1, y + 1, z - 1); + world.setBlock(x - 1, y, z - 1, ModBlocks.dummy_port_turbofan); + TileEntity te2 = world.getTileEntity(x - 1, y, z - 1); if(te instanceof TileEntityDummy) { TileEntityDummy dummy = (TileEntityDummy)te2; dummy.targetX = x; dummy.targetY = y; dummy.targetZ = z; } - world.setBlock(x + 1, y + 1, z - 1, ModBlocks.dummy_port_turbofan); - TileEntity te3 = world.getTileEntity(x + 1, y + 1, z - 1); + world.setBlock(x + 1, y, z - 1, ModBlocks.dummy_port_turbofan); + TileEntity te3 = world.getTileEntity(x + 1, y, z - 1); if(te3 instanceof TileEntityDummy) { TileEntityDummy dummy = (TileEntityDummy)te3; dummy.targetX = x; dummy.targetY = y; dummy.targetZ = z; } - world.setBlock(x - 1, y + 1, z + 1, ModBlocks.dummy_port_turbofan); - TileEntity te4 = world.getTileEntity(x - 1, y + 1, z + 1); + world.setBlock(x - 1, y, z, ModBlocks.dummy_port_turbofan); + TileEntity te4 = world.getTileEntity(x - 1, y, z); if(te4 instanceof TileEntityDummy) { TileEntityDummy dummy = (TileEntityDummy)te4; dummy.targetX = x; @@ -163,32 +162,32 @@ public class MachineTurbofan extends BlockContainer implements IMultiblock, IToo // DummyBlockTurbofan.safeBreak = true; - world.setBlock(x + 1, y + 1, z + 1, ModBlocks.dummy_port_turbofan); - TileEntity te = world.getTileEntity(x + 1, y + 1, z + 1); + world.setBlock(x + 1, y, z + 1, ModBlocks.dummy_port_turbofan); + TileEntity te = world.getTileEntity(x + 1, y, z + 1); if(te instanceof TileEntityDummy) { TileEntityDummy dummy = (TileEntityDummy)te; dummy.targetX = x; dummy.targetY = y; dummy.targetZ = z; } - world.setBlock(x - 1, y + 1, z - 1, ModBlocks.dummy_port_turbofan); - TileEntity te2 = world.getTileEntity(x - 1, y + 1, z - 1); + world.setBlock(x, y, z - 1, ModBlocks.dummy_port_turbofan); + TileEntity te2 = world.getTileEntity(x, y, z - 1); if(te instanceof TileEntityDummy) { TileEntityDummy dummy = (TileEntityDummy)te2; dummy.targetX = x; dummy.targetY = y; dummy.targetZ = z; } - world.setBlock(x + 1, y + 1, z - 1, ModBlocks.dummy_port_turbofan); - TileEntity te3 = world.getTileEntity(x + 1, y + 1, z - 1); + world.setBlock(x + 1, y, z - 1, ModBlocks.dummy_port_turbofan); + TileEntity te3 = world.getTileEntity(x + 1, y, z - 1); if(te3 instanceof TileEntityDummy) { TileEntityDummy dummy = (TileEntityDummy)te3; dummy.targetX = x; dummy.targetY = y; dummy.targetZ = z; } - world.setBlock(x - 1, y + 1, z + 1, ModBlocks.dummy_port_turbofan); - TileEntity te4 = world.getTileEntity(x - 1, y + 1, z + 1); + world.setBlock(x, y, z + 1, ModBlocks.dummy_port_turbofan); + TileEntity te4 = world.getTileEntity(x, y, z + 1); if(te4 instanceof TileEntityDummy) { TileEntityDummy dummy = (TileEntityDummy)te4; dummy.targetX = x; @@ -208,32 +207,32 @@ public class MachineTurbofan extends BlockContainer implements IMultiblock, IToo // DummyBlockTurbofan.safeBreak = true; - world.setBlock(x + 1, y + 1, z + 1, ModBlocks.dummy_port_turbofan); - TileEntity te = world.getTileEntity(x + 1, y + 1, z + 1); + world.setBlock(x + 1, y, z + 1, ModBlocks.dummy_port_turbofan); + TileEntity te = world.getTileEntity(x + 1, y, z + 1); if(te instanceof TileEntityDummy) { TileEntityDummy dummy = (TileEntityDummy)te; dummy.targetX = x; dummy.targetY = y; dummy.targetZ = z; } - world.setBlock(x - 1, y + 1, z - 1, ModBlocks.dummy_port_turbofan); - TileEntity te2 = world.getTileEntity(x - 1, y + 1, z - 1); + world.setBlock(x - 1, y, z, ModBlocks.dummy_port_turbofan); + TileEntity te2 = world.getTileEntity(x - 1, y, z); if(te instanceof TileEntityDummy) { TileEntityDummy dummy = (TileEntityDummy)te2; dummy.targetX = x; dummy.targetY = y; dummy.targetZ = z; } - world.setBlock(x + 1, y + 1, z - 1, ModBlocks.dummy_port_turbofan); - TileEntity te3 = world.getTileEntity(x + 1, y + 1, z - 1); + world.setBlock(x + 1, y, z, ModBlocks.dummy_port_turbofan); + TileEntity te3 = world.getTileEntity(x + 1, y, z); if(te3 instanceof TileEntityDummy) { TileEntityDummy dummy = (TileEntityDummy)te3; dummy.targetX = x; dummy.targetY = y; dummy.targetZ = z; } - world.setBlock(x - 1, y + 1, z + 1, ModBlocks.dummy_port_turbofan); - TileEntity te4 = world.getTileEntity(x - 1, y + 1, z + 1); + world.setBlock(x - 1, y, z + 1, ModBlocks.dummy_port_turbofan); + TileEntity te4 = world.getTileEntity(x - 1, y, z + 1); if(te4 instanceof TileEntityDummy) { TileEntityDummy dummy = (TileEntityDummy)te4; dummy.targetX = x; diff --git a/src/main/java/com/hbm/crafting/ArmorRecipes.java b/src/main/java/com/hbm/crafting/ArmorRecipes.java index 6287f6f28..0658d4f7a 100644 --- a/src/main/java/com/hbm/crafting/ArmorRecipes.java +++ b/src/main/java/com/hbm/crafting/ArmorRecipes.java @@ -101,6 +101,10 @@ public class ArmorRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.steamsuit_plate, 1), new Object[] { "C C", "DXD", "CFC", 'D', DESH.ingot(), 'C', CU.plate(), 'X', ModItems.steel_plate, 'F', ModItems.tank_steel }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.steamsuit_legs, 1), new Object[] { "CCC", "DXD", "C C", 'D', DESH.ingot(), 'C', CU.plate(), 'X', ModItems.steel_legs }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.steamsuit_boots, 1), new Object[] { "C C", "DXD", 'D', DESH.ingot(), 'C', CU.plate(), 'X', ModItems.steel_boots }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.dieselsuit_helmet, 1), new Object[] { "W W", "W W", "SCS", 'W', new ItemStack(Blocks.wool, 1, 14), 'S', STEEL.ingot(), 'C', ModItems.circuit_targeting_tier3 }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.dieselsuit_plate, 1), new Object[] { "W W", "CDC", "SWS", 'W', new ItemStack(Blocks.wool, 1, 14), 'S', STEEL.ingot(), 'C', ModItems.circuit_targeting_tier3, 'D', ModBlocks.machine_diesel }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.dieselsuit_legs, 1), new Object[] { "M M", "S S", "W W", 'W', new ItemStack(Blocks.wool, 1, 14), 'S', STEEL.ingot(), 'M', ModItems.motor }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.dieselsuit_boots, 1), new Object[] { "W W", "S S", 'W', new ItemStack(Blocks.wool, 1, 14), 'S', STEEL.ingot() }); //Bismuth fursui- I mean armor CraftingManager.addRecipeAuto(new ItemStack(ModItems.bismuth_helmet, 1), new Object[] { "GPP", "P ", "FPP", 'G', Items.gold_ingot, 'P', ModItems.plate_bismuth, 'F', ModItems.rag }); diff --git a/src/main/java/com/hbm/handler/MultiblockHandler.java b/src/main/java/com/hbm/handler/MultiblockHandler.java index 1054e7030..6ea5d6636 100644 --- a/src/main/java/com/hbm/handler/MultiblockHandler.java +++ b/src/main/java/com/hbm/handler/MultiblockHandler.java @@ -63,10 +63,10 @@ public class MultiblockHandler { public static final int[] pumpjackDimensionEast = new int[] { 0, 6, 4, 0, 1, 1 }; public static final int[] pumpjackDimensionSouth = new int[] { 1, 1, 4, 0, 0, 6 }; public static final int[] pumpjackDimensionWest = new int[] { 6, 0, 4, 0, 1, 1 }; - public static final int[] turbofanDimensionNorth = new int[] { 1, 1, 2, 0, 4, 4 }; - public static final int[] turbofanDimensionEast = new int[] { 4, 4, 2, 0, 1, 1 }; - public static final int[] turbofanDimensionSouth = new int[] { 1, 1, 2, 0, 4, 4 }; - public static final int[] turbofanDimensionWest = new int[] { 4, 4, 2, 0, 1, 1 }; + public static final int[] turbofanDimensionNorth = new int[] { 1, 1, 2, 0, 3, 3 }; + public static final int[] turbofanDimensionEast = new int[] { 3, 3, 2, 0, 1, 1 }; + public static final int[] turbofanDimensionSouth = new int[] { 1, 1, 2, 0, 3, 3 }; + public static final int[] turbofanDimensionWest = new int[] { 3, 3, 2, 0, 1, 1 }; public static final int[] AMSLimiterDimensionNorth = new int[] { 0, 0, 5, 0, 2, 2 }; public static final int[] AMSLimiterDimensionEast = new int[] { 2, 2, 5, 0, 0, 0 }; public static final int[] AMSLimiterDimensionSouth = new int[] { 0, 0, 5, 0, 2, 2 }; diff --git a/src/main/java/com/hbm/handler/nei/AssemblerRecipeHandler.java b/src/main/java/com/hbm/handler/nei/AssemblerRecipeHandler.java index 6d781fa7f..f533fc02c 100644 --- a/src/main/java/com/hbm/handler/nei/AssemblerRecipeHandler.java +++ b/src/main/java/com/hbm/handler/nei/AssemblerRecipeHandler.java @@ -10,6 +10,7 @@ import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.gui.GUIMachineAssembler; import com.hbm.inventory.recipes.AssemblerRecipes; import com.hbm.items.ModItems; +import com.hbm.items.machine.ItemAssemblyTemplate; import com.hbm.lib.RefStrings; import codechicken.nei.NEIServerUtils; @@ -35,7 +36,7 @@ public class AssemblerRecipeHandler extends TemplateRecipeHandler { input = new ArrayList(); ComparableStack comp = new ComparableStack(result); - ItemStack template = new ItemStack(ModItems.assembly_template, 1, AssemblerRecipes.recipeList.indexOf(comp)); + ItemStack template = ItemAssemblyTemplate.writeType(new ItemStack(ModItems.assembly_template), comp); for(int i = 0; i < Math.min(in.size(), 12); i++) { input.add(new PositionedStack(in.get(i), 30 + (i % 4) * 18, 6 + (i / 4) * 18)); diff --git a/src/main/java/com/hbm/inventory/fluid/FluidType.java b/src/main/java/com/hbm/inventory/fluid/FluidType.java index 2527ee2f6..f56402f22 100644 --- a/src/main/java/com/hbm/inventory/fluid/FluidType.java +++ b/src/main/java/com/hbm/inventory/fluid/FluidType.java @@ -179,12 +179,12 @@ public class FluidType { if(traits.contains(FluidTrait.NO_CONTAINER)) info.add(EnumChatFormatting.RED + "Cannot be stored in any universal tank"); if(traits.contains(FluidTrait.LEAD_CONTAINER)) info.add(EnumChatFormatting.YELLOW + "Requires hazardous material tank to hold"); - info.add(""); + /*info.add(""); info.add(EnumChatFormatting.RED + "[DEBUG]"); for(FluidTrait trait : traits) { info.add(EnumChatFormatting.RED + "-" + trait.name()); - } + }*/ } /** diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java index 5270cbf16..114a43423 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java @@ -788,6 +788,18 @@ public class AssemblerRecipes { new ComparableStack(ModItems.circuit_aluminium, 2) }, 100); + makeRecipe(new ComparableStack(ModBlocks.machine_assemfac, 1), new AStack[] { + new OreDictStack(STEEL.ingot(), 48), + new OreDictStack(TCALLOY.ingot(), 8), + new OreDictStack(B.ingot(), 4), + new OreDictStack(RUBBER.ingot(), 16), + new OreDictStack(KEY_ANYPANE, 64), + new ComparableStack(ModItems.motor, 18), + new ComparableStack(ModItems.bolt_tungsten, 12), + new ComparableStack(ModItems.pipes_steel, 1), + new ComparableStack(ModItems.circuit_gold, 3) + }, 400); + makeRecipe(new ComparableStack(ModBlocks.machine_chemfac, 1), new AStack[] { new OreDictStack(STEEL.ingot(), 48), new OreDictStack(TCALLOY.ingot(), 8), diff --git a/src/main/java/com/hbm/items/armor/ArmorDiesel.java b/src/main/java/com/hbm/items/armor/ArmorDiesel.java index 63d57cfc2..d3cb53dc4 100644 --- a/src/main/java/com/hbm/items/armor/ArmorDiesel.java +++ b/src/main/java/com/hbm/items/armor/ArmorDiesel.java @@ -56,7 +56,7 @@ public class ArmorDiesel extends ArmorFSBFueled { public void onArmorTick(World world, EntityPlayer player, ItemStack stack) { super.onArmorTick(world, player, stack); - if(this == ModItems.dieselsuit_legs && this.hasFSBArmor(player) && world.getTotalWorldTime() % 3 == 0) { + if(!world.isRemote && this == ModItems.dieselsuit_legs && this.hasFSBArmor(player) && world.getTotalWorldTime() % 3 == 0) { NBTTagCompound data = new NBTTagCompound(); data.setString("type", "bnuuy"); data.setInteger("player", player.getEntityId()); diff --git a/src/main/java/com/hbm/items/weapon/ItemGunGauss.java b/src/main/java/com/hbm/items/weapon/ItemGunGauss.java index 08b236d01..63f347527 100644 --- a/src/main/java/com/hbm/items/weapon/ItemGunGauss.java +++ b/src/main/java/com/hbm/items/weapon/ItemGunGauss.java @@ -103,11 +103,21 @@ public class ItemGunGauss extends ItemGunBase { super.updateClient(stack, world, player, slot, isCurrentItem); if(chargeLoop != null) { + if(!chargeLoop.isPlaying()) { + chargeLoop = rebootAudio(chargeLoop, player); + } chargeLoop.updatePosition((float)player.posX, (float)player.posY, (float)player.posZ); chargeLoop.updatePitch(chargeLoop.getPitch() + 0.01F); } } + public AudioWrapper rebootAudio(AudioWrapper wrapper, EntityPlayer player) { + wrapper.stopSound(); + AudioWrapper audio = MainRegistry.proxy.getLoopedSound("hbm:weapon.tauChargeLoop2", (float)player.posX, (float)player.posY, (float)player.posZ, wrapper.getVolume(), wrapper.getPitch()); + audio.startSound(); + return audio; + } + protected void spawnProjectile(World world, EntityPlayer player, ItemStack stack, int config) { super.spawnProjectile(world, player, stack, config); diff --git a/src/main/java/com/hbm/lib/RefStrings.java b/src/main/java/com/hbm/lib/RefStrings.java index 6b6c96e38..85ecc3a5f 100644 --- a/src/main/java/com/hbm/lib/RefStrings.java +++ b/src/main/java/com/hbm/lib/RefStrings.java @@ -3,7 +3,7 @@ package com.hbm.lib; public class RefStrings { public static final String MODID = "hbm"; public static final String NAME = "Hbm's Nuclear Tech Mod"; - public static final String VERSION = "1.0.27 BETA (4228)"; + public static final String VERSION = "1.0.27 BETA (4242)"; //HBM's Beta Naming Convention: //V T (X) //V -> next release version diff --git a/src/main/java/com/hbm/render/tileentity/RenderTurbofan.java b/src/main/java/com/hbm/render/tileentity/RenderTurbofan.java index b66921a83..1e7b35ed2 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderTurbofan.java +++ b/src/main/java/com/hbm/render/tileentity/RenderTurbofan.java @@ -35,7 +35,7 @@ public class RenderTurbofan extends TileEntitySpecialRenderer { ResourceManager.turbofan.renderPart("Body"); GL11.glPushMatrix(); GL11.glTranslated(0, 1.5, 0); - GL11.glRotated(((TileEntityMachineTurbofan) tileEntity).spin, 0, 0, 1); + GL11.glRotated(((TileEntityMachineTurbofan) tileEntity).spin, 0, 0, -1); GL11.glTranslated(0, -1.5, 0); ResourceManager.turbofan.renderPart("Blades"); GL11.glPopMatrix(); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssembler.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssembler.java index 8bd372ce6..13f5c6f25 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssembler.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssembler.java @@ -13,10 +13,6 @@ import com.hbm.items.machine.ItemAssemblyTemplate; import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import com.hbm.lib.Library; import com.hbm.main.MainRegistry; -import com.hbm.packet.AuxElectricityPacket; -import com.hbm.packet.LoopedSoundPacket; -import com.hbm.packet.PacketDispatcher; -import com.hbm.packet.TEAssemblerPacket; import com.hbm.sound.AudioWrapper; import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.tileentity.machine.storage.TileEntityCrateIron; @@ -24,20 +20,15 @@ import com.hbm.tileentity.machine.storage.TileEntityCrateSteel; import api.hbm.energy.IBatteryItem; import api.hbm.energy.IEnergyUser; -import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.IInventory; -import net.minecraft.inventory.ISidedInventory; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntityChest; import net.minecraft.tileentity.TileEntityHopper; import net.minecraft.util.AxisAlignedBB; -import net.minecraftforge.common.util.ForgeDirection; public class TileEntityMachineAssembler extends TileEntityMachineBase implements IEnergyUser { @@ -231,8 +222,12 @@ public class TileEntityMachineAssembler extends TileEntityMachineBase implements if(isProgressing && volume > 0) { if(audio == null) { - audio = MainRegistry.proxy.getLoopedSound("hbm:block.assemblerOperate", xCoord, yCoord, zCoord, volume, 1.0F); + audio = this.createAudioLoop(); + audio.updateVolume(volume); audio.startSound(); + } else if(!audio.isPlaying()) { + audio = rebootAudio(audio); + audio.updateVolume(volume); } } else { @@ -245,6 +240,11 @@ public class TileEntityMachineAssembler extends TileEntityMachineBase implements } } + @Override + public AudioWrapper createAudioLoop() { + return MainRegistry.proxy.getLoopedSound("hbm:block.assemblerOperate", xCoord, yCoord, zCoord, 1.0F, 1.0F); + } + private void updateConnections() { this.getBlockMetadata(); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java index 45701d1f7..fc4721ec7 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java @@ -155,8 +155,12 @@ public class TileEntityMachineChemplant extends TileEntityMachineBase implements if(isProgressing && volume > 0) { if(audio == null) { - audio = MainRegistry.proxy.getLoopedSound("hbm:block.chemplantOperate", xCoord, yCoord, zCoord, volume, 1.0F); + audio = this.createAudioLoop(); + audio.updateVolume(volume); audio.startSound(); + } else if(!audio.isPlaying()) { + audio = rebootAudio(audio); + audio.updateVolume(volume); } } else { @@ -168,6 +172,11 @@ public class TileEntityMachineChemplant extends TileEntityMachineBase implements } } } + + @Override + public AudioWrapper createAudioLoop() { + return MainRegistry.proxy.getLoopedSound("hbm:block.chemplantOperate", xCoord, yCoord, zCoord, 1.0F, 1.0F); + } @Override public void networkUnpack(NBTTagCompound nbt) { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java index df88f1c23..feadfe218 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java @@ -12,7 +12,6 @@ import com.hbm.inventory.FluidTank; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.items.ModItems; -import com.hbm.lib.Library; import com.hbm.lib.ModDamageSource; import com.hbm.packet.AuxElectricityPacket; import com.hbm.packet.LoopedSoundPacket; @@ -32,6 +31,7 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; +import net.minecraftforge.common.util.ForgeDirection; @Spaghetti("a") public class TileEntityMachineTurbofan extends TileEntityLoadedBase implements ISidedInventory, IEnergyGenerator, IFluidContainer, IFluidAcceptor { @@ -203,6 +203,7 @@ public class TileEntityMachineTurbofan extends TileEntityLoadedBase implements I return (power * i) / maxPower; } + @Spaghetti("HOOOOUUUGH") @Override public void updateEntity() { @@ -230,14 +231,22 @@ public class TileEntityMachineTurbofan extends TileEntityLoadedBase implements I if (!worldObj.isRemote) { - this.sendPower(worldObj, this.xCoord + 2, this.yCoord + 1, this.zCoord - 1, Library.POS_X); + /*this.sendPower(worldObj, this.xCoord + 2, this.yCoord + 1, this.zCoord - 1, Library.POS_X); this.sendPower(worldObj, this.xCoord + 2, this.yCoord + 1, this.zCoord + 1, Library.POS_X); this.sendPower(worldObj, this.xCoord + 1, this.yCoord + 1, this.zCoord + 2, Library.POS_Z); this.sendPower(worldObj, this.xCoord - 1, this.yCoord + 1, this.zCoord + 2, Library.POS_Z); this.sendPower(worldObj, this.xCoord - 2, this.yCoord + 1, this.zCoord + 1, Library.NEG_X); this.sendPower(worldObj, this.xCoord - 2, this.yCoord + 1, this.zCoord - 1, Library.NEG_X); this.sendPower(worldObj, this.xCoord - 1, this.yCoord + 1, this.zCoord - 2, Library.NEG_Z); - this.sendPower(worldObj, this.xCoord + 1, this.yCoord + 1, this.zCoord - 2, Library.NEG_Z); + this.sendPower(worldObj, this.xCoord + 1, this.yCoord + 1, this.zCoord - 2, Library.NEG_Z);*/ + + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata()); + ForgeDirection rot = dir.getRotation(ForgeDirection.DOWN); + + this.sendPower(worldObj, this.xCoord + rot.offsetX * 2, this.yCoord, this.zCoord + rot.offsetZ * 2, rot); + this.sendPower(worldObj, this.xCoord + rot.offsetX * 2 - dir.offsetX, this.yCoord, this.zCoord + rot.offsetZ * 2 - dir.offsetZ, rot); + this.sendPower(worldObj, this.xCoord - rot.offsetX * 2, this.yCoord, this.zCoord - rot.offsetZ * 2, rot.getOpposite()); + this.sendPower(worldObj, this.xCoord - rot.offsetX * 2 - dir.offsetX, this.yCoord, this.zCoord - rot.offsetZ * 2 - dir.offsetZ, rot.getOpposite()); //Tank Management tank.loadTank(0, 1, slots); @@ -251,7 +260,7 @@ public class TileEntityMachineTurbofan extends TileEntityLoadedBase implements I isRunning = true; - spin += 3; + spin += 20; spin = spin % 360; if(power > maxPower) @@ -268,7 +277,7 @@ public class TileEntityMachineTurbofan extends TileEntityLoadedBase implements I EntityTSmokeFX smoke = new EntityTSmokeFX(worldObj); smoke.posX = xCoord + 0.5 + (rand.nextGaussian() * 0.5); smoke.posY = yCoord + 1.5 + (rand.nextGaussian() * 0.5); - smoke.posZ = zCoord + 4.25; + smoke.posZ = zCoord + 3.25; smoke.motionX = rand.nextGaussian() * 0.3; smoke.motionY = rand.nextGaussian() * 0.3; smoke.motionZ = 2.5 + (rand.nextFloat() * 3.5); @@ -281,7 +290,7 @@ public class TileEntityMachineTurbofan extends TileEntityLoadedBase implements I EntitySSmokeFX smoke = new EntitySSmokeFX(worldObj); smoke.posX = xCoord + 0.5 + (rand.nextGaussian() * 0.5); smoke.posY = yCoord + 1.5 + (rand.nextGaussian() * 0.5); - smoke.posZ = zCoord + 4.25; + smoke.posZ = zCoord + 3.25; smoke.motionX = rand.nextGaussian() * 0.3; smoke.motionY = rand.nextGaussian() * 0.3; smoke.motionZ = 2.5 + (rand.nextFloat() * 3.5); @@ -291,7 +300,7 @@ public class TileEntityMachineTurbofan extends TileEntityLoadedBase implements I //Exhaust push List list = (List)worldObj.getEntitiesWithinAABBExcludingEntity(null, - AxisAlignedBB.getBoundingBox(posX - 1.5, posY, posZ + 4.5, posX + 1.5, posY + 3, posZ + 12)); + AxisAlignedBB.getBoundingBox(posX - 1.5, posY, posZ + 3.5, posX + 1.5, posY + 3, posZ + 12)); for(Entity e : list) { e.motionZ += 0.5; @@ -301,7 +310,7 @@ public class TileEntityMachineTurbofan extends TileEntityLoadedBase implements I //Intake pull list = (List)worldObj.getEntitiesWithinAABBExcludingEntity(null, - AxisAlignedBB.getBoundingBox(posX - 1.5, posY, posZ - 12, posX + 1.5, posY + 3, posZ - 4.5)); + AxisAlignedBB.getBoundingBox(posX - 1.5, posY, posZ - 12, posX + 1.5, posY + 3, posZ - 3.5)); for(Entity e : list) { e.motionZ += 0.5; @@ -309,7 +318,7 @@ public class TileEntityMachineTurbofan extends TileEntityLoadedBase implements I //Intake kill list = (List)worldObj.getEntitiesWithinAABBExcludingEntity(null, - AxisAlignedBB.getBoundingBox(posX - 1.5, posY, posZ - 5.5, posX + 1.5, posY + 3, posZ - 4.5)); + AxisAlignedBB.getBoundingBox(posX - 1.5, posY, posZ - 4.5, posX + 1.5, posY + 3, posZ - 3.5)); for(Entity e : list) { e.attackEntityFrom(ModDamageSource.turbofan, 1000); @@ -320,7 +329,7 @@ public class TileEntityMachineTurbofan extends TileEntityLoadedBase implements I EntityTSmokeFX smoke = new EntityTSmokeFX(worldObj); smoke.posX = xCoord + 0.5 + (rand.nextGaussian() * 0.5); smoke.posY = yCoord + 1.5 + (rand.nextGaussian() * 0.5); - smoke.posZ = zCoord - 4.25; + smoke.posZ = zCoord - 3.25; smoke.motionX = rand.nextGaussian() * 0.3; smoke.motionY = rand.nextGaussian() * 0.3; smoke.motionZ = -2.5 - (rand.nextFloat() * 3.5); @@ -333,7 +342,7 @@ public class TileEntityMachineTurbofan extends TileEntityLoadedBase implements I EntitySSmokeFX smoke = new EntitySSmokeFX(worldObj); smoke.posX = xCoord + 0.5 + (rand.nextGaussian() * 0.5); smoke.posY = yCoord + 1.5 + (rand.nextGaussian() * 0.5); - smoke.posZ = zCoord - 4.25; + smoke.posZ = zCoord - 3.25; smoke.motionX = rand.nextGaussian() * 0.3; smoke.motionY = rand.nextGaussian() * 0.3; smoke.motionZ = -2.5 - (rand.nextFloat() * 3.5); @@ -343,7 +352,7 @@ public class TileEntityMachineTurbofan extends TileEntityLoadedBase implements I //Exhaust push List list = (List)worldObj.getEntitiesWithinAABBExcludingEntity(null, - AxisAlignedBB.getBoundingBox(posX - 1.5, posY, posZ - 12, posX + 1.5, posY + 3, posZ - 4.5)); + AxisAlignedBB.getBoundingBox(posX - 1.5, posY, posZ - 12, posX + 1.5, posY + 3, posZ - 3.5)); for(Entity e : list) { e.motionZ -= 0.5; @@ -353,7 +362,7 @@ public class TileEntityMachineTurbofan extends TileEntityLoadedBase implements I //Intake pull list = (List)worldObj.getEntitiesWithinAABBExcludingEntity(null, - AxisAlignedBB.getBoundingBox(posX - 1.5, posY, posZ + 4.5, posX + 1.5, posY + 3, posZ + 12)); + AxisAlignedBB.getBoundingBox(posX - 1.5, posY, posZ + 3.5, posX + 1.5, posY + 3, posZ + 12)); for(Entity e : list) { e.motionZ -= 0.5; @@ -361,7 +370,7 @@ public class TileEntityMachineTurbofan extends TileEntityLoadedBase implements I //Intake kill list = (List)worldObj.getEntitiesWithinAABBExcludingEntity(null, - AxisAlignedBB.getBoundingBox(posX - 1.5, posY, posZ + 4.5, posX + 1.5, posY + 3, posZ + 5.5)); + AxisAlignedBB.getBoundingBox(posX - 1.5, posY, posZ + 3.5, posX + 1.5, posY + 3, posZ + 4.5)); for(Entity e : list) { e.attackEntityFrom(ModDamageSource.turbofan, 1000); @@ -370,7 +379,7 @@ public class TileEntityMachineTurbofan extends TileEntityLoadedBase implements I if(meta == 4) { if(afterburner == 0 && rand.nextInt(3) == 0) { EntityTSmokeFX smoke = new EntityTSmokeFX(worldObj); - smoke.posX = xCoord + 4.25; + smoke.posX = xCoord + 3.25; smoke.posY = yCoord + 1.5 + (rand.nextGaussian() * 0.5); smoke.posZ = zCoord + 0.5 + (rand.nextGaussian() * 0.5); smoke.motionX = 2.5 + (rand.nextFloat() * 3.5); @@ -383,7 +392,7 @@ public class TileEntityMachineTurbofan extends TileEntityLoadedBase implements I for(int i = 0; i < afterburner * 5; i++) if(afterburner > 0 && rand.nextInt(2) == 0) { EntitySSmokeFX smoke = new EntitySSmokeFX(worldObj); - smoke.posX = xCoord + 4.25; + smoke.posX = xCoord + 3.25; smoke.posY = yCoord + 1.5 + (rand.nextGaussian() * 0.5); smoke.posZ = zCoord + 0.5 + (rand.nextGaussian() * 0.5); smoke.motionX = 2.5 + (rand.nextFloat() * 3.5); @@ -395,7 +404,7 @@ public class TileEntityMachineTurbofan extends TileEntityLoadedBase implements I //Exhaust push List list = (List)worldObj.getEntitiesWithinAABBExcludingEntity(null, - AxisAlignedBB.getBoundingBox(posX + 4.5, posY, posZ - 1.5, posX + 12, posY + 3, posZ + 1.5)); + AxisAlignedBB.getBoundingBox(posX + 3.5, posY, posZ - 1.5, posX + 12, posY + 3, posZ + 1.5)); for(Entity e : list) { e.motionX += 0.5; @@ -405,7 +414,7 @@ public class TileEntityMachineTurbofan extends TileEntityLoadedBase implements I //Intake pull list = (List)worldObj.getEntitiesWithinAABBExcludingEntity(null, - AxisAlignedBB.getBoundingBox(posX - 12, posY, posZ - 1.5, posX - 4.5, posY + 3, posZ + 1.5)); + AxisAlignedBB.getBoundingBox(posX - 12, posY, posZ - 1.5, posX - 3.5, posY + 3, posZ + 1.5)); for(Entity e : list) { e.motionX += 0.5; @@ -413,7 +422,7 @@ public class TileEntityMachineTurbofan extends TileEntityLoadedBase implements I //Intake kill list = (List)worldObj.getEntitiesWithinAABBExcludingEntity(null, - AxisAlignedBB.getBoundingBox(posX - 5.5, posY, posZ - 1.5, posX - 4.5, posY + 3, posZ + 1.5)); + AxisAlignedBB.getBoundingBox(posX - 4.5, posY, posZ - 1.5, posX - 3.5, posY + 3, posZ + 1.5)); for(Entity e : list) { e.attackEntityFrom(ModDamageSource.turbofan, 1000); @@ -422,7 +431,7 @@ public class TileEntityMachineTurbofan extends TileEntityLoadedBase implements I if(meta == 5) { if(afterburner == 0 && rand.nextInt(3) == 0) { EntityTSmokeFX smoke = new EntityTSmokeFX(worldObj); - smoke.posX = xCoord - 4.25; + smoke.posX = xCoord - 3.25; smoke.posY = yCoord + 1.5 + (rand.nextGaussian() * 0.5); smoke.posZ = zCoord + 0.5 + (rand.nextGaussian() * 0.5); smoke.motionX = -2.5 - (rand.nextFloat() * 3.5); @@ -435,7 +444,7 @@ public class TileEntityMachineTurbofan extends TileEntityLoadedBase implements I for(int i = 0; i < afterburner * 5; i++) if(afterburner > 0 && rand.nextInt(2) == 0) { EntitySSmokeFX smoke = new EntitySSmokeFX(worldObj); - smoke.posX = xCoord - 4.25; + smoke.posX = xCoord - 3.25; smoke.posY = yCoord + 1.5 + (rand.nextGaussian() * 0.5); smoke.posZ = zCoord + 0.5 + (rand.nextGaussian() * 0.5); smoke.motionX = -2.5 - (rand.nextFloat() * 3.5); @@ -447,7 +456,7 @@ public class TileEntityMachineTurbofan extends TileEntityLoadedBase implements I //Exhaust push List list = (List)worldObj.getEntitiesWithinAABBExcludingEntity(null, - AxisAlignedBB.getBoundingBox(posX - 12, posY, posZ - 1.5, posX - 4.5, posY + 3, posZ + 1.5)); + AxisAlignedBB.getBoundingBox(posX - 12, posY, posZ - 1.5, posX - 3.5, posY + 3, posZ + 1.5)); for(Entity e : list) { e.motionX -= 0.5; @@ -457,7 +466,7 @@ public class TileEntityMachineTurbofan extends TileEntityLoadedBase implements I //Intake pull list = (List)worldObj.getEntitiesWithinAABBExcludingEntity(null, - AxisAlignedBB.getBoundingBox(posX + 4.5, posY, posZ - 1.5, posX + 12, posY + 3, posZ + 1.5)); + AxisAlignedBB.getBoundingBox(posX + 3.5, posY, posZ - 1.5, posX + 12, posY + 3, posZ + 1.5)); for(Entity e : list) { e.motionX -= 0.5; @@ -465,7 +474,7 @@ public class TileEntityMachineTurbofan extends TileEntityLoadedBase implements I //Intake kill list = (List)worldObj.getEntitiesWithinAABBExcludingEntity(null, - AxisAlignedBB.getBoundingBox(posX + 4.5, posY, posZ - 1.5, posX + 5.5, posY + 3, posZ + 1.5)); + AxisAlignedBB.getBoundingBox(posX + 3.5, posY, posZ - 1.5, posX + 4.5, posY + 3, posZ + 1.5)); for(Entity e : list) { e.attackEntityFrom(ModDamageSource.turbofan, 1000); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntitySoyuzLauncher.java b/src/main/java/com/hbm/tileentity/machine/TileEntitySoyuzLauncher.java index f8b6870a9..6407e568e 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntitySoyuzLauncher.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntitySoyuzLauncher.java @@ -106,9 +106,11 @@ public class TileEntitySoyuzLauncher extends TileEntityMachineBase implements IS } else if(countdown > 0) { if(audio == null) { - audio = MainRegistry.proxy.getLoopedSound("hbm:block.soyuzReady", xCoord, yCoord, zCoord, 1.0F, 1.0F); + audio = this.createAudioLoop(); audio.updateVolume(100); audio.startSound(); + } else if(!audio.isPlaying()) { + audio = rebootAudio(audio); } countdown--; @@ -132,6 +134,11 @@ public class TileEntitySoyuzLauncher extends TileEntityMachineBase implements IS } } + @Override + public AudioWrapper createAudioLoop() { + return MainRegistry.proxy.getLoopedSound("hbm:block.soyuzReady", xCoord, yCoord, zCoord, 1.0F, 1.0F); + } + public void onChunkUnload() { if(audio != null) { diff --git a/src/main/resources/assets/hbm/textures/models/machines/turbofan.png b/src/main/resources/assets/hbm/textures/models/machines/turbofan.png index d51b70aca0f64d938f98527d1f585d2f546617cc..2060b79eb955db4fef5723ac8ddd877a4ec0a1e6 100644 GIT binary patch literal 4370 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 literal 2038 zcmZ8i4LFl)AHO$dGjEK>If=&PWN#hB;^bpzmTw2Unj=ZWA$20DbxC+wof46JHs4Lj zdh=Zx64t6EL?5J&`AU?nMnjW1yiawy-s^hr>w50{dH&b``u+aD-~HVGJB{w+whF6{ z1put_aChDg00ITS7h=@l`6m|(LwHeT(LDSx@JPgjrviYk@o;wXi!1ps)Ry_m6({%@ z8lx4%KHh&-Q^siaW(p2qZEFn$b=--K%`p%u<8Dp1)xDN<4HcO|P;QmVkIn!7nei@; zXe!GQ`^sc1XoGOCYv;RME*bBQZJKhnOQV*GQ=X-gvr~{~4rea{+6%O1tmKVN-ucm# z&UP;d0RAa12ssHq70)BFrY}2++I=oEi&skHt)XP)vybujk_Z#T8@=ZUzq+n@J2_c- zRcfb-3YRV~Q|68FX?g7RMRR@O1myIyyMr z-QCxNm;0giDUt5hk}$rL+kKsIY-kqAXcxTT@KzVA^o}GKx7rr-_Qbm6kWM<$sr*j7 z(8x?M+%tdWk-5n{={IkEKdoO)eQueU;n@uqb!H+eRFN3o^2CRl~Ypz{CNgJl&yzd9J-iRYKJ!7A(L50=q8#b0V; zzNVbA2yPE3);Y+nF>q=`(ad^y)*bTt4B&lj^FX zGm+X`VyCpRwlm>c30ow|ckCc?mq3E|0Thy_rD>oKHx)rvKy<#-k zuX6MZmo3R66=>t>hE^!+6EwvB8p?Ab!?Lv?Av=%ttm&rwNwSmMa6zrK@%NOw1L(&e zkd=AvPxsXca!Cc*Bx;>B$9zmyA+_5bV#KgCF$-uu@L}=UL5}(RxIN33!^<|yO2YLz zTL!JIbYbR=0WQ8sz|Gt5>}>atqCdQ}c5a}L+|`$ejZGD{=pboz6$%}7Cq$TOQmSX7 zFG3q1<0n7Od!v|KGl<{x?$eRE%YR$Hsfz5MDc>BFcvrg+DZyaciiWF9tx!?rBZ9go z!@l9ww<;Pw=X0XhW>-ZgzG{_-`Vju3bLH#rfJf-GT|VUvnohT`Cl$$O_$ynX%%hAK z$U>w)(agD?@P2KKKDneM0yWxiWu3cD49=kW*i$_nZC2uf`i`55}NZO3i@vBhQI7ir;tF@w| zdWx;KW}Asl4C2M&1Q|FqWW9v@zb`6YV3XL>A(x`8NPnr(<=a7YC>Jo`jx z*-vvm)~RE&0mnS5mEd3?v`h_Z*rAZTdb-qm;LQ$n!0%U1|A2<(BtsDt7-7p#xCS!OwCWjWD8_Ff5N zIh0U9S|L&>Cc3i%jy*7W+U3Q|J(;Mndk6z9?H%7rk-hhr(e7z4tRlBt!&?PhuTa3F zi;Dn0*zC>lcVmGP=OG(7et%riFgu^~(SUGtAW6ef$frZV5?0U|)H!MD&y=U;b8zX? zlct0D92g<(b1(iI5Kf&%@Xvg^(0u)DA2f3oM%Dg?3fL`LK=dW)j|tOr85=G3FbzXw z+k#k1y9L+pvS2S^9)5JRaJ7;G@(-zFJU&4&`VHHApn$DqpA93)k<}e6a11^_M3{#XTHrGuV6hnmk8sqec0Vn<3l2!1J`Ims1AUrC_jn zhwC&g6~^XITOfCvbp9FmAKE`|jG3*)gsFLc6ml|Pd<^^O5_%6$=3y(177ZcN|R<@7=B_Dg}PDDL(-5=g5r zL$WtL;(-utD>(9!g7Rk;MFbrq&3*-jNvV1P|0Dbdu~A96OUcr)RD@2%WuCM5qI|7V z8_)J^C_`qs$3ocZTjaC(9J(D`)h6MT3Z1lwcj#)f6NpbYKUe%e=7U<_+tZ<-^Hl5z z`Wt;(i$K5a^T_O K<6KJ%Iq_f2n6UW( diff --git a/src/main/resources/assets/hbm/textures/models/machines/turbofan_afterburner.png b/src/main/resources/assets/hbm/textures/models/machines/turbofan_afterburner.png new file mode 100644 index 0000000000000000000000000000000000000000..a2be9657e1776f1b5f78080b9b44639fb955d2f8 GIT binary patch literal 407 zcmV;I0cie-P)rlENYgf~3h7i^11u zg3iqDCbtTi@sPPEMsOlHrYuV>rQFO5ApihhuE4Y04vbwdkW!kTw@#L2?m))a?z|8J zLWn=m;qM0q%RT^uWgmdSvJb#u*#}^->;o`Z_5m0y`v44kQcU{WV~krdlcW45R^oQVK%If3dt{QqRT_u;^9eAn)0Slu|QxHNFcZ zggm{#$@1gz(8Dlbde_ewLy{!Asw&fQII%Y|9dgcfUDt~bC&Qd`-87BWsbhfSI9jdX z?f0?)UO5BjiGiPv&b~+~wdyej?EACHYqpI`e`l5>oBrl0iULRf>&18W2fU)gyY`;} zuAe7)o-aCW+xF;rvjy%=PLMSm_~gAj&)&*x^9^UY7dbJdPxb%+002ovPDHLkV1fx3 Bwj2Ne literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/machines/turbofan_back.png b/src/main/resources/assets/hbm/textures/models/machines/turbofan_back.png index 9829eecde9ac5b37d69c0caf559b50cf5baaa117..1c9313b6443c226ff6d29a61230e61c921930eb6 100644 GIT binary patch delta 436 zcmV;l0Zaa*0^I|UGk*b;NklAs=7>2*J3Wb6Mhf2A@!6Fp8=wIki;dZzF z0-;mq4$hr~{sOn|fp&20TE~JQ)Zw6^)gD47hwIYXTymGYOM*Cj&lL20^F8mK2K2xY zN~vIsf$#g$>zs2Sgh0hLFdm>Hcc5xQ0DyzMfjUsx9#k$Kh=0ncTq3A!4=NWAL}gSi z5mdGZm5T?WGAfq{D%*p~#RE|pl}lv*m6d^mURV5GKRms9E;mvJ&iTgpK_}&KwKfK3 zDi3;HG3OfyS8JHg7BHPH;%h~x-GoNH1}(n|?}i)g|1RrxP{gjKHM#!B?zEfR>qMWa ziIOM-8}*uUaeo}AgWdA0#y}lXAf;49Q3Nj^d^-iDR0Khg>KcE((t)Gf{_oj427nW3 z(baih+}uA(JsNlUD_rIsRz0CBM&;$_w^LxI@_&DNMi*zP9<>wZ>2J3WDcAn8@ND{v z^ZXV8V@&xTAp|P!{T%_oF2Bpp{T-f46D3KVtGnw9Xd=A|YLpQ|iJ z|JU~z+qK%y&rk?qc@+0ojrE$#gF?xd%zb+O>>|6*=y(a6PzW>tMMgM*l|IMlsZIFven-=aBQzmxt{${>ziD}=8 zKi|^NnYjMSdgG%v-~PO{I+y8u(EkIR8Ml?c&vcJ}`MUn(b7ocJYnN6VoL*h5cYpaG toj Date: Sun, 22 May 2022 18:34:01 +0200 Subject: [PATCH 18/80] fixed cart crafting --- src/main/java/com/hbm/crafting/ToolRecipes.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/hbm/crafting/ToolRecipes.java b/src/main/java/com/hbm/crafting/ToolRecipes.java index 107db72cd..71aec5e9d 100644 --- a/src/main/java/com/hbm/crafting/ToolRecipes.java +++ b/src/main/java/com/hbm/crafting/ToolRecipes.java @@ -7,6 +7,8 @@ import com.hbm.inventory.fluid.Fluids; import static com.hbm.inventory.OreDictManager.*; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemBattery; +import com.hbm.items.tool.ItemModMinecart; +import com.hbm.items.tool.ItemModMinecart.EnumCartBase; import com.hbm.items.tool.ItemModMinecart.EnumMinecart; import com.hbm.main.CraftingManager; @@ -147,8 +149,8 @@ public class ToolRecipes { CraftingManager.addShapelessAuto(new ItemStack(ModItems.bobmazon_tools), new Object[] { Items.book, Items.gold_nugget, KEY_GREEN }); //Carts - CraftingManager.addRecipeAuto(DictFrame.fromOne(ModItems.cart, EnumMinecart.EMPTY), new Object[] { "P P", "IPI", 'P', STEEL.plate(), 'I', STEEL.ingot() }); - CraftingManager.addRecipeAuto(DictFrame.fromOne(ModItems.cart, EnumMinecart.DESTROYER), new Object[] { "S S", "BLB", "SCS", 'S', STEEL.ingot(), 'B', ModItems.blades_steel, 'L', Fluids.LAVA.getDict(1000), 'C', DictFrame.fromOne(ModItems.cart, EnumMinecart.EMPTY) }); + CraftingManager.addRecipeAuto(ItemModMinecart.createCartItem(EnumCartBase.STEEL, EnumMinecart.EMPTY), new Object[] { "P P", "IPI", 'P', STEEL.plate(), 'I', STEEL.ingot() }); + CraftingManager.addRecipeAuto(ItemModMinecart.createCartItem(EnumCartBase.STEEL, EnumMinecart.DESTROYER), new Object[] { "S S", "BLB", "SCS", 'S', STEEL.ingot(), 'B', ModItems.blades_steel, 'L', Fluids.LAVA.getDict(1000), 'C', DictFrame.fromOne(ModItems.cart, EnumMinecart.EMPTY) }); net.minecraft.item.crafting.CraftingManager.getInstance().addRecipe(DictFrame.fromOne(ModItems.cart, EnumMinecart.CRATE), new Object[] { "C", "S", 'C', ModBlocks.crate_steel, 'S', Items.minecart }).func_92100_c(); //Configged From e81b8b52ab06822b96ef0374c9e185df864136ba Mon Sep 17 00:00:00 2001 From: Doctor17-git <60807716+Doctor17-git@users.noreply.github.com> Date: Sun, 22 May 2022 20:18:20 +0300 Subject: [PATCH 19/80] Updated ru_RU.lang updated russian localization --- src/main/resources/assets/hbm/lang/ru_RU.lang | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/main/resources/assets/hbm/lang/ru_RU.lang b/src/main/resources/assets/hbm/lang/ru_RU.lang index db6561ab6..baa73eb44 100644 --- a/src/main/resources/assets/hbm/lang/ru_RU.lang +++ b/src/main/resources/assets/hbm/lang/ru_RU.lang @@ -916,6 +916,9 @@ geiger.playerRes=Радиационная защита игрока: geiger.title=СЧЁТЧИК ГЕЙГЕРА geiger.title.dosimeter=ДОЗИМЕТР +flare.ignition=Сжигание +flare.valve=Пропускной клапан + hadron.analysis=Анализ... hadron.buttonOn=Камера анализа (если есть) включена hadron.buttonOff=Камера анализа выключена @@ -1407,6 +1410,7 @@ container.miningDrill=Автоматический горный бур tile.drill_pipe.name=Бур tile.machine_assembler.name=Сборочная машина container.assembler=Сборочная машина +tile.machine_assemfac.name=Сборочный завод tile.machine_chemplant.name=Химическая установка container.chemplant=Химическая установка tile.machine_chemfac.name=Химический завод @@ -4076,6 +4080,10 @@ item.bismuth_boots.name=Сандали из висмута item.bismuth_helmet.name=Головной убор из висмута item.bismuth_legs.name=Наколенники из висмута item.bismuth_plate.name=Наплечники, ожерелье и набедренная повязка из висмута +item.dieselsuit_boots.name=Высокие каблуки с дизельным двигателем +item.dieselsuit_helmet.name=Головной датчик окружающей среды с дизельным двигателем +item.dieselsuit_legs.name=Сервоприводы для ног с дизельным приводом +item.dieselsuit_plate.name=Кибернетика с дизельным двигателем tile.mush.name=Светящийся гриб tile.waste_mycelium.name=Светящийся мицелий From 93dee8ac82343e5ce94073c7af939e46015681c8 Mon Sep 17 00:00:00 2001 From: Bob Date: Mon, 23 May 2022 18:37:41 +0200 Subject: [PATCH 20/80] fixes and fixes --- .../java/com/hbm/inventory/fluid/Fluids.java | 2 +- .../gui/GUIScreenTemplateFolder.java | 2 +- .../machine/TileEntityMachineAssemfac.java | 65 ++++++++++++++++++- .../com/hbm/world/dungeon/DesertAtom003.java | 4 +- 4 files changed, 68 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/hbm/inventory/fluid/Fluids.java b/src/main/java/com/hbm/inventory/fluid/Fluids.java index 36fbaaf62..8351de1f0 100644 --- a/src/main/java/com/hbm/inventory/fluid/Fluids.java +++ b/src/main/java/com/hbm/inventory/fluid/Fluids.java @@ -137,7 +137,7 @@ public class Fluids { GAS = new FlammableOilGas( "GAS", 0xfffeed, 1, 4, 1, EnumSymbol.NONE).setHeatEnergy(10_000); PETROLEUM = new FlammableOilGas( "PETROLEUM", 0x7cb7c9, 1, 4, 1, EnumSymbol.NONE).setHeatEnergy(25_000); LPG = new Fuel( "LPG", 0x4747EA, 1, 3, 1, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.HIGH, 450_000).setHeatEnergy(200_000); - BIOGAS = new FlammableOilGas( "BIOGAS", 0xbfd37c, 1, 4, 1, EnumSymbol.NONE); + BIOGAS = new FlammableOilGas( "BIOGAS", 0xbfd37c, 1, 4, 1, EnumSymbol.NONE).setHeatEnergy(25_000); BIOFUEL = new Fuel( "BIOFUEL", 0xeef274, 1, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.HIGH, 400_000).setHeatEnergy(150_000).addContainers(0x9EB623, ExtContainer.CANISTER); NITAN = new Fuel( "NITAN", 0x8018ad, 2, 4, 1, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.HIGH, 5_000_000).setHeatEnergy(2_000_000).addContainers(0x6B238C, ExtContainer.CANISTER); UF6 = new RadioactiveGas( "UF6", 0xD1CEBE, 4, 0, 2, EnumSymbol.RADIATION).addTraits(FluidTrait.CORROSIVE); diff --git a/src/main/java/com/hbm/inventory/gui/GUIScreenTemplateFolder.java b/src/main/java/com/hbm/inventory/gui/GUIScreenTemplateFolder.java index 12aba8314..89f9bf1bb 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIScreenTemplateFolder.java +++ b/src/main/java/com/hbm/inventory/gui/GUIScreenTemplateFolder.java @@ -81,7 +81,7 @@ public class GUIScreenTemplateFolder extends GuiScreen { ComparableStack comp = AssemblerRecipes.recipeList.get(i); if(AssemblerRecipes.hidden.get(comp) == null) { - allStacks.add(ItemAssemblyTemplate.writeType(new ItemStack(ModItems.assembly_template), comp)); + allStacks.add(ItemAssemblyTemplate.writeType(new ItemStack(ModItems.assembly_template, 1, i), comp)); } } // Chemistry Templates diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemfac.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemfac.java index 6cf009d19..54411c4a3 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemfac.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemfac.java @@ -1,12 +1,18 @@ package com.hbm.tileentity.machine; +import java.util.ArrayList; +import java.util.List; import java.util.Random; import com.hbm.blocks.BlockDummyable; +import com.hbm.interfaces.IFluidAcceptor; +import com.hbm.interfaces.IFluidSource; import com.hbm.inventory.FluidTank; import com.hbm.inventory.UpgradeManager; +import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; +import com.hbm.lib.Library; import com.hbm.util.fauxpointtwelve.DirPos; import api.hbm.fluid.IFluidStandardTransceiver; @@ -17,7 +23,7 @@ import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.ChunkCoordinates; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineAssemfac extends TileEntityMachineAssemblerBase implements IFluidStandardTransceiver { +public class TileEntityMachineAssemfac extends TileEntityMachineAssemblerBase implements IFluidStandardTransceiver, IFluidAcceptor, IFluidSource { public AssemblerArm[] arms; @@ -71,6 +77,10 @@ public class TileEntityMachineAssemfac extends TileEntityMachineAssemblerBase im this.sendFluid(steam.getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); } + if(steam.getFill() > 0) { + this.fillFluidInit(steam.getTankType()); + } + NBTTagCompound data = new NBTTagCompound(); data.setLong("power", this.power); data.setIntArray("progress", this.progress); @@ -384,4 +394,57 @@ public class TileEntityMachineAssemfac extends TileEntityMachineAssemblerBase im public FluidTank[] getReceivingTanks() { return new FluidTank[] { water }; } + + @Override + public void setFillForSync(int fill, int index) { } + + @Override + public void setFluidFill(int fill, FluidType type) { + if(type == water.getTankType()) water.setFill(fill); + if(type == steam.getTankType()) steam.setFill(fill); + } + + @Override + public void setTypeForSync(FluidType type, int index) { } + + @Override + public int getFluidFill(FluidType type) { + if(type == water.getTankType()) return water.getFill(); + if(type == steam.getTankType()) return steam.getFill(); + return 0; + } + + @Override + public void fillFluidInit(FluidType type) { + for(DirPos pos : getConPos()) { + this.fillFluid(pos.getX(), pos.getY(), pos.getZ(), this.getTact(), type); + } + } + + @Override + public void fillFluid(int x, int y, int z, boolean newTact, FluidType type) { + Library.transmitFluid(x, y, z, newTact, this, worldObj, type); + } + + @Override + public boolean getTact() { + return worldObj.getTotalWorldTime() % 2 == 0; + } + + private List list = new ArrayList(); + + @Override + public List getFluidList(FluidType type) { + return type == steam.getTankType() ? this.list : new ArrayList(); + } + + @Override + public void clearFluidList(FluidType type) { + this.list.clear(); + } + + @Override + public int getMaxFluidFill(FluidType type) { + return type == water.getTankType() ? water.getMaxFill() : 0; + } } diff --git a/src/main/java/com/hbm/world/dungeon/DesertAtom003.java b/src/main/java/com/hbm/world/dungeon/DesertAtom003.java index f04ccb06d..d00d76cfc 100644 --- a/src/main/java/com/hbm/world/dungeon/DesertAtom003.java +++ b/src/main/java/com/hbm/world/dungeon/DesertAtom003.java @@ -367,8 +367,8 @@ public class DesertAtom003 world.setBlock(x + 20, y + 4, z + 7, Blocks.vine, 4, 3); world.setBlock(x + 23, y + 4, z + 7, Library.getRandomConcrete(), 0, 3); world.setBlock(x + 25, y + 4, z + 7, Block8, 3, 3); - world.setBlock(x + 26, y + 4, z + 7, Block19, 3, 3); - world.setBlock(x + 27, y + 4, z + 7, Block19, 3, 3); + world.setBlock(x + 26, y + 4, z + 7, Block19, 12, 3); + world.setBlock(x + 27, y + 4, z + 7, Block19, 12, 3); world.setBlock(x + 28, y + 4, z + 7, Block20, 3, 3); TileEntity tank0 = world.getTileEntity(x + 28, y + 4, z + 7); if(tank0 instanceof TileEntityMachineUF6Tank) From 625b0c70ab50b7622e03e447de1aaa8055c7b9f3 Mon Sep 17 00:00:00 2001 From: Bob Date: Mon, 23 May 2022 19:19:31 +0200 Subject: [PATCH 21/80] dial for turning off meltdowns --- .../hbm/inventory/gui/GUIScreenTemplateFolder.java | 3 --- .../com/hbm/tileentity/machine/rbmk/RBMKDials.java | 12 ++++++++++++ .../machine/rbmk/TileEntityRBMKCooler.java | 2 -- .../tileentity/machine/rbmk/TileEntityRBMKRod.java | 2 +- 4 files changed, 13 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/hbm/inventory/gui/GUIScreenTemplateFolder.java b/src/main/java/com/hbm/inventory/gui/GUIScreenTemplateFolder.java index 89f9bf1bb..d0041b0e7 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIScreenTemplateFolder.java +++ b/src/main/java/com/hbm/inventory/gui/GUIScreenTemplateFolder.java @@ -16,7 +16,6 @@ import com.hbm.inventory.recipes.ChemplantRecipes.ChemRecipe; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemAssemblyTemplate; import com.hbm.items.machine.ItemCassette; -import com.hbm.items.machine.ItemChemistryTemplate; import com.hbm.items.machine.ItemStamp; import com.hbm.items.machine.ItemStamp.StampType; import com.hbm.lib.RefStrings; @@ -333,7 +332,5 @@ public class GUIScreenTemplateFolder extends GuiScreen { updateButtons(); } } - } - } diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/RBMKDials.java b/src/main/java/com/hbm/tileentity/machine/rbmk/RBMKDials.java index ba6bd2f36..2d8f005e0 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/RBMKDials.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/RBMKDials.java @@ -28,6 +28,7 @@ public class RBMKDials { public static final String KEY_REASIM_MOD = "dialReasimOutputMod"; public static final String KEY_REASIM_BOILERS = "dialReasimBoilers"; public static final String KEY_REASIM_BOILER_SPEED = "dialReasimBoilerSpeed"; + public static final String KEY_DISABLE_MELTDOWNS = "dialEnableMeltdowns"; public static void createDials(World world) { GameRules rules = world.getGameRules(); @@ -51,6 +52,7 @@ public class RBMKDials { rules.setOrCreateGameRule(KEY_REASIM_MOD, "1.0"); rules.setOrCreateGameRule(KEY_REASIM_BOILERS, "false"); rules.setOrCreateGameRule(KEY_REASIM_BOILER_SPEED, "0.05"); + rules.setOrCreateGameRule(KEY_DISABLE_MELTDOWNS, "false"); } } @@ -206,4 +208,14 @@ public class RBMKDials { public static double getReaSimBoilerSpeed(World world) { return MathHelper.clamp_double(GameRuleHelper.parseDouble(world.getGameRules().getGameRuleStringValue(KEY_REASIM_BOILER_SPEED), 0.05D), 0.0D, 1.0D); } + + /** + * Whether or not fuel columns should initiate a meltdown when overheating + * The method is in reverse because the default for older worlds will be 'false' + * @param world + * @return + */ + public static boolean getMeltdownsDisabled(World world) { + return world.getGameRules().getGameRuleBooleanValue(KEY_DISABLE_MELTDOWNS); + } } diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKCooler.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKCooler.java index 6fc913b2c..65219f2f8 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKCooler.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKCooler.java @@ -1,6 +1,5 @@ package com.hbm.tileentity.machine.rbmk; -import java.util.ArrayList; import java.util.List; import com.hbm.interfaces.IFluidAcceptor; @@ -11,7 +10,6 @@ import com.hbm.tileentity.machine.rbmk.TileEntityRBMKConsole.ColumnType; import net.minecraft.entity.Entity; import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.DamageSource; diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java index b8086e6de..949292459 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java @@ -64,7 +64,7 @@ public class TileEntityRBMKRod extends TileEntityRBMKSlottedBase implements IRBM rod.updateHeat(worldObj, slots[0], 1.0D); this.heat += rod.provideHeat(worldObj, slots[0], heat, 1.0D); - if(this.heat > this.maxHeat()) { + if(this.heat > this.maxHeat() && !RBMKDials.getMeltdownsDisabled(worldObj)) { this.meltdown(); return; } From 7e7d0623240dfccbfe2a2a299bc90a415eb8c92a Mon Sep 17 00:00:00 2001 From: Bob Date: Mon, 23 May 2022 23:15:12 +0200 Subject: [PATCH 22/80] funnier minecarts --- .../java/com/hbm/crafting/ToolRecipes.java | 10 +- .../cart/EntityMinecartContainerBase.java | 18 +- .../hbm/entity/cart/EntityMinecartCrate.java | 4 +- .../entity/cart/EntityMinecartDestroyer.java | 25 +- .../hbm/entity/cart/EntityMinecartNTM.java | 89 ++++++ .../hbm/entity/cart/EntityMinecartOre.java | 44 +-- .../hbm/entity/cart/EntityMinecartPowder.java | 35 +++ .../hbm/entity/cart/EntityMinecartSemtex.java | 37 +++ .../com/hbm/items/tool/ItemModMinecart.java | 18 +- src/main/java/com/hbm/main/ClientProxy.java | 3 +- src/main/java/com/hbm/main/MainRegistry.java | 2 + .../java/com/hbm/main/ResourceManager.java | 4 + .../hbm/render/entity/item/RenderNeoCart.java | 40 ++- .../hbm/models/vehicles/cart_powder.obj | 266 ++++++++++++++++++ .../assets/hbm/textures/items/cart.wood.png | Bin 477 -> 531 bytes .../textures/items/cart_overlay.semtex.png | Bin 0 -> 316 bytes 16 files changed, 507 insertions(+), 88 deletions(-) create mode 100644 src/main/java/com/hbm/entity/cart/EntityMinecartNTM.java create mode 100644 src/main/java/com/hbm/entity/cart/EntityMinecartPowder.java create mode 100644 src/main/java/com/hbm/entity/cart/EntityMinecartSemtex.java create mode 100644 src/main/resources/assets/hbm/models/vehicles/cart_powder.obj create mode 100644 src/main/resources/assets/hbm/textures/items/cart_overlay.semtex.png diff --git a/src/main/java/com/hbm/crafting/ToolRecipes.java b/src/main/java/com/hbm/crafting/ToolRecipes.java index 71aec5e9d..903e0cacc 100644 --- a/src/main/java/com/hbm/crafting/ToolRecipes.java +++ b/src/main/java/com/hbm/crafting/ToolRecipes.java @@ -149,8 +149,16 @@ public class ToolRecipes { CraftingManager.addShapelessAuto(new ItemStack(ModItems.bobmazon_tools), new Object[] { Items.book, Items.gold_nugget, KEY_GREEN }); //Carts + CraftingManager.addRecipeAuto(ItemModMinecart.createCartItem(EnumCartBase.WOOD, EnumMinecart.EMPTY), new Object[] { "P P", "WPW", 'P',KEY_SLAB, 'W', KEY_PLANKS }); CraftingManager.addRecipeAuto(ItemModMinecart.createCartItem(EnumCartBase.STEEL, EnumMinecart.EMPTY), new Object[] { "P P", "IPI", 'P', STEEL.plate(), 'I', STEEL.ingot() }); - CraftingManager.addRecipeAuto(ItemModMinecart.createCartItem(EnumCartBase.STEEL, EnumMinecart.DESTROYER), new Object[] { "S S", "BLB", "SCS", 'S', STEEL.ingot(), 'B', ModItems.blades_steel, 'L', Fluids.LAVA.getDict(1000), 'C', DictFrame.fromOne(ModItems.cart, EnumMinecart.EMPTY) }); + CraftingManager.addShapelessAuto(ItemModMinecart.createCartItem(EnumCartBase.PAINTED, EnumMinecart.EMPTY), new Object[] { ItemModMinecart.createCartItem(EnumCartBase.STEEL, EnumMinecart.EMPTY), KEY_RED }); + + for(EnumCartBase base : EnumCartBase.values()) { + + if(EnumMinecart.DESTROYER.supportsBase(base)) CraftingManager.addRecipeAuto(ItemModMinecart.createCartItem(base, EnumMinecart.DESTROYER), new Object[] { "S S", "BLB", "SCS", 'S', STEEL.ingot(), 'B', ModItems.blades_steel, 'L', Fluids.LAVA.getDict(1000), 'C', ItemModMinecart.createCartItem(base, EnumMinecart.EMPTY) }); + if(EnumMinecart.POWDER.supportsBase(base)) CraftingManager.addRecipeAuto(ItemModMinecart.createCartItem(base, EnumMinecart.POWDER), new Object[] { "PPP", "PCP", "PPP", 'P', Items.gunpowder, 'C', ItemModMinecart.createCartItem(base, EnumMinecart.EMPTY) }); + if(EnumMinecart.SEMTEX.supportsBase(base)) CraftingManager.addRecipeAuto(ItemModMinecart.createCartItem(base, EnumMinecart.SEMTEX), new Object[] { "S", "C", 'S', ModBlocks.semtex, 'C', ItemModMinecart.createCartItem(base, EnumMinecart.EMPTY) }); + } net.minecraft.item.crafting.CraftingManager.getInstance().addRecipe(DictFrame.fromOne(ModItems.cart, EnumMinecart.CRATE), new Object[] { "C", "S", 'C', ModBlocks.crate_steel, 'S', Items.minecart }).func_92100_c(); //Configged diff --git a/src/main/java/com/hbm/entity/cart/EntityMinecartContainerBase.java b/src/main/java/com/hbm/entity/cart/EntityMinecartContainerBase.java index 226d28bf3..941b82c5b 100644 --- a/src/main/java/com/hbm/entity/cart/EntityMinecartContainerBase.java +++ b/src/main/java/com/hbm/entity/cart/EntityMinecartContainerBase.java @@ -1,6 +1,7 @@ package com.hbm.entity.cart; -import net.minecraft.entity.item.EntityMinecart; +import com.hbm.items.tool.ItemModMinecart.EnumCartBase; + import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; @@ -14,16 +15,16 @@ import net.minecraft.world.World; * @author hbm * */ -public abstract class EntityMinecartContainerBase extends EntityMinecart implements IInventory { +public abstract class EntityMinecartContainerBase extends EntityMinecartNTM implements IInventory { protected ItemStack[] slots = new ItemStack[this.getSizeInventory()]; - public EntityMinecartContainerBase(World p_i1712_1_) { - super(p_i1712_1_); + public EntityMinecartContainerBase(World world) { + super(world); } - public EntityMinecartContainerBase(World world, double x, double y, double z) { - super(world, x, y, z); + public EntityMinecartContainerBase(World world, double x, double y, double z, EnumCartBase type) { + super(world, x, y, z, type); } @Override @@ -102,11 +103,6 @@ public abstract class EntityMinecartContainerBase extends EntityMinecart impleme public boolean isItemValidForSlot(int slot, ItemStack stack) { return true; } - - @Override - public int getMinecartType() { - return -1; - } @Override protected void writeEntityToNBT(NBTTagCompound nbt) { diff --git a/src/main/java/com/hbm/entity/cart/EntityMinecartCrate.java b/src/main/java/com/hbm/entity/cart/EntityMinecartCrate.java index baa4cced9..8eaaff942 100644 --- a/src/main/java/com/hbm/entity/cart/EntityMinecartCrate.java +++ b/src/main/java/com/hbm/entity/cart/EntityMinecartCrate.java @@ -21,8 +21,8 @@ public class EntityMinecartCrate extends EntityMinecartContainerBase { super(world); } - public EntityMinecartCrate(World world, double x, double y, double z, ItemStack stack) { - super(world, x, y, z); + public EntityMinecartCrate(World world, double x, double y, double z, EnumCartBase type, ItemStack stack) { + super(world, x, y, z, type); if(stack.hasTagCompound()) { for(int i = 0; i < getSizeInventory(); i++) { setInventorySlotContents(i, ItemStack.loadItemStackFromNBT(stack.stackTagCompound.getCompoundTag("slot" + i))); diff --git a/src/main/java/com/hbm/entity/cart/EntityMinecartDestroyer.java b/src/main/java/com/hbm/entity/cart/EntityMinecartDestroyer.java index dedf4673d..49b43e6ff 100644 --- a/src/main/java/com/hbm/entity/cart/EntityMinecartDestroyer.java +++ b/src/main/java/com/hbm/entity/cart/EntityMinecartDestroyer.java @@ -8,8 +8,12 @@ import com.hbm.items.tool.ItemModMinecart; import com.hbm.items.tool.ItemModMinecart.EnumCartBase; import com.hbm.items.tool.ItemModMinecart.EnumMinecart; import com.hbm.main.MainRegistry; +import com.hbm.main.ResourceManager; +import com.hbm.render.entity.item.RenderNeoCart; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; import net.minecraft.entity.Entity; import net.minecraft.entity.item.EntityItem; @@ -25,8 +29,8 @@ public class EntityMinecartDestroyer extends EntityMinecartContainerBase { super(p_i1712_1_); } - public EntityMinecartDestroyer(World world, double x, double y, double z) { - super(world, x, y, z); + public EntityMinecartDestroyer(World world, double x, double y, double z, EnumCartBase type) { + super(world, x, y, z, type); } @Override @@ -122,19 +126,14 @@ public class EntityMinecartDestroyer extends EntityMinecartContainerBase { } @Override - public void killMinecart(DamageSource p_94095_1_) { - this.setDead(); - ItemStack itemstack = ItemModMinecart.createCartItem(EnumCartBase.STEEL, EnumMinecart.DESTROYER); - - if(this.func_95999_t() != null) { - itemstack.setStackDisplayName(this.func_95999_t()); - } - - this.entityDropItem(itemstack, 0.0F); + public ItemStack getCartItem() { + return ItemModMinecart.createCartItem(this.getBase(), EnumMinecart.DESTROYER); } @Override - public ItemStack getCartItem() { - return ItemModMinecart.createCartItem(EnumCartBase.STEEL, EnumMinecart.DESTROYER); + @SideOnly(Side.CLIENT) + public void renderSpecialContent(RenderNeoCart renderer) { + renderer.bindTexture(ResourceManager.cart_destroyer_tex); + ResourceManager.cart_destroyer.renderAll(); } } diff --git a/src/main/java/com/hbm/entity/cart/EntityMinecartNTM.java b/src/main/java/com/hbm/entity/cart/EntityMinecartNTM.java new file mode 100644 index 000000000..8071538bd --- /dev/null +++ b/src/main/java/com/hbm/entity/cart/EntityMinecartNTM.java @@ -0,0 +1,89 @@ +package com.hbm.entity.cart; + +import com.hbm.items.tool.ItemModMinecart.EnumCartBase; +import com.hbm.render.entity.item.RenderNeoCart; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.entity.Entity; +import net.minecraft.entity.item.EntityMinecart; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.DamageSource; +import net.minecraft.world.World; + +public abstract class EntityMinecartNTM extends EntityMinecart { + + public static final int cart_base_id = 23; + + public EntityMinecartNTM(World p_i1712_1_) { + super(p_i1712_1_); + } + + public EntityMinecartNTM(World world, double x, double y, double z, EnumCartBase type) { + super(world, x, y, z); + this.setBase(type); + } + + @Override + protected void entityInit() { + super.entityInit(); + this.dataWatcher.addObject(cart_base_id, new Integer(0)); //EnumCartBase + } + + public void setBase(EnumCartBase type) { + this.dataWatcher.updateObject(cart_base_id, type.ordinal()); + } + + public EnumCartBase getBase() { + return EnumCartBase.values()[this.dataWatcher.getWatchableObjectInt(cart_base_id)]; + } + + @Override + public int getMinecartType() { + return -1; + } + + @Override + public boolean canBeCollidedWith() { + return true; + } + + @Override + public AxisAlignedBB getCollisionBox(Entity entity) { + return entity.boundingBox; + } + + @Override + public AxisAlignedBB getBoundingBox() { + return this.boundingBox; + } + + @Override + public void killMinecart(DamageSource p_94095_1_) { + this.setDead(); + ItemStack itemstack = getCartItem(); + + if(this.func_95999_t() != null) { + itemstack.setStackDisplayName(this.func_95999_t()); + } + + this.entityDropItem(itemstack, 0.0F); + } + + @Override + protected void writeEntityToNBT(NBTTagCompound nbt) { + super.writeEntityToNBT(nbt); + nbt.setInteger("base", this.dataWatcher.getWatchableObjectInt(cart_base_id)); + } + + @Override + protected void readEntityFromNBT(NBTTagCompound nbt) { + super.readEntityFromNBT(nbt); + this.dataWatcher.updateObject(23, nbt.getInteger("base")); + } + + @SideOnly(Side.CLIENT) + public void renderSpecialContent(RenderNeoCart renderer) { } +} diff --git a/src/main/java/com/hbm/entity/cart/EntityMinecartOre.java b/src/main/java/com/hbm/entity/cart/EntityMinecartOre.java index d9dcc0ec0..c48734f4f 100644 --- a/src/main/java/com/hbm/entity/cart/EntityMinecartOre.java +++ b/src/main/java/com/hbm/entity/cart/EntityMinecartOre.java @@ -4,57 +4,21 @@ import com.hbm.items.tool.ItemModMinecart; import com.hbm.items.tool.ItemModMinecart.EnumCartBase; import com.hbm.items.tool.ItemModMinecart.EnumMinecart; -import net.minecraft.entity.Entity; -import net.minecraft.entity.item.EntityMinecart; import net.minecraft.item.ItemStack; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.DamageSource; import net.minecraft.world.World; -public class EntityMinecartOre extends EntityMinecart { +public class EntityMinecartOre extends EntityMinecartNTM { public EntityMinecartOre(World p_i1712_1_) { super(p_i1712_1_); } - public EntityMinecartOre(World world, double x, double y, double z) { - super(world, x, y, z); - } - - @Override - public int getMinecartType() { - return -1; - } - - @Override - public boolean canBeCollidedWith() { - return true; - } - - @Override - public AxisAlignedBB getCollisionBox(Entity entity) { - return entity.boundingBox; - } - - @Override - public AxisAlignedBB getBoundingBox() { - return this.boundingBox; - } - - @Override - public void killMinecart(DamageSource p_94095_1_) { - this.setDead(); - ItemStack itemstack = ItemModMinecart.createCartItem(EnumCartBase.STEEL, EnumMinecart.EMPTY); - - if(this.func_95999_t() != null) { - itemstack.setStackDisplayName(this.func_95999_t()); - } - - this.entityDropItem(itemstack, 0.0F); + public EntityMinecartOre(World world, double x, double y, double z, EnumCartBase type) { + super(world, x, y, z, type); } @Override public ItemStack getCartItem() { - return ItemModMinecart.createCartItem(EnumCartBase.STEEL, EnumMinecart.EMPTY); + return ItemModMinecart.createCartItem(this.getBase(), EnumMinecart.EMPTY); } } diff --git a/src/main/java/com/hbm/entity/cart/EntityMinecartPowder.java b/src/main/java/com/hbm/entity/cart/EntityMinecartPowder.java new file mode 100644 index 000000000..3657640d7 --- /dev/null +++ b/src/main/java/com/hbm/entity/cart/EntityMinecartPowder.java @@ -0,0 +1,35 @@ +package com.hbm.entity.cart; + +import com.hbm.items.tool.ItemModMinecart; +import com.hbm.items.tool.ItemModMinecart.EnumCartBase; +import com.hbm.items.tool.ItemModMinecart.EnumMinecart; +import com.hbm.main.ResourceManager; +import com.hbm.render.entity.item.RenderNeoCart; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; + +public class EntityMinecartPowder extends EntityMinecartNTM { + + public EntityMinecartPowder(World world) { + super(world); + } + + public EntityMinecartPowder(World world, double x, double y, double z, EnumCartBase type) { + super(world, x, y, z, type); + } + + @Override + public ItemStack getCartItem() { + return ItemModMinecart.createCartItem(this.getBase(), EnumMinecart.POWDER); + } + + @Override + @SideOnly(Side.CLIENT) + public void renderSpecialContent(RenderNeoCart renderer) { + renderer.bindTexture(ResourceManager.cart_powder_tex); + ResourceManager.cart_powder.renderPart("Powder"); + } +} diff --git a/src/main/java/com/hbm/entity/cart/EntityMinecartSemtex.java b/src/main/java/com/hbm/entity/cart/EntityMinecartSemtex.java new file mode 100644 index 000000000..74a45ad23 --- /dev/null +++ b/src/main/java/com/hbm/entity/cart/EntityMinecartSemtex.java @@ -0,0 +1,37 @@ +package com.hbm.entity.cart; + +import com.hbm.items.tool.ItemModMinecart; +import com.hbm.items.tool.ItemModMinecart.EnumCartBase; +import com.hbm.items.tool.ItemModMinecart.EnumMinecart; +import com.hbm.main.ResourceManager; +import com.hbm.render.entity.item.RenderNeoCart; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; + +public class EntityMinecartSemtex extends EntityMinecartNTM { + + public EntityMinecartSemtex(World world) { + super(world); + } + + public EntityMinecartSemtex(World world, double x, double y, double z, EnumCartBase type) { + super(world, x, y, z, type); + } + + @Override + public ItemStack getCartItem() { + return ItemModMinecart.createCartItem(this.getBase(), EnumMinecart.SEMTEX); + } + + @Override + @SideOnly(Side.CLIENT) + public void renderSpecialContent(RenderNeoCart renderer) { + renderer.bindTexture(ResourceManager.cart_semtex_top); + ResourceManager.cart_powder.renderPart("SemtexTop"); + renderer.bindTexture(ResourceManager.cart_semtex_side); + ResourceManager.cart_powder.renderPart("SemtexSide"); + } +} diff --git a/src/main/java/com/hbm/items/tool/ItemModMinecart.java b/src/main/java/com/hbm/items/tool/ItemModMinecart.java index ce68ad1cd..c065c189f 100644 --- a/src/main/java/com/hbm/items/tool/ItemModMinecart.java +++ b/src/main/java/com/hbm/items/tool/ItemModMinecart.java @@ -43,10 +43,11 @@ public class ItemModMinecart extends Item { } public static enum EnumMinecart { - EMPTY (EnumCartBase.STEEL), + EMPTY (EnumCartBase.WOOD, EnumCartBase.STEEL, EnumCartBase.PAINTED), CRATE (EnumCartBase.VANILLA), - DESTROYER (EnumCartBase.STEEL), - POWDER (EnumCartBase.WOOD); + DESTROYER (EnumCartBase.STEEL, EnumCartBase.PAINTED), + POWDER (EnumCartBase.WOOD, EnumCartBase.STEEL, EnumCartBase.PAINTED), + SEMTEX (EnumCartBase.WOOD, EnumCartBase.STEEL, EnumCartBase.PAINTED); public int types; @@ -217,7 +218,7 @@ public class ItemModMinecart extends Item { if(BlockRailBase.func_150051_a(world.getBlock(x, y, z))) { if(!world.isRemote) { - EntityMinecart entityminecart = createMinecart(world, x + 0.5D, y + 0.5D, z + 0.5D, stack); + EntityMinecart entityminecart = createMinecart(world, x + fx, y + fy, z + fz, stack); if(stack.hasDisplayName()) { entityminecart.setMinecartName(stack.getDisplayName()); @@ -235,10 +236,13 @@ public class ItemModMinecart extends Item { public static EntityMinecart createMinecart(World world, double x, double y, double z, ItemStack stack) { EnumMinecart type = (EnumMinecart) EnumMinecart.values()[stack.getItemDamage()]; + EnumCartBase base = getBaseType(stack); switch(type) { - case CRATE: return new EntityMinecartCrate(world, x, y, z, stack); - case DESTROYER: return new EntityMinecartDestroyer(world, x, y, z); - case EMPTY: return new EntityMinecartOre(world, x, y, z); + case CRATE: return new EntityMinecartCrate(world, x, y, z, base, stack); + case DESTROYER: return new EntityMinecartDestroyer(world, x, y, z, base); + case EMPTY: return new EntityMinecartOre(world, x, y, z, base); + case POWDER: return new EntityMinecartPowder(world, x, y, z, base); + case SEMTEX: return new EntityMinecartSemtex(world, x, y, z, base); default: return new EntityMinecartEmpty(world, x, y, z); } } diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index 5d975631f..3ada8dd13 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -627,8 +627,7 @@ public class ClientProxy extends ServerProxy { //minecarts RenderingRegistry.registerEntityRenderingHandler(EntityMinecartTest.class, new RenderMinecartTest()); RenderingRegistry.registerEntityRenderingHandler(EntityMinecartCrate.class, new RenderMinecart()); - RenderingRegistry.registerEntityRenderingHandler(EntityMinecartDestroyer.class, new RenderNeoCart()); - RenderingRegistry.registerEntityRenderingHandler(EntityMinecartOre.class, new RenderNeoCart()); + RenderingRegistry.registerEntityRenderingHandler(EntityMinecartNTM.class, new RenderNeoCart()); RenderingRegistry.registerEntityRenderingHandler(EntityMagnusCartus.class, new RenderMagnusCartus()); //items RenderingRegistry.registerEntityRenderingHandler(EntityMovingItem.class, new RenderMovingItem()); diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index 5f40bd98c..536808999 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -495,6 +495,8 @@ public class MainRegistry { EntityRegistry.registerModEntity(EntityMinecartOre.class, "entity_ntm_cart_ore", 172, this, 250, 1, false); EntityRegistry.registerModEntity(EntityMinecartBogie.class, "entity_ntm_cart_bogie", 173, this, 250, 1, false); EntityRegistry.registerModEntity(EntityMagnusCartus.class, "entity_ntm_cart_chungoid", 174, this, 250, 1, false); + EntityRegistry.registerModEntity(EntityMinecartPowder.class, "entity_ntm_cart_powder", 175, this, 250, 1, false); + EntityRegistry.registerModEntity(EntityMinecartSemtex.class, "entity_ntm_cart_semtex", 176, this, 250, 1, false); EntityRegistry.registerGlobalEntityID(EntityNuclearCreeper.class, "entity_mob_nuclear_creeper", EntityRegistry.findGlobalUniqueEntityId(), 0x204131, 0x75CE00); EntityRegistry.registerGlobalEntityID(EntityTaintedCreeper.class, "entity_mob_tainted_creeper", EntityRegistry.findGlobalUniqueEntityId(), 0x813b9b, 0xd71fdd); diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index 038518f9e..fd7babbe2 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -916,6 +916,7 @@ public class ResourceManager { //Carts public static final IModelCustom cart = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/vehicles/cart.obj")); public static final IModelCustom cart_destroyer = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/vehicles/cart_destroyer.obj")); + public static final IModelCustom cart_powder = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/vehicles/cart_powder.obj")); ////Texture Entities @@ -1184,6 +1185,9 @@ public class ResourceManager { public static final ResourceLocation cart_blank = new ResourceLocation(RefStrings.MODID, "textures/entity/cart_metal_naked.png"); public static final ResourceLocation cart_wood = new ResourceLocation(RefStrings.MODID, "textures/entity/cart_wood.png"); public static final ResourceLocation cart_destroyer_tex = new ResourceLocation(RefStrings.MODID, "textures/entity/cart_destroyer.png"); + public static final ResourceLocation cart_powder_tex = new ResourceLocation(RefStrings.MODID, "textures/blocks/block_gunpowder.png"); + public static final ResourceLocation cart_semtex_side = new ResourceLocation(RefStrings.MODID, "textures/blocks/semtex_side.png"); + public static final ResourceLocation cart_semtex_top = new ResourceLocation(RefStrings.MODID, "textures/blocks/semtex_bottom.png"); //ISBRHs public static final IModelCustom scaffold = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/scaffold.obj")); diff --git a/src/main/java/com/hbm/render/entity/item/RenderNeoCart.java b/src/main/java/com/hbm/render/entity/item/RenderNeoCart.java index 08ab17790..8f368870f 100644 --- a/src/main/java/com/hbm/render/entity/item/RenderNeoCart.java +++ b/src/main/java/com/hbm/render/entity/item/RenderNeoCart.java @@ -2,12 +2,11 @@ package com.hbm.render.entity.item; import org.lwjgl.opengl.GL11; -import com.hbm.entity.cart.EntityMinecartDestroyer; +import com.hbm.entity.cart.EntityMinecartNTM; import com.hbm.main.ResourceManager; import net.minecraft.client.renderer.entity.Render; import net.minecraft.entity.Entity; -import net.minecraft.entity.item.EntityMinecart; import net.minecraft.util.MathHelper; import net.minecraft.util.ResourceLocation; import net.minecraft.util.Vec3; @@ -15,11 +14,12 @@ import net.minecraft.util.Vec3; public class RenderNeoCart extends Render { @Override - public void doRender(Entity p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, float p_76986_9_) { - this.doRender((EntityMinecart) p_76986_1_, p_76986_2_, p_76986_4_, p_76986_6_, p_76986_8_, p_76986_9_); + public void doRender(Entity entity, double x, double y, double z, float rot, float interp) { + this.doRender((EntityMinecartNTM) entity, x, y, z, rot, interp); } - public void doRender(EntityMinecart cart, double x, double y, double z, float rot, float interp) { + public void doRender(EntityMinecartNTM cart, double x, double y, double z, float rot, float interp) { + GL11.glPushMatrix(); this.bindEntityTexture(cart); long rand = (long) cart.getEntityId() * 493286711L; @@ -80,17 +80,33 @@ public class RenderNeoCart extends Render { } ResourceManager.cart.renderPart("Bucket"); - - if(cart instanceof EntityMinecartDestroyer) { - bindTexture(ResourceManager.cart_destroyer_tex); - ResourceManager.cart_destroyer.renderAll(); - } + cart.renderSpecialContent(this); GL11.glPopMatrix(); } @Override - protected ResourceLocation getEntityTexture(Entity p_110775_1_) { - return ResourceManager.cart_blank; + protected ResourceLocation getEntityTexture(Entity entity) { + return getEntityTexture((EntityMinecartNTM) entity); + } + + protected ResourceLocation getEntityTexture(EntityMinecartNTM entity) { + switch(entity.getBase()) { + case PAINTED: return ResourceManager.cart_metal; + default: + case STEEL: return ResourceManager.cart_blank; + case WOOD: return ResourceManager.cart_wood; + } + } + + //"NoT vIsIbLe" how about you kiss my fucking ass + @Override + public void bindEntityTexture(Entity entity) { + this.bindTexture(this.getEntityTexture(entity)); + } + + @Override + public void bindTexture(ResourceLocation loc) { + this.renderManager.renderEngine.bindTexture(loc); } } diff --git a/src/main/resources/assets/hbm/models/vehicles/cart_powder.obj b/src/main/resources/assets/hbm/models/vehicles/cart_powder.obj new file mode 100644 index 000000000..412f4d25d --- /dev/null +++ b/src/main/resources/assets/hbm/models/vehicles/cart_powder.obj @@ -0,0 +1,266 @@ +# Blender v2.79 (sub 0) OBJ File: 'cart_powder.blend' +# www.blender.org +o Powder +v -0.500000 0.812500 0.562500 +v 0.500000 0.812500 0.562500 +v -0.500000 0.812500 -0.562500 +v 0.500000 0.812500 -0.562500 +v -0.250000 0.812500 0.562500 +v 0.000000 0.875000 0.562500 +v 0.250000 0.875000 0.562500 +v 0.250000 0.875000 -0.562500 +v 0.000000 0.937500 -0.562500 +v -0.250000 0.875000 -0.562500 +v -0.500000 0.812500 -0.281250 +v -0.500000 0.812500 0.000000 +v -0.500000 0.812500 0.281250 +v 0.500000 0.812500 0.281250 +v 0.500000 0.812500 0.000000 +v 0.500000 0.812500 -0.281250 +v -0.250000 0.875000 0.281250 +v -0.250000 0.937500 0.000000 +v -0.250000 0.875000 -0.281250 +v 0.000000 0.937500 0.281250 +v 0.000000 1.000000 0.000000 +v 0.000000 0.937500 -0.281250 +v 0.250000 0.875000 0.281250 +v 0.250000 0.937500 0.000000 +v 0.250000 0.875000 -0.281250 +vt 0.250000 0.250000 +vt 0.000000 0.250000 +vt 0.250000 -0.000000 +vt 1.000000 0.250000 +vt 0.750000 -0.000000 +vt 1.000000 -0.000000 +vt 0.750000 0.250000 +vt 0.500000 0.250000 +vt 0.500000 -0.000000 +vt 0.500000 1.000000 +vt 0.250000 1.000000 +vt 0.250000 0.750000 +vt 0.500000 0.750000 +vt 0.250000 0.500000 +vt 0.500000 0.500000 +vt 0.750000 1.000000 +vt 0.750000 0.750000 +vt 0.750000 0.500000 +vt 1.000000 1.000000 +vt 1.000000 0.750000 +vt 1.000000 0.500000 +vt 0.000000 1.000000 +vt 0.000000 0.750000 +vt 0.000000 0.500000 +vt 0.000000 -0.000000 +vn 0.2425 0.9701 0.0000 +vn -0.2425 0.9701 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.2371 0.9484 0.2107 +vn 0.2371 0.9484 -0.2107 +vn -0.2371 0.9484 0.2107 +vn -0.2371 0.9484 -0.2107 +vn 0.4386 0.8773 -0.1949 +vn -0.4386 0.8773 0.1949 +vn -0.4386 0.8773 -0.1949 +vn 0.4386 0.8773 0.1949 +s off +f 25/1/1 16/2/1 8/3/1 +f 11/4/2 10/5/2 3/6/2 +f 19/7/2 22/8/2 9/9/2 +f 22/8/1 25/1/1 9/9/1 +f 6/10/3 7/11/3 23/12/3 +f 20/13/4 23/12/4 24/14/4 +f 21/15/5 24/14/5 22/8/5 +f 5/16/6 6/10/6 17/17/6 +f 17/17/6 20/13/6 18/18/6 +f 18/18/7 21/15/7 22/8/7 +f 1/19/3 5/16/3 13/20/3 +f 13/20/2 17/17/2 12/21/2 +f 12/21/2 19/7/2 11/4/2 +f 7/11/1 2/22/1 14/23/1 +f 23/12/1 14/23/1 15/24/1 +f 24/14/8 15/24/8 25/1/8 +f 18/18/6 20/13/6 21/15/6 +f 24/14/4 21/15/4 20/13/4 +f 22/8/7 19/7/7 18/18/7 +f 22/8/5 24/14/5 25/1/5 +f 12/21/9 17/17/9 18/18/9 +f 25/1/1 15/24/1 16/2/1 +f 19/7/10 12/21/10 18/18/10 +f 9/9/2 10/5/2 19/7/2 +f 9/9/1 25/1/1 8/3/1 +f 17/17/6 6/10/6 20/13/6 +f 15/24/11 24/14/11 23/12/11 +f 23/12/4 20/13/4 6/10/4 +f 14/23/1 23/12/1 7/11/1 +f 13/20/6 5/16/6 17/17/6 +f 10/5/2 11/4/2 19/7/2 +f 8/3/1 16/2/1 4/25/1 +o SemtexTop +v -0.531250 1.250000 0.531250 +v -0.531250 1.250000 0.031250 +v -0.031250 1.250000 0.531250 +v -0.031250 1.250000 0.031250 +v -0.531250 1.250000 -0.031250 +v -0.531250 1.250000 -0.531250 +v -0.031250 1.250000 -0.031250 +v -0.031250 1.250000 -0.531250 +v 0.031250 1.250000 0.531250 +v 0.031250 1.250000 0.031250 +v 0.531250 1.250000 0.531250 +v 0.531250 1.250000 0.031250 +v 0.031250 1.250000 -0.031250 +v 0.031250 1.250000 -0.531250 +v 0.531250 1.250000 -0.031250 +v 0.531250 1.250000 -0.531250 +vt 1.000000 0.500000 +vt 0.500000 1.000000 +vt 0.500000 0.500000 +vt 1.000000 0.000000 +vt 0.500000 0.500000 +vt 0.500000 0.000000 +vt 0.500000 0.500000 +vt 0.000000 1.000000 +vt -0.000000 0.500000 +vt 0.500000 -0.000000 +vt 0.000000 0.500000 +vt 0.000000 0.000000 +vt 1.000000 1.000000 +vt 1.000000 0.500000 +vt 0.500000 1.000000 +vt 0.500000 0.500000 +vn 0.0000 1.0000 0.0000 +s off +f 27/26/12 28/27/12 29/28/12 +f 31/29/12 32/30/12 33/31/12 +f 35/32/12 36/33/12 37/34/12 +f 39/35/12 40/36/12 41/37/12 +f 27/26/12 26/38/12 28/27/12 +f 31/29/12 30/39/12 32/30/12 +f 35/32/12 34/40/12 36/33/12 +f 39/35/12 38/41/12 40/36/12 +o SemtexSide +v -0.531250 0.875000 0.531250 +v -0.531250 1.250000 0.531250 +v -0.531250 0.875000 0.031250 +v -0.531250 1.250000 0.031250 +v -0.031250 0.312500 0.531250 +v -0.031250 1.250000 0.531250 +v -0.031250 0.312500 0.031250 +v -0.031250 1.250000 0.031250 +v -0.531250 0.875000 -0.031250 +v -0.531250 1.250000 -0.031250 +v -0.531250 0.875000 -0.531250 +v -0.531250 1.250000 -0.531250 +v -0.031250 0.312500 -0.031250 +v -0.031250 1.250000 -0.031250 +v -0.031250 0.312500 -0.531250 +v -0.031250 1.250000 -0.531250 +v 0.031250 0.312500 0.531250 +v 0.031250 1.250000 0.531250 +v 0.031250 0.312500 0.031250 +v 0.031250 1.250000 0.031250 +v 0.531250 0.875000 0.531250 +v 0.531250 1.250000 0.531250 +v 0.531250 0.875000 0.031250 +v 0.531250 1.250000 0.031250 +v 0.031250 0.312500 -0.031250 +v 0.031250 1.250000 -0.031250 +v 0.031250 0.312500 -0.531250 +v 0.031250 1.250000 -0.531250 +v 0.531250 0.875000 -0.031250 +v 0.531250 1.250000 -0.031250 +v 0.531250 0.875000 -0.531250 +v 0.531250 1.250000 -0.531250 +vt 1.000000 1.000000 +vt 0.500000 0.625000 +vt 1.000000 0.625000 +vt 1.000000 0.625000 +vt 0.500000 1.000000 +vt 0.500000 0.062500 +vt 0.000000 0.062500 +vt 0.500000 1.000000 +vt 0.000000 0.625000 +vt 0.500000 0.062500 +vt 0.500000 1.000000 +vt 0.000000 0.625000 +vt 0.500000 0.625000 +vt 1.000000 0.625000 +vt 0.500000 1.000000 +vt 0.500000 0.062500 +vt 1.000000 1.000000 +vt 0.500000 0.062500 +vt 1.000000 0.062500 +vt 0.500000 1.000000 +vt 0.000000 0.625000 +vt 1.000000 1.000000 +vt 0.500000 0.062500 +vt 1.000000 0.062500 +vt 0.500000 1.000000 +vt -0.000000 0.625000 +vt 0.500000 1.000000 +vt 0.000000 0.625000 +vt 0.500000 0.625000 +vt 1.000000 0.625000 +vt 0.500000 1.000000 +vt 0.500000 0.062500 +vt 0.500000 1.000000 +vt 0.000000 0.062500 +vt 0.500000 0.062500 +vt 0.500000 1.000000 +vt -0.000000 0.625000 +vt 0.500000 0.062500 +vt 1.000000 1.000000 +vt 0.500000 0.625000 +vt 1.000000 0.625000 +vt 1.000000 0.625000 +vt 0.500000 1.000000 +vt 1.000000 1.000000 +vt -0.000000 1.000000 +vt 0.000000 1.000000 +vt -0.000000 1.000000 +vt 1.000000 1.000000 +vt 0.000000 1.000000 +vt 0.000000 1.000000 +vt -0.000000 1.000000 +vt 1.000000 1.000000 +vt 0.000000 1.000000 +vt 0.000000 1.000000 +vt 0.500000 1.000000 +vt 1.000000 1.000000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +s off +f 43/42/13 44/43/13 42/44/13 +f 44/45/14 49/46/14 48/47/14 +f 49/46/15 46/48/15 48/47/15 +f 47/49/16 42/50/16 46/51/16 +f 51/52/13 52/53/13 50/54/13 +f 52/55/14 57/56/14 56/57/14 +f 57/58/15 54/59/15 56/60/15 +f 55/61/16 50/62/16 54/59/16 +f 59/63/13 60/64/13 58/65/13 +f 61/66/14 64/67/14 60/64/14 +f 65/68/15 62/69/15 64/70/15 +f 62/71/16 59/72/16 58/73/16 +f 67/74/13 68/75/13 66/76/13 +f 69/77/14 72/78/14 68/79/14 +f 73/80/15 70/81/15 72/82/15 +f 70/83/16 67/74/16 66/76/16 +f 43/42/13 45/84/13 44/43/13 +f 44/45/14 45/85/14 49/46/14 +f 49/46/15 47/86/15 46/48/15 +f 47/49/16 43/87/16 42/50/16 +f 51/52/13 53/88/13 52/53/13 +f 52/55/14 53/89/14 57/56/14 +f 57/58/15 55/61/15 54/59/15 +f 55/61/16 51/90/16 50/62/16 +f 59/63/13 61/66/13 60/64/13 +f 61/66/14 65/91/14 64/67/14 +f 65/68/15 63/92/15 62/69/15 +f 62/71/16 63/93/16 59/72/16 +f 67/74/13 69/94/13 68/75/13 +f 69/77/14 73/95/14 72/78/14 +f 73/80/15 71/96/15 70/81/15 +f 70/83/16 71/97/16 67/74/16 diff --git a/src/main/resources/assets/hbm/textures/items/cart.wood.png b/src/main/resources/assets/hbm/textures/items/cart.wood.png index 170b3718bfed50f6358e3f9cbcd446231c0bd561..83504bdecafd2c9e2b4ed97cb2638d3b83f019b8 100644 GIT binary patch delta 489 zcmVO48DK+K=_-*SC5ej=jdE!&ipkWD9kVDlNh8_?|7tWk-*?U&4g6=6 zhYF70Y)0|<{U?8|{-1&v%;Ze~a=9Fh+S!_9O>h^?Wb-&}hks)68QYH^QLBDjk)-bf zuYO*Uo-LTTbGF8ket*EOwZ}1MQ7qYrVQssJ_4+NDY#!-{^hc7h>(jXSMzDyO2Mflo z&pc9YC4U;G0Sv>W)oSwVW(T`*3BY{ZVKSL8^FjayqbXw7pwpWmd-deW8}Z@b@Q8N( zGxEk`a6O{a8-FsL`GjFe7~V>Pp^fa-5yDy*v|B9>4v)yB1_>CaR0w#L_0V+_AuObn ztAdkLTk$-ZNJ@o(R4PTO5Kt-v2w|b?CYq)prNnWX7>4;*5HIAVVI-2f9b;J2Gyqgp zqf!=8x>6RAs%qGF4OP_=$-Di1zF+=WfgPs_!0_6~^I{|?r?#R1EK7v2*m?1suU{?z zR-h+OH_>&I^Qz5<8p_%Zgs`yfTC$*cTwOPlyYs5ea#p@_Jc;K?y4^0WJ59O+N!NQ* fDU0aAqNV%>nrZX0E$jZO00000NkvXXu0mjfAnff# delta 435 zcmV;k0Zjgr1lSkpzt;-&?ptY?7V{(ZH$!y1hJ@`L`blN%cLjpQfy=)U3Rp zrfhHTI7zA{EM>&z)|Oo?=jV?LC!xQ*>`0aX!Z2bmxOU)vnsRq{%VaWUG8xnDb_jxi z?D?6qv(xzw>WwDfPmT%0h{wk<0C}F`{cyddJ2G)5kd%z zG4|OK!2V%U$$v6qC0bAMJP)m>Xgx)#*ntOwYr-)4FDTzY*?hgxWHh=*$_S-mj4>7# zLcEsg3)(GJRNF08_`V=XdicJul5e}a{Jr_-z-7^+hny@k>>nnT3c##HshG9(Rjz*j z0dSztUp%CY=ynp0dau8M)4^=JfQ>6RAU1blIWH4&Rfr+sLuFym@BzaZ408_@1;Ab=lb-KwkC7Z=jSipD#PothM_W z^)LfB_pgLuD4c>(^7ga^uq(L0lSz`qygvr!uwNRbl=+!( Date: Wed, 25 May 2022 16:37:29 +0200 Subject: [PATCH 23/80] desh crates, cleaned up crate code terribleness --- src/main/java/com/hbm/blocks/ModBlocks.java | 10 +- .../hbm/blocks/generic/BlockStorageCrate.java | 32 ++-- src/main/java/com/hbm/handler/GUIHandler.java | 68 ++------ .../container/ContainerCrateDesh.java | 67 ++++++++ .../com/hbm/inventory/gui/GUICrateDesh.java | 42 +++++ .../com/hbm/inventory/gui/GUICrateIron.java | 2 +- .../com/hbm/inventory/gui/GUICrateSteel.java | 2 +- .../hbm/inventory/gui/GUICrateTungsten.java | 4 +- .../java/com/hbm/inventory/gui/GUISafe.java | 2 +- .../machine/TileEntityMachineAssembler.java | 2 +- .../machine/storage/TileEntityCrateBase.java | 158 ++++++++++++++++++ .../machine/storage/TileEntityCrateDesh.java | 13 ++ .../machine/storage/TileEntityCrateIron.java | 153 +---------------- .../machine/storage/TileEntityCrateSteel.java | 150 +---------------- .../storage/TileEntityCrateTungsten.java | 145 +--------------- .../machine/storage/TileEntitySafe.java | 150 +---------------- .../hbm/textures/blocks/crate_desh_side.png | Bin 0 -> 772 bytes .../hbm/textures/blocks/crate_desh_top.png | Bin 0 -> 662 bytes .../textures/gui/storage/gui_crate_desh.png | Bin 0 -> 1456 bytes .../gui/{ => storage}/gui_crate_iron.png | Bin .../gui/{ => storage}/gui_crate_steel.png | Bin .../gui/{ => storage}/gui_crate_tungsten.png | Bin .../{ => storage}/gui_crate_tungsten_hot.png | Bin .../textures/gui/storage/gui_mass_storage.png | Bin 0 -> 3116 bytes .../textures/gui/{ => storage}/gui_safe.png | Bin 25 files changed, 322 insertions(+), 678 deletions(-) create mode 100644 src/main/java/com/hbm/inventory/container/ContainerCrateDesh.java create mode 100644 src/main/java/com/hbm/inventory/gui/GUICrateDesh.java create mode 100644 src/main/java/com/hbm/tileentity/machine/storage/TileEntityCrateBase.java create mode 100644 src/main/java/com/hbm/tileentity/machine/storage/TileEntityCrateDesh.java create mode 100644 src/main/resources/assets/hbm/textures/blocks/crate_desh_side.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/crate_desh_top.png create mode 100644 src/main/resources/assets/hbm/textures/gui/storage/gui_crate_desh.png rename src/main/resources/assets/hbm/textures/gui/{ => storage}/gui_crate_iron.png (100%) rename src/main/resources/assets/hbm/textures/gui/{ => storage}/gui_crate_steel.png (100%) rename src/main/resources/assets/hbm/textures/gui/{ => storage}/gui_crate_tungsten.png (100%) rename src/main/resources/assets/hbm/textures/gui/{ => storage}/gui_crate_tungsten_hot.png (100%) create mode 100644 src/main/resources/assets/hbm/textures/gui/storage/gui_mass_storage.png rename src/main/resources/assets/hbm/textures/gui/{ => storage}/gui_safe.png (100%) diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index fd1402995..3a6e79685 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -583,16 +583,10 @@ public class ModBlocks { public static final int guiID_capsule = 93; public static Block crate_iron; - public static final int guiID_crate_iron = 46; - public static Block crate_steel; - public static final int guiID_crate_steel = 47; - + public static Block crate_desh; public static Block crate_tungsten; - public static final int guiID_crate_tungsten = 103; - public static Block safe; - public static final int guiID_safe = 70; public static Block nuke_gadget; public static final int guiID_nuke_gadget = 3; @@ -2112,6 +2106,7 @@ public class ModBlocks { crate_jungle = new BlockJungleCrate(Material.rock).setBlockName("crate_jungle").setStepSound(Block.soundTypeStone).setHardness(1.0F).setResistance(2.5F).setCreativeTab(MainRegistry.consumableTab).setBlockTextureName(RefStrings.MODID + ":crate_jungle"); crate_iron = new BlockStorageCrate(Material.iron).setBlockName("crate_iron").setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); crate_steel = new BlockStorageCrate(Material.iron).setBlockName("crate_steel").setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); + crate_desh = new BlockStorageCrate(Material.iron).setBlockName("crate_desh").setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); crate_tungsten = new BlockStorageCrate(Material.iron).setBlockName("crate_tungsten").setStepSound(Block.soundTypeMetal).setHardness(7.5F).setResistance(60.0F).setCreativeTab(MainRegistry.machineTab); safe = new BlockStorageCrate(Material.iron).setBlockName("safe").setStepSound(Block.soundTypeMetal).setHardness(7.5F).setResistance(10000.0F).setCreativeTab(MainRegistry.machineTab); @@ -2906,6 +2901,7 @@ public class ModBlocks { //Crates GameRegistry.registerBlock(crate_iron, crate_iron.getUnlocalizedName()); GameRegistry.registerBlock(crate_steel, crate_steel.getUnlocalizedName()); + GameRegistry.registerBlock(crate_desh, crate_desh.getUnlocalizedName()); GameRegistry.registerBlock(crate_tungsten, crate_tungsten.getUnlocalizedName()); GameRegistry.registerBlock(safe, safe.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/generic/BlockStorageCrate.java b/src/main/java/com/hbm/blocks/generic/BlockStorageCrate.java index 91c44cfd1..b313837c7 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockStorageCrate.java +++ b/src/main/java/com/hbm/blocks/generic/BlockStorageCrate.java @@ -8,6 +8,8 @@ import com.hbm.items.tool.ItemLock; import com.hbm.lib.RefStrings; import com.hbm.main.MainRegistry; import com.hbm.tileentity.machine.TileEntityLockableBase; +import com.hbm.tileentity.machine.storage.TileEntityCrateBase; +import com.hbm.tileentity.machine.storage.TileEntityCrateDesh; import com.hbm.tileentity.machine.storage.TileEntityCrateIron; import com.hbm.tileentity.machine.storage.TileEntityCrateSteel; import com.hbm.tileentity.machine.storage.TileEntityCrateTungsten; @@ -56,6 +58,10 @@ public class BlockStorageCrate extends BlockContainer { this.iconTop = iconRegister.registerIcon(RefStrings.MODID + ":crate_tungsten_top"); this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":crate_tungsten_side"); } + if(this == ModBlocks.crate_desh) { + this.iconTop = iconRegister.registerIcon(RefStrings.MODID + ":crate_desh_top"); + this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":crate_desh_side"); + } if(this == ModBlocks.safe) { this.iconTop = iconRegister.registerIcon(RefStrings.MODID + ":safe_front"); this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":safe_side"); @@ -74,14 +80,11 @@ public class BlockStorageCrate extends BlockContainer { @Override public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { - if(this == ModBlocks.crate_iron) - return new TileEntityCrateIron(); - if(this == ModBlocks.crate_steel) - return new TileEntityCrateSteel(); - if(this == ModBlocks.crate_tungsten) - return new TileEntityCrateTungsten(); - if(this == ModBlocks.safe) - return new TileEntitySafe(); + if(this == ModBlocks.crate_iron) return new TileEntityCrateIron(); + if(this == ModBlocks.crate_steel) return new TileEntityCrateSteel(); + if(this == ModBlocks.crate_desh) return new TileEntityCrateDesh(); + if(this == ModBlocks.crate_tungsten) return new TileEntityCrateTungsten(); + if(this == ModBlocks.safe) return new TileEntitySafe(); return null; } @@ -143,17 +146,8 @@ public class BlockStorageCrate extends BlockContainer { } else if(!player.isSneaking()) { TileEntity entity = world.getTileEntity(x, y, z); - if(entity instanceof TileEntityCrateIron && ((TileEntityCrateIron) entity).canAccess(player)) { - FMLNetworkHandler.openGui(player, MainRegistry.instance, ModBlocks.guiID_crate_iron, world, x, y, z); - } - if(entity instanceof TileEntityCrateSteel && ((TileEntityCrateSteel) entity).canAccess(player)) { - FMLNetworkHandler.openGui(player, MainRegistry.instance, ModBlocks.guiID_crate_steel, world, x, y, z); - } - if(entity instanceof TileEntityCrateTungsten && ((TileEntityCrateTungsten) entity).canAccess(player)) { - FMLNetworkHandler.openGui(player, MainRegistry.instance, ModBlocks.guiID_crate_tungsten, world, x, y, z); - } - if(entity instanceof TileEntitySafe && ((TileEntitySafe) entity).canAccess(player)) { - FMLNetworkHandler.openGui(player, MainRegistry.instance, ModBlocks.guiID_safe, world, x, y, z); + if(entity instanceof TileEntityCrateBase && ((TileEntityCrateBase) entity).canAccess(player)) { + FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y, z); } return true; } else { diff --git a/src/main/java/com/hbm/handler/GUIHandler.java b/src/main/java/com/hbm/handler/GUIHandler.java index 18c0c9b53..ede516501 100644 --- a/src/main/java/com/hbm/handler/GUIHandler.java +++ b/src/main/java/com/hbm/handler/GUIHandler.java @@ -28,6 +28,12 @@ public class GUIHandler implements IGuiHandler { @Override public Object getServerGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) { TileEntity entity = world.getTileEntity(x, y, z); + + if(entity instanceof TileEntityCrateIron) { return new ContainerCrateIron(player.inventory, (TileEntityCrateIron) entity); } + if(entity instanceof TileEntityCrateSteel) { return new ContainerCrateSteel(player.inventory, (TileEntityCrateSteel) entity); } + if(entity instanceof TileEntityCrateDesh) { return new ContainerCrateDesh(player.inventory, (TileEntityCrateDesh) entity); } + if(entity instanceof TileEntityCrateTungsten) { return new ContainerCrateTungsten(player.inventory, (TileEntityCrateTungsten) entity); } + if(entity instanceof TileEntitySafe) { return new ContainerSafe(player.inventory, (TileEntitySafe) entity); } if(entity instanceof TileEntityMachineLiquefactor) { return new ContainerLiquefactor(player.inventory, (TileEntityMachineLiquefactor) entity); } if(entity instanceof TileEntityMachineSolidifier) { return new ContainerSolidifier(player.inventory, (TileEntityMachineSolidifier) entity); } @@ -354,20 +360,6 @@ public class GUIHandler implements IGuiHandler { return null; } - case ModBlocks.guiID_crate_iron: { - if(entity instanceof TileEntityCrateIron) { - return new ContainerCrateIron(player.inventory, (TileEntityCrateIron) entity); - } - return null; - } - - case ModBlocks.guiID_crate_steel: { - if(entity instanceof TileEntityCrateSteel) { - return new ContainerCrateSteel(player.inventory, (TileEntityCrateSteel) entity); - } - return null; - } - case ModBlocks.guiID_machine_press: { if(entity instanceof TileEntityMachinePress) { return new ContainerMachinePress(player.inventory, (TileEntityMachinePress) entity); @@ -487,13 +479,6 @@ public class GUIHandler implements IGuiHandler { return null; } - case ModBlocks.guiID_safe: { - if(entity instanceof TileEntitySafe) { - return new ContainerSafe(player.inventory, (TileEntitySafe) entity); - } - return null; - } - case ModBlocks.guiID_gascent: { if(entity instanceof TileEntityMachineGasCent) { return new ContainerMachineGasCent(player.inventory, (TileEntityMachineGasCent) entity); @@ -711,13 +696,6 @@ public class GUIHandler implements IGuiHandler { return null; } - case ModBlocks.guiID_crate_tungsten: { - if(entity instanceof TileEntityCrateTungsten) { - return new ContainerCrateTungsten(player.inventory, (TileEntityCrateTungsten) entity); - } - return null; - } - case ModBlocks.guiID_chekhov: { if(entity instanceof TileEntityTurretChekhov) { return new ContainerTurretBase(player.inventory, (TileEntityTurretChekhov) entity); @@ -873,6 +851,12 @@ public class GUIHandler implements IGuiHandler { @Override public Object getClientGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) { TileEntity entity = world.getTileEntity(x, y, z); + + if(entity instanceof TileEntityCrateIron) { return new GUICrateIron(player.inventory, (TileEntityCrateIron) entity); } + if(entity instanceof TileEntityCrateSteel) { return new GUICrateSteel(player.inventory, (TileEntityCrateSteel) entity); } + if(entity instanceof TileEntityCrateDesh) { return new GUICrateDesh(player.inventory, (TileEntityCrateDesh) entity); } + if(entity instanceof TileEntityCrateTungsten) { return new GUICrateTungsten(player.inventory, (TileEntityCrateTungsten) entity); } + if(entity instanceof TileEntitySafe) { return new GUISafe(player.inventory, (TileEntitySafe) entity); } if(entity instanceof TileEntityMachineLiquefactor) { return new GUILiquefactor(player.inventory, (TileEntityMachineLiquefactor) entity); } if(entity instanceof TileEntityMachineSolidifier) { return new GUISolidifier(player.inventory, (TileEntityMachineSolidifier) entity); } @@ -1199,20 +1183,6 @@ public class GUIHandler implements IGuiHandler { return null; } - case ModBlocks.guiID_crate_iron: { - if(entity instanceof TileEntityCrateIron) { - return new GUICrateIron(player.inventory, (TileEntityCrateIron) entity); - } - return null; - } - - case ModBlocks.guiID_crate_steel: { - if(entity instanceof TileEntityCrateSteel) { - return new GUICrateSteel(player.inventory, (TileEntityCrateSteel) entity); - } - return null; - } - case ModBlocks.guiID_machine_press: { if(entity instanceof TileEntityMachinePress) { return new GUIMachinePress(player.inventory, (TileEntityMachinePress) entity); @@ -1325,13 +1295,6 @@ public class GUIHandler implements IGuiHandler { return null; } - case ModBlocks.guiID_safe: { - if(entity instanceof TileEntitySafe) { - return new GUISafe(player.inventory, (TileEntitySafe) entity); - } - return null; - } - case ModBlocks.guiID_gascent: { if(entity instanceof TileEntityMachineGasCent) { return new GUIMachineGasCent(player.inventory, (TileEntityMachineGasCent) entity); @@ -1549,13 +1512,6 @@ public class GUIHandler implements IGuiHandler { return null; } - case ModBlocks.guiID_crate_tungsten: { - if(entity instanceof TileEntityCrateTungsten) { - return new GUICrateTungsten(player.inventory, (TileEntityCrateTungsten) entity); - } - return null; - } - case ModBlocks.guiID_chekhov: { if(entity instanceof TileEntityTurretChekhov) { return new GUITurretChekhov(player.inventory, (TileEntityTurretChekhov) entity); diff --git a/src/main/java/com/hbm/inventory/container/ContainerCrateDesh.java b/src/main/java/com/hbm/inventory/container/ContainerCrateDesh.java new file mode 100644 index 000000000..bb1c7224e --- /dev/null +++ b/src/main/java/com/hbm/inventory/container/ContainerCrateDesh.java @@ -0,0 +1,67 @@ +package com.hbm.inventory.container; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.IInventory; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; + +public class ContainerCrateDesh extends Container { + + private IInventory diFurnace; + + public ContainerCrateDesh(InventoryPlayer invPlayer, IInventory tedf) { + diFurnace = tedf; + + for(int i = 0; i < 8; i++) { + for(int j = 0; j < 13; j++) { + this.addSlotToContainer(new Slot(tedf, j + i * 13, 8 + j * 18, 18 + i * 18)); + } + } + + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 9; j++) { + this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 44 + j * 18, 174 + i * 18)); + } + } + + for(int i = 0; i < 9; i++) { + this.addSlotToContainer(new Slot(invPlayer, i, 44 + i * 18, 232)); + } + } + + @Override + public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) { + ItemStack var3 = null; + Slot var4 = (Slot) this.inventorySlots.get(par2); + + if(var4 != null && var4.getHasStack()) { + ItemStack var5 = var4.getStack(); + var3 = var5.copy(); + + if(par2 <= diFurnace.getSizeInventory() - 1) { + if(!this.mergeItemStack(var5, diFurnace.getSizeInventory(), this.inventorySlots.size(), true)) { + return null; + } + } else if(!this.mergeItemStack(var5, 0, diFurnace.getSizeInventory(), false)) { + return null; + } + + if(var5.stackSize == 0) { + var4.putStack((ItemStack) null); + } else { + var4.onSlotChanged(); + } + + var4.onPickupFromSlot(p_82846_1_, var5); + } + + return var3; + } + + @Override + public boolean canInteractWith(EntityPlayer player) { + return diFurnace.isUseableByPlayer(player); + } +} diff --git a/src/main/java/com/hbm/inventory/gui/GUICrateDesh.java b/src/main/java/com/hbm/inventory/gui/GUICrateDesh.java new file mode 100644 index 000000000..61cb62526 --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GUICrateDesh.java @@ -0,0 +1,42 @@ +package com.hbm.inventory.gui; + +import org.lwjgl.opengl.GL11; + +import com.hbm.inventory.container.ContainerCrateDesh; +import com.hbm.lib.RefStrings; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.inventory.GuiContainer; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.IInventory; +import net.minecraft.util.ResourceLocation; + +public class GUICrateDesh extends GuiContainer { + + private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/storage/gui_crate_desh.png"); + private IInventory crate; + + public GUICrateDesh(InventoryPlayer invPlayer, IInventory inv) { + super(new ContainerCrateDesh(invPlayer, inv)); + crate = inv; + + this.xSize = 248; + this.ySize = 256; + } + + @Override + protected void drawGuiContainerForegroundLayer(int i, int j) { + String name = this.crate.hasCustomInventoryName() ? this.crate.getInventoryName() : I18n.format(this.crate.getInventoryName()); + + this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); + this.fontRendererObj.drawString(I18n.format("container.inventory"), 40, this.ySize - 96 + 3, 4210752); + } + + @Override + protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + } +} diff --git a/src/main/java/com/hbm/inventory/gui/GUICrateIron.java b/src/main/java/com/hbm/inventory/gui/GUICrateIron.java index 83ae322de..04a354e53 100644 --- a/src/main/java/com/hbm/inventory/gui/GUICrateIron.java +++ b/src/main/java/com/hbm/inventory/gui/GUICrateIron.java @@ -14,7 +14,7 @@ import net.minecraft.util.ResourceLocation; public class GUICrateIron extends GuiContainer { - private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/gui_crate_iron.png"); + private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/storage/gui_crate_iron.png"); private TileEntityCrateIron diFurnace; public GUICrateIron(InventoryPlayer invPlayer, TileEntityCrateIron tedf) { diff --git a/src/main/java/com/hbm/inventory/gui/GUICrateSteel.java b/src/main/java/com/hbm/inventory/gui/GUICrateSteel.java index 332a13ee6..4883360d4 100644 --- a/src/main/java/com/hbm/inventory/gui/GUICrateSteel.java +++ b/src/main/java/com/hbm/inventory/gui/GUICrateSteel.java @@ -14,7 +14,7 @@ import net.minecraft.util.ResourceLocation; public class GUICrateSteel extends GuiContainer { - private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/gui_crate_steel.png"); + private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/storage/gui_crate_steel.png"); private IInventory crate; public GUICrateSteel(InventoryPlayer invPlayer, IInventory inv) { diff --git a/src/main/java/com/hbm/inventory/gui/GUICrateTungsten.java b/src/main/java/com/hbm/inventory/gui/GUICrateTungsten.java index 7da006832..30a0ec162 100644 --- a/src/main/java/com/hbm/inventory/gui/GUICrateTungsten.java +++ b/src/main/java/com/hbm/inventory/gui/GUICrateTungsten.java @@ -14,8 +14,8 @@ import net.minecraft.util.ResourceLocation; public class GUICrateTungsten extends GuiContainer { - private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/gui_crate_tungsten.png"); - private static ResourceLocation texture_hot = new ResourceLocation(RefStrings.MODID + ":textures/gui/gui_crate_tungsten_hot.png"); + private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/storage/gui_crate_tungsten.png"); + private static ResourceLocation texture_hot = new ResourceLocation(RefStrings.MODID + ":textures/gui/storage/gui_crate_tungsten_hot.png"); private TileEntityCrateTungsten diFurnace; public GUICrateTungsten(InventoryPlayer invPlayer, TileEntityCrateTungsten tedf) { diff --git a/src/main/java/com/hbm/inventory/gui/GUISafe.java b/src/main/java/com/hbm/inventory/gui/GUISafe.java index a7c6d0e8d..8b49d5362 100644 --- a/src/main/java/com/hbm/inventory/gui/GUISafe.java +++ b/src/main/java/com/hbm/inventory/gui/GUISafe.java @@ -14,7 +14,7 @@ import net.minecraft.util.ResourceLocation; public class GUISafe extends GuiContainer { - private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/gui_safe.png"); + private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/storage/gui_safe.png"); private TileEntitySafe diFurnace; public GUISafe(InventoryPlayer invPlayer, TileEntitySafe tedf) { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssembler.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssembler.java index 13f5c6f25..ba77308a0 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssembler.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssembler.java @@ -213,7 +213,7 @@ public class TileEntityMachineAssembler extends TileEntityMachineBase implements data.setInteger("progress", progress); data.setInteger("maxProgress", maxProgress); data.setBoolean("isProgressing", isProgressing); - data.setInteger("recipe", slots[4] != null ? slots[4].getItemDamage() : -1); + data.setInteger("recipe", slots[4] != null ? AssemblerRecipes.recipeList.indexOf(AssemblerRecipes.getOutputFromTempate(slots[4])) : -1); this.networkPack(data, 150); } else { diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityCrateBase.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityCrateBase.java new file mode 100644 index 000000000..14568a358 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityCrateBase.java @@ -0,0 +1,158 @@ +package com.hbm.tileentity.machine.storage; + +import com.hbm.tileentity.machine.TileEntityLockableBase; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.ISidedInventory; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.nbt.NBTTagList; + +public abstract class TileEntityCrateBase extends TileEntityLockableBase implements ISidedInventory { + + protected ItemStack slots[]; + public String customName; + + public TileEntityCrateBase() { + slots = new ItemStack[0]; + } + + public TileEntityCrateBase(int count) { + slots = new ItemStack[count]; + } + + @Override + public int getSizeInventory() { + return slots.length; + } + + @Override + public ItemStack getStackInSlot(int i) { + return slots[i]; + } + + @Override + public ItemStack getStackInSlotOnClosing(int i) { + if (slots[i] != null) { + ItemStack itemStack = slots[i]; + slots[i] = null; + return itemStack; + } else { + return null; + } + } + + @Override + public void setInventorySlotContents(int i, ItemStack itemStack) { + slots[i] = itemStack; + if (itemStack != null && itemStack.stackSize > getInventoryStackLimit()) { + itemStack.stackSize = getInventoryStackLimit(); + } + } + + @Override + public boolean hasCustomInventoryName() { + return this.customName != null && this.customName.length() > 0; + } + + public void setCustomName(String name) { + this.customName = name; + } + + @Override + public int getInventoryStackLimit() { + return 64; + } + + @Override + public boolean isUseableByPlayer(EntityPlayer player) { + if (worldObj.getTileEntity(xCoord, yCoord, zCoord) != this) { + return false; + } else { + return player.getDistanceSq(xCoord + 0.5D, yCoord + 0.5D, zCoord + 0.5D) <= 64; + } + } + + // You scrubs aren't needed for anything (right now) + @Override + public void openInventory() { + } + + @Override + public void closeInventory() { + } + + @Override + public boolean isItemValidForSlot(int i, ItemStack stack) { + return true; + } + + @Override + public ItemStack decrStackSize(int i, int j) { + if (slots[i] != null) { + if (slots[i].stackSize <= j) { + ItemStack itemStack = slots[i]; + slots[i] = null; + return itemStack; + } + ItemStack itemStack1 = slots[i].splitStack(j); + if (slots[i].stackSize == 0) { + slots[i] = null; + } + + return itemStack1; + } else { + return null; + } + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + NBTTagList list = nbt.getTagList("items", 10); + + slots = new ItemStack[getSizeInventory()]; + + for (int i = 0; i < list.tagCount(); i++) { + NBTTagCompound nbt1 = list.getCompoundTagAt(i); + byte b0 = nbt1.getByte("slot"); + if (b0 >= 0 && b0 < slots.length) { + slots[b0] = ItemStack.loadItemStackFromNBT(nbt1); + } + } + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + + NBTTagList list = new NBTTagList(); + + for (int i = 0; i < slots.length; i++) { + if (slots[i] != null) { + NBTTagCompound nbt1 = new NBTTagCompound(); + nbt1.setByte("slot", (byte) i); + slots[i].writeToNBT(nbt1); + list.appendTag(nbt1); + } + } + nbt.setTag("items", list); + } + + @Override + public int[] getAccessibleSlotsFromSide(int side) { + int[] slots = new int[this.slots.length]; + for(int i = 0; i < slots.length; i++) slots[i] = i; + return slots; + } + + @Override + public boolean canInsertItem(int i, ItemStack itemStack, int j) { + return this.isItemValidForSlot(i, itemStack) && !this.isLocked(); + } + + @Override + public boolean canExtractItem(int i, ItemStack itemStack, int j) { + return !this.isLocked(); + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityCrateDesh.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityCrateDesh.java new file mode 100644 index 000000000..923928b66 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityCrateDesh.java @@ -0,0 +1,13 @@ +package com.hbm.tileentity.machine.storage; + +public class TileEntityCrateDesh extends TileEntityCrateBase { + + public TileEntityCrateDesh() { + super(104); //8 rows with 13 slots + } + + @Override + public String getInventoryName() { + return this.hasCustomInventoryName() ? this.customName : "container.crateDesh"; + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityCrateIron.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityCrateIron.java index 29298a441..abf54980b 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityCrateIron.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityCrateIron.java @@ -1,162 +1,13 @@ package com.hbm.tileentity.machine.storage; -import com.hbm.tileentity.machine.TileEntityLockableBase; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.ISidedInventory; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; - -public class TileEntityCrateIron extends TileEntityLockableBase implements ISidedInventory { - - private ItemStack slots[]; - - private String customName; +public class TileEntityCrateIron extends TileEntityCrateBase { public TileEntityCrateIron() { - slots = new ItemStack[36]; - } - - @Override - public int getSizeInventory() { - return slots.length; - } - - @Override - public ItemStack getStackInSlot(int i) { - return slots[i]; - } - - @Override - public ItemStack getStackInSlotOnClosing(int i) { - if (slots[i] != null) { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } else { - return null; - } - } - - @Override - public void setInventorySlotContents(int i, ItemStack itemStack) { - slots[i] = itemStack; - if (itemStack != null && itemStack.stackSize > getInventoryStackLimit()) { - itemStack.stackSize = getInventoryStackLimit(); - } + super(36); } @Override public String getInventoryName() { return this.hasCustomInventoryName() ? this.customName : "container.crateIron"; } - - @Override - public boolean hasCustomInventoryName() { - return this.customName != null && this.customName.length() > 0; - } - - public void setCustomName(String name) { - this.customName = name; - } - - @Override - public int getInventoryStackLimit() { - return 64; - } - - @Override - public boolean isUseableByPlayer(EntityPlayer player) { - if (worldObj.getTileEntity(xCoord, yCoord, zCoord) != this) { - return false; - } else { - return player.getDistanceSq(xCoord + 0.5D, yCoord + 0.5D, zCoord + 0.5D) <= 64; - } - } - - // You scrubs aren't needed for anything (right now) - @Override - public void openInventory() { - } - - @Override - public void closeInventory() { - } - - @Override - public boolean isItemValidForSlot(int i, ItemStack stack) { - return true; - } - - @Override - public ItemStack decrStackSize(int i, int j) { - if (slots[i] != null) { - if (slots[i].stackSize <= j) { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } - ItemStack itemStack1 = slots[i].splitStack(j); - if (slots[i].stackSize == 0) { - slots[i] = null; - } - - return itemStack1; - } else { - return null; - } - } - - @Override - public void readFromNBT(NBTTagCompound nbt) { - super.readFromNBT(nbt); - NBTTagList list = nbt.getTagList("items", 10); - - slots = new ItemStack[getSizeInventory()]; - - for (int i = 0; i < list.tagCount(); i++) { - NBTTagCompound nbt1 = list.getCompoundTagAt(i); - byte b0 = nbt1.getByte("slot"); - if (b0 >= 0 && b0 < slots.length) { - slots[b0] = ItemStack.loadItemStackFromNBT(nbt1); - } - } - } - - @Override - public void writeToNBT(NBTTagCompound nbt) { - super.writeToNBT(nbt); - - NBTTagList list = new NBTTagList(); - - for (int i = 0; i < slots.length; i++) { - if (slots[i] != null) { - NBTTagCompound nbt1 = new NBTTagCompound(); - nbt1.setByte("slot", (byte) i); - slots[i].writeToNBT(nbt1); - list.appendTag(nbt1); - } - } - nbt.setTag("items", list); - } - - @Override - public int[] getAccessibleSlotsFromSide(int p_94128_1_) { - int[] slots = new int[36]; - for(int i = 0; i < slots.length; i++) - slots[i] = i; - return slots; - } - - @Override - public boolean canInsertItem(int i, ItemStack itemStack, int j) { - return this.isItemValidForSlot(i, itemStack) && !this.isLocked(); - } - - @Override - public boolean canExtractItem(int i, ItemStack itemStack, int j) { - return !this.isLocked(); - } - } diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityCrateSteel.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityCrateSteel.java index 135e74e32..725fde319 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityCrateSteel.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityCrateSteel.java @@ -1,161 +1,15 @@ package com.hbm.tileentity.machine.storage; -import com.hbm.tileentity.machine.TileEntityLockableBase; - -import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.ISidedInventory; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; -public class TileEntityCrateSteel extends TileEntityLockableBase implements ISidedInventory { - - private ItemStack slots[]; - - private String customName; +public class TileEntityCrateSteel extends TileEntityCrateBase implements ISidedInventory { public TileEntityCrateSteel() { - slots = new ItemStack[54]; - } - - @Override - public int getSizeInventory() { - return slots.length; - } - - @Override - public ItemStack getStackInSlot(int i) { - return slots[i]; - } - - @Override - public ItemStack getStackInSlotOnClosing(int i) { - if (slots[i] != null) { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } else { - return null; - } - } - - @Override - public void setInventorySlotContents(int i, ItemStack itemStack) { - slots[i] = itemStack; - if (itemStack != null && itemStack.stackSize > getInventoryStackLimit()) { - itemStack.stackSize = getInventoryStackLimit(); - } + super(54); } @Override public String getInventoryName() { return this.hasCustomInventoryName() ? this.customName : "container.crateSteel"; } - - @Override - public boolean hasCustomInventoryName() { - return this.customName != null && this.customName.length() > 0; - } - - public void setCustomName(String name) { - this.customName = name; - } - - @Override - public int getInventoryStackLimit() { - return 64; - } - - @Override - public boolean isUseableByPlayer(EntityPlayer player) { - if (worldObj.getTileEntity(xCoord, yCoord, zCoord) != this) { - return false; - } else { - return player.getDistanceSq(xCoord + 0.5D, yCoord + 0.5D, zCoord + 0.5D) <= 64; - } - } - - // You scrubs aren't needed for anything (right now) - @Override - public void openInventory() { - } - - @Override - public void closeInventory() { - } - - @Override - public boolean isItemValidForSlot(int i, ItemStack stack) { - return true; - } - - @Override - public ItemStack decrStackSize(int i, int j) { - if (slots[i] != null) { - if (slots[i].stackSize <= j) { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } - ItemStack itemStack1 = slots[i].splitStack(j); - if (slots[i].stackSize == 0) { - slots[i] = null; - } - - return itemStack1; - } else { - return null; - } - } - - @Override - public void readFromNBT(NBTTagCompound nbt) { - super.readFromNBT(nbt); - NBTTagList list = nbt.getTagList("items", 10); - - slots = new ItemStack[getSizeInventory()]; - - for (int i = 0; i < list.tagCount(); i++) { - NBTTagCompound nbt1 = list.getCompoundTagAt(i); - byte b0 = nbt1.getByte("slot"); - if (b0 >= 0 && b0 < slots.length) { - slots[b0] = ItemStack.loadItemStackFromNBT(nbt1); - } - } - } - - @Override - public void writeToNBT(NBTTagCompound nbt) { - super.writeToNBT(nbt); - - NBTTagList list = new NBTTagList(); - - for (int i = 0; i < slots.length; i++) { - if (slots[i] != null) { - NBTTagCompound nbt1 = new NBTTagCompound(); - nbt1.setByte("slot", (byte) i); - slots[i].writeToNBT(nbt1); - list.appendTag(nbt1); - } - } - nbt.setTag("items", list); - } - - @Override - public int[] getAccessibleSlotsFromSide(int p_94128_1_) { - int[] slots = new int[54]; - for(int i = 0; i < slots.length; i++) - slots[i] = i; - return slots; - } - - @Override - public boolean canInsertItem(int i, ItemStack itemStack, int j) { - return this.isItemValidForSlot(i, itemStack) && !this.isLocked(); - } - - @Override - public boolean canExtractItem(int i, ItemStack itemStack, int j) { - return !this.isLocked(); - } } diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityCrateTungsten.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityCrateTungsten.java index 1a509aff3..db640f843 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityCrateTungsten.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityCrateTungsten.java @@ -1,57 +1,18 @@ package com.hbm.tileentity.machine.storage; import com.hbm.items.ModItems; -import com.hbm.tileentity.machine.TileEntityLockableBase; import api.hbm.block.ILaserable; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.ISidedInventory; import net.minecraft.item.ItemStack; import net.minecraft.item.crafting.FurnaceRecipes; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityCrateTungsten extends TileEntityLockableBase implements ISidedInventory, ILaserable { - - private ItemStack slots[]; - - private String customName; - +public class TileEntityCrateTungsten extends TileEntityCrateBase implements ILaserable { private int heatTimer; public TileEntityCrateTungsten() { - slots = new ItemStack[27]; - } - - @Override - public int getSizeInventory() { - return slots.length; - } - - @Override - public ItemStack getStackInSlot(int i) { - return slots[i]; - } - - @Override - public ItemStack getStackInSlotOnClosing(int i) { - if (slots[i] != null) { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } else { - return null; - } - } - - @Override - public void setInventorySlotContents(int i, ItemStack itemStack) { - slots[i] = itemStack; - if (itemStack != null && itemStack.stackSize > getInventoryStackLimit()) { - itemStack.stackSize = getInventoryStackLimit(); - } + super(27); } @Override @@ -59,62 +20,6 @@ public class TileEntityCrateTungsten extends TileEntityLockableBase implements I return this.hasCustomInventoryName() ? this.customName : "container.crateTungsten"; } - @Override - public boolean hasCustomInventoryName() { - return this.customName != null && this.customName.length() > 0; - } - - public void setCustomName(String name) { - this.customName = name; - } - - @Override - public int getInventoryStackLimit() { - return 64; - } - - @Override - public boolean isUseableByPlayer(EntityPlayer player) { - if (worldObj.getTileEntity(xCoord, yCoord, zCoord) != this) { - return false; - } else { - return player.getDistanceSq(xCoord + 0.5D, yCoord + 0.5D, zCoord + 0.5D) <= 64; - } - } - - // You scrubs aren't needed for anything (right now) - @Override - public void openInventory() { - } - - @Override - public void closeInventory() { - } - - @Override - public boolean isItemValidForSlot(int i, ItemStack stack) { - return true; - } - - @Override - public ItemStack decrStackSize(int i, int j) { - if (slots[i] != null) { - if (slots[i].stackSize <= j) { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } - ItemStack itemStack1 = slots[i].splitStack(j); - if (slots[i].stackSize == 0) { - slots[i] = null; - } - - return itemStack1; - } else { - return null; - } - } - @Override public void updateEntity() { @@ -147,52 +52,6 @@ public class TileEntityCrateTungsten extends TileEntityLockableBase implements I } } - @Override - public void readFromNBT(NBTTagCompound nbt) { - super.readFromNBT(nbt); - NBTTagList list = nbt.getTagList("items", 10); - - slots = new ItemStack[getSizeInventory()]; - - for (int i = 0; i < list.tagCount(); i++) { - NBTTagCompound nbt1 = list.getCompoundTagAt(i); - byte b0 = nbt1.getByte("slot"); - if (b0 >= 0 && b0 < slots.length) { - slots[b0] = ItemStack.loadItemStackFromNBT(nbt1); - } - } - } - - @Override - public void writeToNBT(NBTTagCompound nbt) { - super.writeToNBT(nbt); - - NBTTagList list = new NBTTagList(); - - for (int i = 0; i < slots.length; i++) { - if (slots[i] != null) { - NBTTagCompound nbt1 = new NBTTagCompound(); - nbt1.setByte("slot", (byte) i); - slots[i].writeToNBT(nbt1); - list.appendTag(nbt1); - } - } - nbt.setTag("items", list); - } - - @Override - public int[] getAccessibleSlotsFromSide(int p_94128_1_) { - int[] slots = new int[27]; - for(int i = 0; i < slots.length; i++) - slots[i] = i; - return slots; - } - - @Override - public boolean canInsertItem(int i, ItemStack itemStack, int j) { - return this.isItemValidForSlot(i, itemStack) && !this.isLocked(); - } - @Override public boolean canExtractItem(int i, ItemStack itemStack, int j) { if(this.isLocked()) diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntitySafe.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntitySafe.java index a2664bcfc..d258a90a2 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntitySafe.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntitySafe.java @@ -1,161 +1,15 @@ package com.hbm.tileentity.machine.storage; -import com.hbm.tileentity.machine.TileEntityLockableBase; - -import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.ISidedInventory; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; -public class TileEntitySafe extends TileEntityLockableBase implements ISidedInventory { - - private ItemStack slots[]; - - private String customName; +public class TileEntitySafe extends TileEntityCrateBase implements ISidedInventory { public TileEntitySafe() { - slots = new ItemStack[15]; - } - - @Override - public int getSizeInventory() { - return slots.length; - } - - @Override - public ItemStack getStackInSlot(int i) { - return slots[i]; - } - - @Override - public ItemStack getStackInSlotOnClosing(int i) { - if (slots[i] != null) { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } else { - return null; - } - } - - @Override - public void setInventorySlotContents(int i, ItemStack itemStack) { - slots[i] = itemStack; - if (itemStack != null && itemStack.stackSize > getInventoryStackLimit()) { - itemStack.stackSize = getInventoryStackLimit(); - } + super(15); } @Override public String getInventoryName() { return this.hasCustomInventoryName() ? this.customName : "container.safe"; } - - @Override - public boolean hasCustomInventoryName() { - return this.customName != null && this.customName.length() > 0; - } - - public void setCustomName(String name) { - this.customName = name; - } - - @Override - public int getInventoryStackLimit() { - return 64; - } - - @Override - public boolean isUseableByPlayer(EntityPlayer player) { - if (worldObj.getTileEntity(xCoord, yCoord, zCoord) != this) { - return false; - } else { - return player.getDistanceSq(xCoord + 0.5D, yCoord + 0.5D, zCoord + 0.5D) <= 64; - } - } - - // You scrubs aren't needed for anything (right now) - @Override - public void openInventory() { - } - - @Override - public void closeInventory() { - } - - @Override - public boolean isItemValidForSlot(int i, ItemStack stack) { - return true; - } - - @Override - public ItemStack decrStackSize(int i, int j) { - if (slots[i] != null) { - if (slots[i].stackSize <= j) { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } - ItemStack itemStack1 = slots[i].splitStack(j); - if (slots[i].stackSize == 0) { - slots[i] = null; - } - - return itemStack1; - } else { - return null; - } - } - - @Override - public void readFromNBT(NBTTagCompound nbt) { - super.readFromNBT(nbt); - NBTTagList list = nbt.getTagList("items", 10); - - slots = new ItemStack[getSizeInventory()]; - - for (int i = 0; i < list.tagCount(); i++) { - NBTTagCompound nbt1 = list.getCompoundTagAt(i); - byte b0 = nbt1.getByte("slot"); - if (b0 >= 0 && b0 < slots.length) { - slots[b0] = ItemStack.loadItemStackFromNBT(nbt1); - } - } - } - - @Override - public void writeToNBT(NBTTagCompound nbt) { - super.writeToNBT(nbt); - - NBTTagList list = new NBTTagList(); - - for (int i = 0; i < slots.length; i++) { - if (slots[i] != null) { - NBTTagCompound nbt1 = new NBTTagCompound(); - nbt1.setByte("slot", (byte) i); - slots[i].writeToNBT(nbt1); - list.appendTag(nbt1); - } - } - nbt.setTag("items", list); - } - - @Override - public int[] getAccessibleSlotsFromSide(int p_94128_1_) { - int[] slots = new int[15]; - for(int i = 0; i < slots.length; i++) - slots[i] = i; - return slots; - } - - @Override - public boolean canInsertItem(int i, ItemStack itemStack, int j) { - return this.isItemValidForSlot(i, itemStack) && !this.isLocked(); - } - - @Override - public boolean canExtractItem(int i, ItemStack itemStack, int j) { - return !this.isLocked(); - } } diff --git a/src/main/resources/assets/hbm/textures/blocks/crate_desh_side.png b/src/main/resources/assets/hbm/textures/blocks/crate_desh_side.png new file mode 100644 index 0000000000000000000000000000000000000000..afc8755f83b1b45d82e477e313e9e1df6a5ca72b GIT binary patch literal 772 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

    C- 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%0AeUHDls^z)=c3T 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�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

  1. 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 #d`6Gb$RYFb(G~aKIbe?<(Y0Zi^yLI0 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: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 z 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 JFJlq@zW{s;wvqq< literal 0 HcmV?d00001 From bb94a2db4221a02dc94f5546f38b6bc9b86af1b2 Mon Sep 17 00:00:00 2001 From: Vaern Date: Tue, 7 Jun 2022 17:41:47 -0700 Subject: [PATCH 54/80] Noticed some inconsistencies between xenon and non-xenon poisoned schrab recipes --- .../java/com/hbm/inventory/recipes/SILEXRecipes.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/hbm/inventory/recipes/SILEXRecipes.java b/src/main/java/com/hbm/inventory/recipes/SILEXRecipes.java index 59a6e50e2..b9acd7126 100644 --- a/src/main/java/com/hbm/inventory/recipes/SILEXRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/SILEXRecipes.java @@ -277,8 +277,8 @@ public class SILEXRecipes { .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_les), 90 - i * 20)) //Just bullshit something about "not enough np237 for extractable amounts of xe135" .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.NEPTUNIUM.ordinal()), 2 + 3 * i)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.NEPTUNIUM.ordinal()), 2 + 5 * i)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.SCHRABIDIUM.ordinal()), 1 + 1 * i)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.SCHRABIDIUM.ordinal()), 1 + 3 * i)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.SCHRABIDIUM.ordinal()), 1 + 2 * i)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.SCHRABIDIUM.ordinal()), 1 + 2 * i)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_coal_tiny), 4 + 8 * i)) ); // MES // @@ -286,18 +286,18 @@ public class SILEXRecipes { .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_schrabidium_fuel), 90 - i * 20)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.NEPTUNIUM.ordinal()), 1 + 3 * i)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.NEPTUNIUM.ordinal()), 2 + 4 * i)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.SCHRABIDIUM.ordinal()), 1 + 2 * i)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.SCHRABIDIUM.ordinal()), 1 + 3 * i)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.SCHRABIDIUM.ordinal()), 2 + 4 * i)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_coal_tiny), 4 + 7 * i)) ); + .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_coal_tiny), 4 + 6 * i)) ); //TODO: Readd xenon processing if/when the NEI handler can display more than 6 outputs properly recipes.put(new ComparableStack(ModItems.rbmk_pellet_mes, 1, i + 5), new SILEXRecipe(600, 100, 2) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_schrabidium_fuel), 90 - i * 20)) //ditto - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.NEPTUNIUM.ordinal()), 1 + 2 * i)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.NEPTUNIUM.ordinal()), 1 + 3 * i)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.NEPTUNIUM.ordinal()), 2 + 4 * i)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.SCHRABIDIUM.ordinal()), 1 + 3 * i)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.SCHRABIDIUM.ordinal()), 2 + 4 * i)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_coal_tiny), 4 + 7 * i)) ); + .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_coal_tiny), 4 + 6 * i)) ); // HES // recipes.put(new ComparableStack(ModItems.rbmk_pellet_hes, 1, i), new SILEXRecipe(600, 100, 2) From 087ce9fccb45386054fbe258c02a47b893a62e24 Mon Sep 17 00:00:00 2001 From: Boblet Date: Wed, 8 Jun 2022 16:45:57 +0200 Subject: [PATCH 55/80] double sided belts and missing mapping magic my little mapping: remapping is magic --- src/main/java/com/hbm/blocks/ModBlocks.java | 5 + .../java/com/hbm/blocks/generic/BlockOre.java | 2 +- .../com/hbm/blocks/network/BlockConveyor.java | 10 +- .../blocks/network/BlockConveyorChute.java | 29 ++++ .../blocks/network/BlockConveyorDouble.java | 32 +++++ .../java/com/hbm/crafting/WeaponRecipes.java | 15 -- .../hbm/entity/projectile/EntityBullet.java | 5 - .../entity/projectile/EntityCombineBall.java | 5 - .../entity/projectile/EntityDischarge.java | 5 - .../com/hbm/entity/projectile/EntityFire.java | 5 - .../com/hbm/entity/projectile/EntityLN2.java | 5 - .../hbm/entity/projectile/EntityRocket.java | 5 - .../hbm/entity/projectile/EntitySchrab.java | 5 - .../inventory/recipes/AssemblerRecipes.java | 8 +- src/main/java/com/hbm/items/ModItems.java | 96 ++++++------- .../com/hbm/items/weapon/GunCalamity.java | 128 ------------------ .../java/com/hbm/items/weapon/ItemClip.java | 2 +- .../java/com/hbm/lib/HbmChestContents.java | 2 +- src/main/java/com/hbm/main/MainRegistry.java | 36 ++++- .../hbm/textures/blocks/conveyor_double.png | Bin 0 -> 258 bytes .../textures/items/gun_bolt_action_ammo.png | Bin 245 -> 0 bytes .../items/gun_bolt_action_ammo_alt.png | Bin 245 -> 0 bytes .../textures/items/gun_buckshot_dragon.png | Bin 244 -> 0 bytes .../textures/items/gun_buckshot_explosive.png | Bin 250 -> 0 bytes .../textures/items/gun_buckshot_poison.png | Bin 247 -> 0 bytes .../hbm/textures/items/gun_buckshot_shock.png | Bin 253 -> 0 bytes .../textures/items/gun_buckshot_wither.png | Bin 272 -> 0 bytes .../hbm/textures/items/gun_calamity_ammo.png | Bin 185 -> 0 bytes .../hbm/textures/items/gun_fatman_ammo.png | Bin 347 -> 0 bytes .../hbm/textures/items/gun_lacunae_ammo.png | Bin 192 -> 0 bytes .../textures/items/gun_lever_action_ammo.png | Bin 237 -> 0 bytes .../items/gun_lever_action_ammo_alt.png | Bin 240 -> 0 bytes .../hbm/textures/items/gun_mirv_ammo.png | Bin 346 -> 0 bytes .../hbm/textures/items/gun_mp40_ammo.png | Bin 185 -> 0 bytes .../hbm/textures/items/gun_mp40_ammo_alt.png | Bin 209 -> 0 bytes .../items/gun_revolver_nopip_ammo.png | Bin 221 -> 0 bytes .../items/gun_revolver_nopip_ammo_alt.png | Bin 212 -> 0 bytes .../textures/items/gun_revolver_pip_ammo.png | Bin 242 -> 0 bytes .../items/gun_revolver_pip_ammo_alt.png | Bin 231 -> 0 bytes .../hbm/textures/items/gun_rpg_ammo.png | Bin 276 -> 0 bytes .../hbm/textures/items/gun_rpg_ammo_alt.png | Bin 327 -> 0 bytes .../hbm/textures/items/gun_rpg_ammo_new.png | Bin 259 -> 0 bytes .../hbm/textures/items/gun_stinger_ammo.png | Bin 255 -> 0 bytes .../hbm/textures/items/gun_uboinik_ammo.png | Bin 245 -> 0 bytes .../textures/items/gun_uboinik_ammo_alt.png | Bin 261 -> 0 bytes .../hbm/textures/items/gun_uzi_ammo.png | Bin 211 -> 0 bytes 46 files changed, 161 insertions(+), 239 deletions(-) create mode 100644 src/main/java/com/hbm/blocks/network/BlockConveyorChute.java create mode 100644 src/main/java/com/hbm/blocks/network/BlockConveyorDouble.java delete mode 100644 src/main/java/com/hbm/items/weapon/GunCalamity.java create mode 100644 src/main/resources/assets/hbm/textures/blocks/conveyor_double.png delete mode 100644 src/main/resources/assets/hbm/textures/items/gun_bolt_action_ammo.png delete mode 100644 src/main/resources/assets/hbm/textures/items/gun_bolt_action_ammo_alt.png delete mode 100644 src/main/resources/assets/hbm/textures/items/gun_buckshot_dragon.png delete mode 100644 src/main/resources/assets/hbm/textures/items/gun_buckshot_explosive.png delete mode 100644 src/main/resources/assets/hbm/textures/items/gun_buckshot_poison.png delete mode 100644 src/main/resources/assets/hbm/textures/items/gun_buckshot_shock.png delete mode 100644 src/main/resources/assets/hbm/textures/items/gun_buckshot_wither.png delete mode 100644 src/main/resources/assets/hbm/textures/items/gun_calamity_ammo.png delete mode 100644 src/main/resources/assets/hbm/textures/items/gun_fatman_ammo.png delete mode 100644 src/main/resources/assets/hbm/textures/items/gun_lacunae_ammo.png delete mode 100644 src/main/resources/assets/hbm/textures/items/gun_lever_action_ammo.png delete mode 100644 src/main/resources/assets/hbm/textures/items/gun_lever_action_ammo_alt.png delete mode 100644 src/main/resources/assets/hbm/textures/items/gun_mirv_ammo.png delete mode 100644 src/main/resources/assets/hbm/textures/items/gun_mp40_ammo.png delete mode 100644 src/main/resources/assets/hbm/textures/items/gun_mp40_ammo_alt.png delete mode 100644 src/main/resources/assets/hbm/textures/items/gun_revolver_nopip_ammo.png delete mode 100644 src/main/resources/assets/hbm/textures/items/gun_revolver_nopip_ammo_alt.png delete mode 100644 src/main/resources/assets/hbm/textures/items/gun_revolver_pip_ammo.png delete mode 100644 src/main/resources/assets/hbm/textures/items/gun_revolver_pip_ammo_alt.png delete mode 100644 src/main/resources/assets/hbm/textures/items/gun_rpg_ammo.png delete mode 100644 src/main/resources/assets/hbm/textures/items/gun_rpg_ammo_alt.png delete mode 100644 src/main/resources/assets/hbm/textures/items/gun_rpg_ammo_new.png delete mode 100644 src/main/resources/assets/hbm/textures/items/gun_stinger_ammo.png delete mode 100644 src/main/resources/assets/hbm/textures/items/gun_uboinik_ammo.png delete mode 100644 src/main/resources/assets/hbm/textures/items/gun_uboinik_ammo_alt.png delete mode 100644 src/main/resources/assets/hbm/textures/items/gun_uzi_ammo.png diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 1900be645..8931df5ad 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -746,6 +746,8 @@ public class ModBlocks { public static Block fluid_duct_neo; public static Block conveyor; + public static Block conveyor_double; + public static Block conveyor_chute; public static Block crane_extractor; public static Block crane_inserter; @@ -1898,6 +1900,8 @@ public class ModBlocks { fluid_duct_neo = new FluidDuctStandard(Material.iron).setBlockName("fluid_duct_neo").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pipe_neo"); conveyor = new BlockConveyor().setBlockName("conveyor").setHardness(0.0F).setResistance(2.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":conveyor"); + conveyor_double = new BlockConveyorDouble().setBlockName("conveyor_double").setHardness(2.0F).setResistance(2.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":conveyor_double"); + conveyor_chute = new BlockConveyorChute().setBlockName("conveyor_chute").setHardness(2.0F).setResistance(2.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":conveyor_chute"); crane_extractor = new CraneExtractor().setBlockName("crane_extractor").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); crane_inserter = new CraneInserter().setBlockName("crane_inserter").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); @@ -3057,6 +3061,7 @@ public class ModBlocks { GameRegistry.registerBlock(crane_extractor, crane_extractor.getUnlocalizedName()); GameRegistry.registerBlock(crane_inserter, crane_inserter.getUnlocalizedName()); GameRegistry.registerBlock(conveyor, conveyor.getUnlocalizedName()); + GameRegistry.registerBlock(conveyor_double, conveyor_double.getUnlocalizedName()); GameRegistry.registerBlock(chain, chain.getUnlocalizedName()); GameRegistry.registerBlock(ladder_sturdy, ladder_sturdy.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/generic/BlockOre.java b/src/main/java/com/hbm/blocks/generic/BlockOre.java index 93b95e163..e06d18d0c 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockOre.java +++ b/src/main/java/com/hbm/blocks/generic/BlockOre.java @@ -143,7 +143,7 @@ public class BlockOre extends Block { case 31: return ModItems.ammo_nuke_low; case 32: - return ModItems.gun_mirv_ammo; + return ModItems.ammo_mirv; case 33: return ModItems.gun_defabricator_ammo; case 34: diff --git a/src/main/java/com/hbm/blocks/network/BlockConveyor.java b/src/main/java/com/hbm/blocks/network/BlockConveyor.java index 988fb696c..2b945aad6 100644 --- a/src/main/java/com/hbm/blocks/network/BlockConveyor.java +++ b/src/main/java/com/hbm/blocks/network/BlockConveyor.java @@ -77,7 +77,7 @@ public class BlockConveyor extends Block implements IConveyorBelt { return Vec3.createVectorHelper(snap.xCoord - dir.offsetX * speed, snap.yCoord, snap.zCoord - dir.offsetZ * speed);*/ /// /// - ForgeDirection dir = ForgeDirection.getOrientation(world.getBlockMetadata(x, y, z)); + ForgeDirection dir = getTravelDirection(world, x, y, z, itemPos, speed); //snapping point Vec3 snap = this.getClosestSnappingPosition(world, x, y, z, itemPos); //snapping point + speed @@ -89,6 +89,10 @@ public class BlockConveyor extends Block implements IConveyorBelt { Vec3 ret = Vec3.createVectorHelper(itemPos.xCoord + motion.xCoord / len * speed, itemPos.yCoord + motion.yCoord / len * speed, itemPos.zCoord + motion.zCoord / len * speed); return ret; } + + public ForgeDirection getTravelDirection(World world, int x, int y, int z, Vec3 itemPos, double speed) { + return ForgeDirection.getOrientation(world.getBlockMetadata(x, y, z)); + } @Override public Vec3 getClosestSnappingPosition(World world, int x, int y, int z, Vec3 itemPos) { @@ -120,7 +124,9 @@ public class BlockConveyor extends Block implements IConveyorBelt { EntityMovingItem item = new EntityMovingItem(world); item.setItemStack(((EntityItem) entity).getEntityItem().copy()); - item.setPositionAndRotation(x + 0.5, y + 0.25, z + 0.5, 0, 0); + Vec3 pos = Vec3.createVectorHelper(entity.posX, entity.posY, entity.posZ); + Vec3 snap = this.getClosestSnappingPosition(world, x, y, z, pos); + item.setPositionAndRotation(snap.xCoord, snap.yCoord, snap.zCoord, 0, 0); world.spawnEntityInWorld(item); entity.setDead(); diff --git a/src/main/java/com/hbm/blocks/network/BlockConveyorChute.java b/src/main/java/com/hbm/blocks/network/BlockConveyorChute.java new file mode 100644 index 000000000..8e84098e1 --- /dev/null +++ b/src/main/java/com/hbm/blocks/network/BlockConveyorChute.java @@ -0,0 +1,29 @@ +package com.hbm.blocks.network; + +import api.hbm.conveyor.IConveyorBelt; +import net.minecraft.util.Vec3; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public class BlockConveyorChute extends BlockConveyor { + + @Override + public ForgeDirection getTravelDirection(World world, int x, int y, int z, Vec3 itemPos, double speed) { + + if(world.getBlock(x, y - 1, z) instanceof IConveyorBelt && itemPos.yCoord - speed < y) { + return ForgeDirection.DOWN; + } + + return ForgeDirection.getOrientation(world.getBlockMetadata(x, y, z)); + } + + @Override + public Vec3 getClosestSnappingPosition(World world, int x, int y, int z, Vec3 itemPos) { + + if(world.getBlock(x, y - 1, z) instanceof IConveyorBelt && itemPos.yCoord <= y + 0.25) { + return super.getClosestSnappingPosition(world, x, y, z, itemPos); + } else { + return Vec3.createVectorHelper(x + 0.5, y, z + 0.5); + } + } +} diff --git a/src/main/java/com/hbm/blocks/network/BlockConveyorDouble.java b/src/main/java/com/hbm/blocks/network/BlockConveyorDouble.java new file mode 100644 index 000000000..b83cb95cb --- /dev/null +++ b/src/main/java/com/hbm/blocks/network/BlockConveyorDouble.java @@ -0,0 +1,32 @@ +package com.hbm.blocks.network; + +import net.minecraft.util.MathHelper; +import net.minecraft.util.Vec3; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public class BlockConveyorDouble extends BlockConveyor { + + @Override + public Vec3 getClosestSnappingPosition(World world, int x, int y, int z, Vec3 itemPos) { + + ForgeDirection dir = ForgeDirection.getOrientation(world.getBlockMetadata(x, y, z)); + + itemPos.xCoord = MathHelper.clamp_double(itemPos.xCoord, x, x + 1); + itemPos.zCoord = MathHelper.clamp_double(itemPos.zCoord, z, z + 1); + + double posX = x + 0.5; + double posZ = z + 0.5; + + if(dir.offsetX != 0) { + posX = itemPos.xCoord; + posZ += itemPos.zCoord > posZ ? 0.25 : -0.25; + } + if(dir.offsetZ != 0) { + posZ = itemPos.zCoord; + posX += itemPos.xCoord > posX ? 0.25 : -0.25; + } + + return Vec3.createVectorHelper(posX, y + 0.25, posZ); + } +} diff --git a/src/main/java/com/hbm/crafting/WeaponRecipes.java b/src/main/java/com/hbm/crafting/WeaponRecipes.java index dca056ea8..be12d3896 100644 --- a/src/main/java/com/hbm/crafting/WeaponRecipes.java +++ b/src/main/java/com/hbm/crafting/WeaponRecipes.java @@ -150,21 +150,6 @@ public class WeaponRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_fireext, 1), new Object[] { "HB", " T", 'H', ModItems.hull_small_steel, 'B', ModItems.bolt_tungsten, 'T', ModItems.tank_steel }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_spas12, 1), new Object[] { "TPS", "HHR", " L", 'T', ModItems.bolt_tungsten, 'P', STEEL.plate(), 'S', STEEL.ingot(), 'H', ModItems.hull_small_steel, 'R', ModItems.mechanism_rifle_1, 'L', ANY_PLASTIC.ingot()}); - //Legacy ammo recycling - CraftingManager.addShapelessAuto(new ItemStack(ModItems.ammo_44, 1), new Object[] { ModItems.gun_revolver_nopip_ammo }); - CraftingManager.addShapelessAuto(new ItemStack(ModItems.ammo_44_pip, 1), new Object[] { ModItems.gun_revolver_pip_ammo }); - CraftingManager.addShapelessAuto(new ItemStack(ModItems.ammo_50bmg, 1), new Object[] { ModItems.gun_calamity_ammo }); - CraftingManager.addShapelessAuto(new ItemStack(ModItems.ammo_5mm, 1), new Object[] { ModItems.gun_lacunae_ammo }); - CraftingManager.addShapelessAuto(new ItemStack(ModItems.ammo_rocket, 1), new Object[] { ModItems.gun_rpg_ammo }); - CraftingManager.addShapelessAuto(new ItemStack(ModItems.ammo_9mm, 1), new Object[] { ModItems.gun_mp40_ammo }); - CraftingManager.addShapelessAuto(new ItemStack(ModItems.ammo_22lr, 1), new Object[] { ModItems.gun_uzi_ammo }); - CraftingManager.addShapelessAuto(new ItemStack(ModItems.ammo_12gauge, 1), new Object[] { ModItems.gun_uboinik_ammo }); - CraftingManager.addShapelessAuto(new ItemStack(ModItems.ammo_20gauge, 1), new Object[] { ModItems.gun_lever_action_ammo }); - CraftingManager.addShapelessAuto(new ItemStack(ModItems.ammo_20gauge_slug, 1), new Object[] { ModItems.gun_bolt_action_ammo }); - CraftingManager.addShapelessAuto(new ItemStack(ModItems.ammo_nuke_high, 1), new Object[] { ModItems.gun_fatman_ammo }); - CraftingManager.addShapelessAuto(new ItemStack(ModItems.ammo_mirv_high, 1), new Object[] { ModItems.gun_mirv_ammo }); - CraftingManager.addShapelessAuto(new ItemStack(ModItems.ammo_stinger_rocket, 1), new Object[] { ModItems.gun_stinger_ammo }); - //Ammo assemblies CraftingManager.addRecipeAuto(new ItemStack(ModItems.pellet_flechette, 1), new Object[] { " L ", " L ", "LLL", 'L', PB.nugget() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.pellet_claws, 1), new Object[] { " X ", "X X", " XX", 'X', STEEL.plate() }); diff --git a/src/main/java/com/hbm/entity/projectile/EntityBullet.java b/src/main/java/com/hbm/entity/projectile/EntityBullet.java index ee6300933..acabc493d 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityBullet.java +++ b/src/main/java/com/hbm/entity/projectile/EntityBullet.java @@ -762,11 +762,6 @@ public class EntityBullet extends Entity implements IProjectile { if (!this.worldObj.isRemote && this.inGround && this.arrowShake <= 0) { boolean flag = this.canBePickedUp == 1 || this.canBePickedUp == 2 && p_70100_1_.capabilities.isCreativeMode; - if (this.canBePickedUp == 1 - && !p_70100_1_.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_rpg_ammo, 1))) { - flag = false; - } - if (flag) { p_70100_1_.onItemPickup(this, 1); this.setDead(); diff --git a/src/main/java/com/hbm/entity/projectile/EntityCombineBall.java b/src/main/java/com/hbm/entity/projectile/EntityCombineBall.java index 7c5fa0031..6ed531ce3 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityCombineBall.java +++ b/src/main/java/com/hbm/entity/projectile/EntityCombineBall.java @@ -483,11 +483,6 @@ public class EntityCombineBall extends Entity implements IProjectile { boolean flag = this.canBePickedUp == 1 || this.canBePickedUp == 2 && p_70100_1_.capabilities.isCreativeMode; - if (this.canBePickedUp == 1 && !p_70100_1_.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_rpg_ammo, 1))) - { - flag = false; - } - if (flag) { p_70100_1_.onItemPickup(this, 1); diff --git a/src/main/java/com/hbm/entity/projectile/EntityDischarge.java b/src/main/java/com/hbm/entity/projectile/EntityDischarge.java index 09e0e9cf3..0c889a8c3 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityDischarge.java +++ b/src/main/java/com/hbm/entity/projectile/EntityDischarge.java @@ -507,11 +507,6 @@ public class EntityDischarge extends Entity implements IProjectile { boolean flag = this.canBePickedUp == 1 || this.canBePickedUp == 2 && p_70100_1_.capabilities.isCreativeMode; - if (this.canBePickedUp == 1 && !p_70100_1_.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_rpg_ammo, 1))) - { - flag = false; - } - if (flag) { p_70100_1_.onItemPickup(this, 1); diff --git a/src/main/java/com/hbm/entity/projectile/EntityFire.java b/src/main/java/com/hbm/entity/projectile/EntityFire.java index cee78465b..a0d6ad316 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityFire.java +++ b/src/main/java/com/hbm/entity/projectile/EntityFire.java @@ -484,11 +484,6 @@ public class EntityFire extends Entity implements IProjectile { boolean flag = this.canBePickedUp == 1 || this.canBePickedUp == 2 && p_70100_1_.capabilities.isCreativeMode; - if (this.canBePickedUp == 1 && !p_70100_1_.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_rpg_ammo, 1))) - { - flag = false; - } - if (flag) { p_70100_1_.onItemPickup(this, 1); diff --git a/src/main/java/com/hbm/entity/projectile/EntityLN2.java b/src/main/java/com/hbm/entity/projectile/EntityLN2.java index 0c0e3ab6d..56d283091 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityLN2.java +++ b/src/main/java/com/hbm/entity/projectile/EntityLN2.java @@ -481,11 +481,6 @@ public class EntityLN2 extends Entity implements IProjectile { boolean flag = this.canBePickedUp == 1 || this.canBePickedUp == 2 && p_70100_1_.capabilities.isCreativeMode; - if (this.canBePickedUp == 1 && !p_70100_1_.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_rpg_ammo, 1))) - { - flag = false; - } - if (flag) { p_70100_1_.onItemPickup(this, 1); diff --git a/src/main/java/com/hbm/entity/projectile/EntityRocket.java b/src/main/java/com/hbm/entity/projectile/EntityRocket.java index 2d2ae1eb1..9adaeaa04 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityRocket.java +++ b/src/main/java/com/hbm/entity/projectile/EntityRocket.java @@ -559,11 +559,6 @@ public class EntityRocket extends Entity implements IProjectile { boolean flag = this.canBePickedUp == 1 || this.canBePickedUp == 2 && p_70100_1_.capabilities.isCreativeMode; - if (this.canBePickedUp == 1 && !p_70100_1_.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_rpg_ammo, 1))) - { - flag = false; - } - if (flag) { p_70100_1_.onItemPickup(this, 1); diff --git a/src/main/java/com/hbm/entity/projectile/EntitySchrab.java b/src/main/java/com/hbm/entity/projectile/EntitySchrab.java index 7cbec714a..c2974df2f 100644 --- a/src/main/java/com/hbm/entity/projectile/EntitySchrab.java +++ b/src/main/java/com/hbm/entity/projectile/EntitySchrab.java @@ -557,11 +557,6 @@ public class EntitySchrab extends Entity implements IProjectile { boolean flag = this.canBePickedUp == 1 || this.canBePickedUp == 2 && p_70100_1_.capabilities.isCreativeMode; - if (this.canBePickedUp == 1 && !p_70100_1_.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_rpg_ammo, 1))) - { - flag = false; - } - if (flag) { this.playSound("random.pop", 0.2F, ((this.rand.nextFloat() - this.rand.nextFloat()) * 0.7F + 1.0F) * 2.0F); diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java index 114a43423..29cb1e87f 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java @@ -167,8 +167,8 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModItems.hazmat_cloth, 4), new AStack[] {new OreDictStack(PB.dust(), 4), new ComparableStack(Items.string, 8), },50); makeRecipe(new ComparableStack(ModItems.asbestos_cloth, 4), new AStack[] {new OreDictStack(ASBESTOS.ingot(), 2), new ComparableStack(Items.string, 6), new ComparableStack(Blocks.wool, 1), },50); makeRecipe(new ComparableStack(ModItems.filter_coal, 1), new AStack[] {new OreDictStack(COAL.dust(), 4), new ComparableStack(Items.string, 6), new ComparableStack(Items.paper, 1), },50); - makeRecipe(new ComparableStack(ModItems.centrifuge_element, 1), new AStack[] {new ComparableStack(ModItems.tank_steel, 1), new ComparableStack(ModItems.coil_tungsten, 1), new ComparableStack(ModItems.wire_red_copper, 4), new ComparableStack(ModItems.motor, 1), },200); - makeRecipe(new ComparableStack(ModItems.centrifuge_tower, 1), new AStack[] {new ComparableStack(ModItems.centrifuge_element, 4), new OreDictStack(STEEL.plate(), 4), new ComparableStack(ModItems.wire_red_copper, 4), new OreDictStack(ANY_PLASTIC.ingot(), 2), },150); + makeRecipe(new ComparableStack(ModItems.centrifuge_element, 1), new AStack[] {new OreDictStack(STEEL.plate(), 4), new OreDictStack(TI.plate(), 4), new ComparableStack(ModItems.motor, 1), }, 100); + //makeRecipe(new ComparableStack(ModItems.centrifuge_tower, 1), new AStack[] {new ComparableStack(ModItems.centrifuge_element, 4), new OreDictStack(STEEL.plate(), 4), new ComparableStack(ModItems.wire_red_copper, 4), new OreDictStack(ANY_PLASTIC.ingot(), 2), },150); makeRecipe(new ComparableStack(ModItems.magnet_circular, 1), new AStack[] {new ComparableStack(ModBlocks.fusion_conductor, 5), new OreDictStack(STEEL.ingot(), 4), new OreDictStack(ALLOY.plate(), 6), },150); makeRecipe(new ComparableStack(ModItems.reactor_core, 1), new AStack[] {new OreDictStack(PB.ingot(), 8), new OreDictStack(BE.ingot(), 6), new OreDictStack(STEEL.plate(), 16), new OreDictStack(OreDictManager.getReflector(), 8), new OreDictStack(FIBER.ingot(), 2) },100); makeRecipe(new ComparableStack(ModItems.rtg_unit, 1), new AStack[] {new ComparableStack(ModItems.thermo_element, 2), new ComparableStack(ModItems.board_copper, 1), new OreDictStack(PB.ingot(), 2), new OreDictStack(STEEL.plate(), 2), new ComparableStack(ModItems.circuit_copper, 1), },100); @@ -273,8 +273,8 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModBlocks.cmb_brick_reinforced, 8), new AStack[] {new ComparableStack(ModBlocks.block_magnetized_tungsten, 4), new ComparableStack(ModBlocks.brick_concrete, 4), new ComparableStack(ModBlocks.cmb_brick, 1), new OreDictStack(STEEL.plate(), 4), },200); makeRecipe(new ComparableStack(ModBlocks.seal_frame, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 3), new ComparableStack(ModItems.wire_aluminium, 4), new OreDictStack(REDSTONE.dust(), 2), new ComparableStack(ModBlocks.steel_roof, 5), },50); makeRecipe(new ComparableStack(ModBlocks.seal_controller, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 3), new OreDictStack(ANY_PLASTIC.ingot(), 4), new OreDictStack(MINGRADE.ingot(), 1), new OreDictStack(REDSTONE.dust(), 4), new ComparableStack(ModBlocks.steel_roof, 5), },100); - makeRecipe(new ComparableStack(ModBlocks.machine_centrifuge, 1), new AStack[] {new ComparableStack(ModItems.centrifuge_tower, 1), new OreDictStack(STEEL.ingot(), 4), new OreDictStack(IRON.ingot(), 4), new OreDictStack(STEEL.plate(), 2), new OreDictStack(CU.plate(), 2), new ComparableStack(ModItems.wire_red_copper, 8), },250); - makeRecipe(new ComparableStack(ModBlocks.machine_gascent, 1), new AStack[] {new ComparableStack(ModItems.centrifuge_tower, 1), new OreDictStack(STEEL.ingot(), 4), new OreDictStack(DESH.ingot(), 2), new ComparableStack(ModItems.coil_tungsten, 4), new ComparableStack(ModItems.wire_red_copper, 16) },300); + makeRecipe(new ComparableStack(ModBlocks.machine_centrifuge, 1), new AStack[] {new ComparableStack(ModItems.centrifuge_element, 1), new OreDictStack(ANY_PLASTIC.ingot(), 2), new OreDictStack(STEEL.plate(), 8), new OreDictStack(CU.plate(), 8), new ComparableStack(ModItems.circuit_copper, 1), }, 200); + 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_red_copper, 1) }, 300); makeRecipe(new ComparableStack(ModBlocks.machine_rtg_furnace_off, 1), new AStack[] {new ComparableStack(Blocks.furnace, 1), new ComparableStack(ModItems.rtg_unit, 3), new OreDictStack(PB.plate(), 6), new OreDictStack(OreDictManager.getReflector(), 4), new OreDictStack(CU.plate(), 2), },150); makeRecipe(new ComparableStack(ModBlocks.machine_diesel, 1), new AStack[] {new ComparableStack(ModItems.hull_small_steel, 4), new ComparableStack(Blocks.piston, 4), new OreDictStack(STEEL.ingot(), 6), new OreDictStack(MINGRADE.ingot(), 2), new OreDictStack(CU.plate(), 4), new ComparableStack(ModItems.wire_red_copper, 6), },200); makeRecipe(new ComparableStack(ModBlocks.machine_selenium, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 4), new OreDictStack(TI.plate(), 6), new OreDictStack(CU.plate(), 8), new ComparableStack(ModItems.hull_big_steel, 1), new ComparableStack(ModItems.hull_small_steel, 9), new ComparableStack(ModItems.pedestal_steel, 1), new ComparableStack(ModItems.coil_copper, 4), },250); diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 795fce278..479020721 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -513,7 +513,7 @@ public class ModItems { public static Item motor; public static Item motor_desh; public static Item centrifuge_element; - public static Item centrifuge_tower; + //public static Item centrifuge_tower; public static Item reactor_core; public static Item rtg_unit; public static Item thermo_unit_empty; @@ -531,9 +531,9 @@ public class ModItems { public static Item coil_magnetized_tungsten; public static Item coil_gold; public static Item coil_gold_torus; - public static Item magnet_dee; + //public static Item magnet_dee; public static Item magnet_circular; - public static Item cyclotron_tower; + //public static Item cyclotron_tower; public static Item component_limiter; public static Item component_emitter; public static Item chlorine_pinwheel; @@ -1594,14 +1594,14 @@ public class ModItems { public static Item ammo_stinger_rocket_bones; public static Item gun_rpg; - public static Item gun_rpg_ammo; + //public static Item gun_rpg_ammo; public static Item gun_karl; public static Item gun_panzerschreck; public static Item gun_quadro; public static Item gun_hk69; public static Item gun_stinger; public static Item gun_skystinger; - public static Item gun_stinger_ammo; + //public static Item gun_stinger_ammo; public static Item gun_revolver; public static Item gun_revolver_saturnite; public static Item gun_revolver_ammo; @@ -1620,40 +1620,40 @@ public class ModItems { public static Item gun_revolver_nightmare2; public static Item gun_revolver_nightmare2_ammo; public static Item gun_revolver_pip; - public static Item gun_revolver_pip_ammo; + //public static Item gun_revolver_pip_ammo; public static Item gun_revolver_nopip; public static Item gun_revolver_blackjack; public static Item gun_revolver_silver; public static Item gun_revolver_red; - public static Item gun_revolver_nopip_ammo; + //public static Item gun_revolver_nopip_ammo; public static Item gun_deagle; public static Item gun_flechette; public static Item gun_ar15; public static Item gun_calamity; public static Item gun_calamity_dual; - public static Item gun_calamity_ammo; + //public static Item gun_calamity_ammo; public static Item gun_minigun; public static Item gun_avenger; public static Item gun_lacunae; - public static Item gun_lacunae_ammo; + //public static Item gun_lacunae_ammo; public static Item gun_folly; public static Item gun_fatman; public static Item gun_proto; - public static Item gun_fatman_ammo; + //public static Item gun_fatman_ammo; public static Item gun_mirv; - public static Item gun_mirv_ammo; + //public static Item gun_mirv_ammo; public static Item gun_bf; public static Item gun_bf_ammo; public static Item gun_mp40; - public static Item gun_mp40_ammo; + //public static Item gun_mp40_ammo; public static Item gun_thompson; public static Item gun_uzi; public static Item gun_uzi_silencer; public static Item gun_uzi_saturnite; public static Item gun_uzi_saturnite_silencer; - public static Item gun_uzi_ammo; + //public static Item gun_uzi_ammo; public static Item gun_uboinik; - public static Item gun_uboinik_ammo; + //public static Item gun_uboinik_ammo; public static Item gun_spas12; public static Item gun_supershotgun; public static Item gun_ks23; @@ -1661,11 +1661,11 @@ public class ModItems { public static Item gun_lever_action; public static Item gun_lever_action_dark; public static Item gun_lever_action_sonata; - public static Item gun_lever_action_ammo; + //public static Item gun_lever_action_ammo; public static Item gun_bolt_action; public static Item gun_bolt_action_green; public static Item gun_bolt_action_saturnite; - public static Item gun_bolt_action_ammo; + //public static Item gun_bolt_action_ammo; public static Item gun_mymy; public static Item gun_b92; public static Item gun_b92_ammo; @@ -3015,7 +3015,7 @@ public class ModItems { motor = new Item().setUnlocalizedName("motor").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":motor"); motor_desh = new Item().setUnlocalizedName("motor_desh").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":motor_desh"); centrifuge_element = new Item().setUnlocalizedName("centrifuge_element").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":centrifuge_element"); - centrifuge_tower = new Item().setUnlocalizedName("centrifuge_tower").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":centrifuge_tower"); + //centrifuge_tower = new Item().setUnlocalizedName("centrifuge_tower").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":centrifuge_tower"); reactor_core = new Item().setUnlocalizedName("reactor_core").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":reactor_core"); rtg_unit = new Item().setUnlocalizedName("rtg_unit").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":rtg_unit"); thermo_unit_empty = new Item().setUnlocalizedName("thermo_unit_empty").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":thermo_unit_empty"); @@ -3030,9 +3030,9 @@ public class ModItems { coil_magnetized_tungsten = new Item().setUnlocalizedName("coil_magnetized_tungsten").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":coil_magnetized_tungsten"); coil_gold = new Item().setUnlocalizedName("coil_gold").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":coil_gold"); coil_gold_torus = new Item().setUnlocalizedName("coil_gold_torus").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":coil_gold_torus"); - magnet_dee = new Item().setUnlocalizedName("magnet_dee").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":magnet_dee"); + //magnet_dee = new Item().setUnlocalizedName("magnet_dee").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":magnet_dee"); magnet_circular = new Item().setUnlocalizedName("magnet_circular").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":magnet_circular"); - cyclotron_tower = new Item().setUnlocalizedName("cyclotron_tower").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":cyclotron_tower"); + //cyclotron_tower = new Item().setUnlocalizedName("cyclotron_tower").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":cyclotron_tower"); pellet_coal = new Item().setUnlocalizedName("pellet_coal").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":pellet_coal"); component_limiter = new Item().setUnlocalizedName("component_limiter").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":component_limiter"); component_emitter = new Item().setUnlocalizedName("component_emitter").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":component_emitter"); @@ -4324,11 +4324,11 @@ public class ModItems { gun_karl = new ItemGunBase(GunRocketFactory.getKarlConfig()).setUnlocalizedName("gun_karl").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_karl"); gun_panzerschreck = new ItemGunBase(GunRocketFactory.getPanzConfig()).setUnlocalizedName("gun_panzerschreck").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_panzerschreck"); gun_quadro = new ItemGunBase(GunRocketFactory.getQuadroConfig()).setUnlocalizedName("gun_quadro").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_quadro"); - gun_rpg_ammo = new Item().setUnlocalizedName("gun_rpg_ammo").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_rpg_ammo_alt"); + //gun_rpg_ammo = new Item().setUnlocalizedName("gun_rpg_ammo").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_rpg_ammo_alt"); gun_hk69 = new ItemGunBase(GunGrenadeFactory.getHK69Config()).setUnlocalizedName("gun_hk69").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_hk69"); gun_stinger = new ItemGunBase(GunRocketHomingFactory.getStingerConfig()).setUnlocalizedName("gun_stinger").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_stinger"); gun_skystinger = new ItemGunBase(GunRocketHomingFactory.getSkyStingerConfig()).setUnlocalizedName("gun_skystinger").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_skystinger"); - gun_stinger_ammo = new Item().setUnlocalizedName("gun_stinger_ammo").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_stinger_ammo"); + //gun_stinger_ammo = new Item().setUnlocalizedName("gun_stinger_ammo").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_stinger_ammo"); gun_revolver_ammo = new Item().setUnlocalizedName("gun_revolver_ammo").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver_ammo"); gun_revolver = new ItemGunBase(Gun357MagnumFactory.getRevolverConfig()).setUnlocalizedName("gun_revolver").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver"); gun_revolver_saturnite = new ItemGunBase(Gun357MagnumFactory.getRevolverSaturniteConfig()).setUnlocalizedName("gun_revolver_saturnite").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver_saturnite"); @@ -4346,9 +4346,9 @@ public class ModItems { gun_revolver_nightmare = new ItemGunBase(Gun357MagnumFactory.getRevolverNightmareConfig()).setUnlocalizedName("gun_revolver_nightmare").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver_nightmare"); gun_revolver_nightmare2_ammo = new ItemCustomLore().setUnlocalizedName("gun_revolver_nightmare2_ammo").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver_nightmare2_ammo"); gun_revolver_nightmare2 = new ItemGunBase(Gun357MagnumFactory.getRevolverNightmare2Config()).setUnlocalizedName("gun_revolver_nightmare2").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver_nightmare2"); - gun_revolver_pip_ammo = new ItemCustomLore().setUnlocalizedName("gun_revolver_pip_ammo").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_revolver_pip_ammo"); + //gun_revolver_pip_ammo = new ItemCustomLore().setUnlocalizedName("gun_revolver_pip_ammo").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_revolver_pip_ammo"); gun_revolver_pip = new ItemGunBase(Gun44MagnumFactory.getMacintoshConfig()).setUnlocalizedName("gun_revolver_pip").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver_pip"); - gun_revolver_nopip_ammo = new Item().setUnlocalizedName("gun_revolver_nopip_ammo").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_revolver_nopip_ammo"); + //gun_revolver_nopip_ammo = new Item().setUnlocalizedName("gun_revolver_nopip_ammo").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_revolver_nopip_ammo"); gun_revolver_nopip = new ItemGunBase(Gun44MagnumFactory.getNovacConfig()).setUnlocalizedName("gun_revolver_nopip").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver_nopip"); gun_revolver_blackjack = new ItemGunBase(Gun44MagnumFactory.getBlackjackConfig()).setUnlocalizedName("gun_revolver_blackjack").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver_blackjack"); gun_revolver_silver = new ItemGunBase(Gun44MagnumFactory.getSilverConfig()).setUnlocalizedName("gun_revolver_silver").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver_silver"); @@ -4356,40 +4356,40 @@ public class ModItems { gun_deagle = new ItemGunBase(Gun50AEFactory.getDeagleConfig()).setUnlocalizedName("gun_deagle").setFull3D().setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_deagle"); gun_flechette = new ItemGunBase(Gun556mmFactory.getSPIWConfig(), Gun556mmFactory.getGLauncherConfig()).setUnlocalizedName("gun_flechette").setFull3D().setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_flechette"); gun_ar15 = new ItemGunBase(Gun50BMGFactory.getAR15Config()).setUnlocalizedName("gun_ar15").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_ar15"); - gun_calamity_ammo = new ItemCustomLore().setUnlocalizedName("gun_calamity_ammo").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_calamity_ammo"); + //gun_calamity_ammo = new ItemCustomLore().setUnlocalizedName("gun_calamity_ammo").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_calamity_ammo"); gun_calamity = new ItemGunBase(Gun50BMGFactory.getCalamityConfig()).setUnlocalizedName("gun_calamity").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_calamity"); gun_calamity_dual = new ItemGunBase(Gun50BMGFactory.getSaddleConfig()).setUnlocalizedName("gun_calamity_dual").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_calamity_dual"); - gun_lacunae_ammo = new ItemCustomLore().setUnlocalizedName("gun_lacunae_ammo").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_lacunae_ammo"); + //gun_lacunae_ammo = new ItemCustomLore().setUnlocalizedName("gun_lacunae_ammo").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_lacunae_ammo"); gun_minigun = new ItemGunLacunae(Gun5mmFactory.get53Config()).setUnlocalizedName("gun_minigun").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_minigun"); gun_avenger = new ItemGunLacunae(Gun5mmFactory.get57Config()).setUnlocalizedName("gun_avenger").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_avenger"); gun_lacunae = new ItemGunLacunae(Gun5mmFactory.getLacunaeConfig()).setUnlocalizedName("gun_lacunae").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_lacunae"); gun_folly = new GunFolly().setUnlocalizedName("gun_folly").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_folly"); - gun_fatman_ammo = new Item().setUnlocalizedName("gun_fatman_ammo").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_fatman_ammo"); + //gun_fatman_ammo = new Item().setUnlocalizedName("gun_fatman_ammo").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_fatman_ammo"); gun_fatman = new ItemGunBase(GunFatmanFactory.getFatmanConfig()).setUnlocalizedName("gun_fatman").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_fatman"); gun_proto = new ItemGunBase(GunFatmanFactory.getProtoConfig()).setUnlocalizedName("gun_proto").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_fatman"); - gun_mirv_ammo = new Item().setUnlocalizedName("gun_mirv_ammo").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_mirv_ammo"); + //gun_mirv_ammo = new Item().setUnlocalizedName("gun_mirv_ammo").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_mirv_ammo"); gun_mirv = new ItemGunBase(GunFatmanFactory.getMIRVConfig()).setUnlocalizedName("gun_mirv").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_mirv"); gun_bf_ammo = new Item().setUnlocalizedName("gun_bf_ammo").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_bf_ammo"); gun_bf = new ItemGunBase(GunFatmanFactory.getBELConfig()).setUnlocalizedName("gun_bf").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_bf"); - gun_mp40_ammo = new Item().setUnlocalizedName("gun_mp40_ammo").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_mp40_ammo"); + //gun_mp40_ammo = new Item().setUnlocalizedName("gun_mp40_ammo").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_mp40_ammo"); gun_mp40 = new ItemGunBase(Gun9mmFactory.getMP40Config()).setUnlocalizedName("gun_mp40").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_mp40"); gun_thompson = new ItemGunBase(Gun9mmFactory.getThompsonConfig()).setUnlocalizedName("gun_thompson").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_thompson"); - gun_uzi_ammo = new Item().setUnlocalizedName("gun_uzi_ammo").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_uzi_ammo"); + //gun_uzi_ammo = new Item().setUnlocalizedName("gun_uzi_ammo").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_uzi_ammo"); gun_uzi = new ItemGunBase(Gun22LRFactory.getUziConfig()).setUnlocalizedName("gun_uzi").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_uzi"); gun_uzi_silencer = new ItemGunBase(Gun22LRFactory.getUziConfig().silenced()).setUnlocalizedName("gun_uzi_silencer").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_uzi_silencer"); gun_uzi_saturnite = new ItemGunBase(Gun22LRFactory.getSaturniteConfig()).setUnlocalizedName("gun_uzi_saturnite").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_uzi_saturnite"); gun_uzi_saturnite_silencer = new ItemGunBase(Gun22LRFactory.getSaturniteConfig().silenced()).setUnlocalizedName("gun_uzi_saturnite_silencer").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_uzi_saturnite_silencer"); - gun_uboinik_ammo = new Item().setUnlocalizedName("gun_uboinik_ammo").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_uboinik_ammo"); + //gun_uboinik_ammo = new Item().setUnlocalizedName("gun_uboinik_ammo").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_uboinik_ammo"); gun_uboinik = new ItemGunBase(Gun12GaugeFactory.getUboinikConfig()).setUnlocalizedName("gun_uboinik").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_uboinik"); gun_spas12 = new ItemGunBase(Gun12GaugeFactory.getSpas12Config(), Gun12GaugeFactory.getSpas12AltConfig()).setUnlocalizedName("gun_spas12").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_spas12"); gun_supershotgun = new ItemGunShotty(Gun12GaugeFactory.getShottyConfig()).setUnlocalizedName("gun_supershotgun").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_uboinik"); gun_ks23 = new ItemGunBase(Gun4GaugeFactory.getKS23Config()).setUnlocalizedName("gun_ks23").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_uboinik"); gun_sauer = new ItemGunBase(Gun4GaugeFactory.getSauerConfig()).setUnlocalizedName("gun_sauer").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_uboinik"); - gun_lever_action_ammo = new Item().setUnlocalizedName("gun_lever_action_ammo").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_lever_action_ammo"); + //gun_lever_action_ammo = new Item().setUnlocalizedName("gun_lever_action_ammo").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_lever_action_ammo"); gun_lever_action = new ItemGunBase(Gun20GaugeFactory.getMareConfig()).setUnlocalizedName("gun_lever_action").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_lever_action"); gun_lever_action_dark = new ItemGunBase(Gun20GaugeFactory.getMareDarkConfig()).setUnlocalizedName("gun_lever_action_dark").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_lever_action_dark"); gun_lever_action_sonata = new GunLeverActionS().setUnlocalizedName("gun_lever_action_sonata").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_lever_action_sonata"); - gun_bolt_action_ammo = new Item().setUnlocalizedName("gun_bolt_action_ammo").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_bolt_action_ammo"); + //gun_bolt_action_ammo = new Item().setUnlocalizedName("gun_bolt_action_ammo").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_bolt_action_ammo"); gun_bolt_action = new ItemGunBase(Gun20GaugeFactory.getBoltConfig()).setUnlocalizedName("gun_bolt_action").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_bolt_action"); gun_bolt_action_green = new ItemGunBase(Gun20GaugeFactory.getBoltGreenConfig()).setUnlocalizedName("gun_bolt_action_green").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_bolt_action_green"); gun_bolt_action_saturnite = new ItemGunBase(Gun20GaugeFactory.getBoltSaturniteConfig()).setUnlocalizedName("gun_bolt_action_saturnite").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_bolt_action_saturnite"); @@ -6179,10 +6179,10 @@ public class ModItems { GameRegistry.registerItem(motor, motor.getUnlocalizedName()); GameRegistry.registerItem(motor_desh, motor_desh.getUnlocalizedName()); GameRegistry.registerItem(centrifuge_element, centrifuge_element.getUnlocalizedName()); - GameRegistry.registerItem(centrifuge_tower, centrifuge_tower.getUnlocalizedName()); - GameRegistry.registerItem(magnet_dee, magnet_dee.getUnlocalizedName()); + //GameRegistry.registerItem(centrifuge_tower, centrifuge_tower.getUnlocalizedName()); + //GameRegistry.registerItem(magnet_dee, magnet_dee.getUnlocalizedName()); GameRegistry.registerItem(magnet_circular, magnet_circular.getUnlocalizedName()); - GameRegistry.registerItem(cyclotron_tower, cyclotron_tower.getUnlocalizedName()); + //GameRegistry.registerItem(cyclotron_tower, cyclotron_tower.getUnlocalizedName()); GameRegistry.registerItem(reactor_core, reactor_core.getUnlocalizedName()); GameRegistry.registerItem(rtg_unit, rtg_unit.getUnlocalizedName()); GameRegistry.registerItem(thermo_unit_empty, thermo_unit_empty.getUnlocalizedName()); @@ -7222,21 +7222,21 @@ public class ModItems { GameRegistry.registerItem(gun_revolver_nightmare_ammo, gun_revolver_nightmare_ammo.getUnlocalizedName()); GameRegistry.registerItem(ammo_357_desh, ammo_357_desh.getUnlocalizedName()); GameRegistry.registerItem(gun_revolver_nightmare2_ammo, gun_revolver_nightmare2_ammo.getUnlocalizedName()); - GameRegistry.registerItem(gun_revolver_pip_ammo, gun_revolver_pip_ammo.getUnlocalizedName()); - GameRegistry.registerItem(gun_revolver_nopip_ammo, gun_revolver_nopip_ammo.getUnlocalizedName()); - GameRegistry.registerItem(gun_calamity_ammo, gun_calamity_ammo.getUnlocalizedName()); - GameRegistry.registerItem(gun_lacunae_ammo, gun_lacunae_ammo.getUnlocalizedName()); + //GameRegistry.registerItem(gun_revolver_pip_ammo, gun_revolver_pip_ammo.getUnlocalizedName()); + //GameRegistry.registerItem(gun_revolver_nopip_ammo, gun_revolver_nopip_ammo.getUnlocalizedName()); + //GameRegistry.registerItem(gun_calamity_ammo, gun_calamity_ammo.getUnlocalizedName()); + //GameRegistry.registerItem(gun_lacunae_ammo, gun_lacunae_ammo.getUnlocalizedName()); GameRegistry.registerItem(gun_b92_ammo, gun_b92_ammo.getUnlocalizedName()); - GameRegistry.registerItem(gun_rpg_ammo, gun_rpg_ammo.getUnlocalizedName()); - GameRegistry.registerItem(gun_stinger_ammo, gun_stinger_ammo.getUnlocalizedName()); - GameRegistry.registerItem(gun_fatman_ammo, gun_fatman_ammo.getUnlocalizedName()); - GameRegistry.registerItem(gun_mirv_ammo, gun_mirv_ammo.getUnlocalizedName()); + //GameRegistry.registerItem(gun_rpg_ammo, gun_rpg_ammo.getUnlocalizedName()); + //GameRegistry.registerItem(gun_stinger_ammo, gun_stinger_ammo.getUnlocalizedName()); + //GameRegistry.registerItem(gun_fatman_ammo, gun_fatman_ammo.getUnlocalizedName()); + //GameRegistry.registerItem(gun_mirv_ammo, gun_mirv_ammo.getUnlocalizedName()); GameRegistry.registerItem(gun_bf_ammo, gun_bf_ammo.getUnlocalizedName()); - GameRegistry.registerItem(gun_mp40_ammo, gun_mp40_ammo.getUnlocalizedName()); - GameRegistry.registerItem(gun_uzi_ammo, gun_uzi_ammo.getUnlocalizedName()); - GameRegistry.registerItem(gun_uboinik_ammo, gun_uboinik_ammo.getUnlocalizedName()); - GameRegistry.registerItem(gun_lever_action_ammo, gun_lever_action_ammo.getUnlocalizedName()); - GameRegistry.registerItem(gun_bolt_action_ammo, gun_bolt_action_ammo.getUnlocalizedName()); + //GameRegistry.registerItem(gun_mp40_ammo, gun_mp40_ammo.getUnlocalizedName()); + //GameRegistry.registerItem(gun_uzi_ammo, gun_uzi_ammo.getUnlocalizedName()); + //GameRegistry.registerItem(gun_uboinik_ammo, gun_uboinik_ammo.getUnlocalizedName()); + //GameRegistry.registerItem(gun_lever_action_ammo, gun_lever_action_ammo.getUnlocalizedName()); + //GameRegistry.registerItem(gun_bolt_action_ammo, gun_bolt_action_ammo.getUnlocalizedName()); GameRegistry.registerItem(gun_xvl1456_ammo, gun_xvl1456_ammo.getUnlocalizedName()); GameRegistry.registerItem(gun_osipr_ammo, gun_osipr_ammo.getUnlocalizedName()); GameRegistry.registerItem(gun_osipr_ammo2, gun_osipr_ammo2.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/weapon/GunCalamity.java b/src/main/java/com/hbm/items/weapon/GunCalamity.java deleted file mode 100644 index 47f79635d..000000000 --- a/src/main/java/com/hbm/items/weapon/GunCalamity.java +++ /dev/null @@ -1,128 +0,0 @@ -package com.hbm.items.weapon; - -import java.util.List; -import java.util.Random; - -import com.google.common.collect.Multimap; -import com.hbm.entity.projectile.EntityBullet; -import com.hbm.items.ModItems; - -import net.minecraft.enchantment.Enchantment; -import net.minecraft.enchantment.EnchantmentHelper; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.ai.attributes.AttributeModifier; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.EnumAction; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.world.World; -import net.minecraftforge.event.entity.player.ArrowNockEvent; - -public class GunCalamity extends Item { - - Random rand = new Random(); - - public GunCalamity() - { - this.maxStackSize = 1; - } - - @Override - public EnumAction getItemUseAction(ItemStack par1ItemStack) { - return EnumAction.bow; - } - - @Override - public int getMaxItemUseDuration(ItemStack p_77626_1_) { - return 72000; - } - - @Override - public ItemStack onItemRightClick(ItemStack p_77659_1_, World p_77659_2_, EntityPlayer p_77659_3_) { - new ArrowNockEvent(p_77659_3_, p_77659_1_); - { - p_77659_3_.setItemInUse(p_77659_1_, this.getMaxItemUseDuration(p_77659_1_)); - } - - return p_77659_1_; - } - - @Override - public void onUsingTick(ItemStack stack, EntityPlayer player, int count) - { - World world = player.worldObj; - - boolean flag = player.capabilities.isCreativeMode - || EnchantmentHelper.getEnchantmentLevel(Enchantment.infinity.effectId, stack) > 0; - - if ((player.capabilities.isCreativeMode || player.inventory.hasItem(ModItems.gun_calamity_ammo)) && count % 6 == 0) { - EntityBullet entityarrow = new EntityBullet(world, player, 3.0F, 15, 25, false, false); - entityarrow.setDamage(15 + rand.nextInt(25)); - - world.playSoundAtEntity(player, "hbm:weapon.calShoot", 1.0F, 1.0F); - - if (flag) { - entityarrow.canBePickedUp = 2; - } else { - player.inventory.consumeInventoryItem(ModItems.ammo_50bmg); - } - - if (!world.isRemote) { - world.spawnEntityInWorld(entityarrow); - } - } - - if (this == ModItems.gun_calamity_dual && (player.capabilities.isCreativeMode || player.inventory.hasItem(ModItems.gun_calamity_ammo)) && count % 6 == 3) { - EntityBullet entityarrow = new EntityBullet(world, player, 3.0F, 15, 25, false, false); - entityarrow.setDamage(15 + rand.nextInt(25)); - - world.playSoundAtEntity(player, "hbm:weapon.calShoot", 1.0F, 0.7F); - - if (flag) { - entityarrow.canBePickedUp = 2; - } else { - player.inventory.consumeInventoryItem(ModItems.ammo_50bmg); - } - - if (!world.isRemote) { - world.spawnEntityInWorld(entityarrow); - } - } - } - - @Override - public int getItemEnchantability() { - return 0; - } - - @Override - public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - - if(this == ModItems.gun_calamity) { - list.add("Handheld Maxim"); - } - if(this == ModItems.gun_calamity_dual) { - list.add("You may be thinking, 'This gun makes no"); - list.add("sense, why is there only one receiver for"); - list.add("two barrels, and how do the bullets even"); - list.add("come out of this thing? The barrels are"); - list.add("just taped onto a plate with no connection"); - list.add("to the rest of the gun!' Well my boy, this"); - list.add("question has a simple, easy to understand"); - list.add("answer, it's because " + EnumChatFormatting.OBFUSCATED + "gkjin soi unsi"); - list.add("and " + EnumChatFormatting.OBFUSCATED + "aslfnu isnfi uo fnafaoin fsj afakjkk abk"); - } - list.add(""); - list.add("Ammo: .50 BMG Round"); - list.add("Damage: 15 - 25"); - } - - @Override - public Multimap getItemAttributeModifiers() { - Multimap multimap = super.getItemAttributeModifiers(); - multimap.put(SharedMonsterAttributes.attackDamage.getAttributeUnlocalizedName(), - new AttributeModifier(field_111210_e, "Weapon modifier", 3, 0)); - return multimap; - } -} diff --git a/src/main/java/com/hbm/items/weapon/ItemClip.java b/src/main/java/com/hbm/items/weapon/ItemClip.java index 5199e2f63..a77b89528 100644 --- a/src/main/java/com/hbm/items/weapon/ItemClip.java +++ b/src/main/java/com/hbm/items/weapon/ItemClip.java @@ -330,7 +330,7 @@ public class ItemClip extends Item { if(player.inventory.hasItem(ModItems.gun_proto)) player.inventory.addItemStackToInventory(new ItemStack(ModItems.ammo_nuke, 8)); if(player.inventory.hasItem(ModItems.gun_mirv)) - player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_mirv_ammo, 1)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.ammo_mirv, 1)); if(player.inventory.hasItem(ModItems.gun_bf)) player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_bf_ammo, 1)); if(player.inventory.hasItem(ModItems.gun_mp40)) diff --git a/src/main/java/com/hbm/lib/HbmChestContents.java b/src/main/java/com/hbm/lib/HbmChestContents.java index 0b5b3d295..242f67ceb 100644 --- a/src/main/java/com/hbm/lib/HbmChestContents.java +++ b/src/main/java/com/hbm/lib/HbmChestContents.java @@ -322,7 +322,7 @@ public class HbmChestContents { public static WeightedRandomChestContent[] vault4 = new WeightedRandomChestContent[] { new WeightedRandomChestContent(ModItems.ammo_container, 0, 3, 6, 1), new WeightedRandomChestContent(ModItems.clip_fatman, 0, 2, 3, 1), - new WeightedRandomChestContent(ModItems.gun_mirv_ammo, 0, 2, 3, 1), + new WeightedRandomChestContent(ModItems.ammo_mirv, 0, 2, 3, 1), new WeightedRandomChestContent(ModItems.gun_mirv, 0, 1, 1, 1), new WeightedRandomChestContent(ModItems.gun_fatman, 0, 1, 1, 1), new WeightedRandomChestContent(ModItems.gun_proto, 0, 1, 1, 1), diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index fc95215d2..72ffe6905 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -30,6 +30,7 @@ import cpw.mods.fml.common.Mod.Metadata; import cpw.mods.fml.common.ModMetadata; import java.io.File; +import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map.Entry; @@ -1069,19 +1070,46 @@ public class MainRegistry { } private static HashSet ignoreMappings = new HashSet(); + private static HashMap remapItems = new HashMap(); static { - for(int i = 1; i <= 8; i++) - ignoreMappings.add("hbm:item.gasflame" + i); + /// IGNORE /// + for(int i = 1; i <= 8; i++) ignoreMappings.add("hbm:item.gasflame" + i); + ignoreMappings.add("hbm:item.cyclotron_tower"); + ignoreMappings.add("hbm:item.magnet_dee"); + /// REMAP /// + remapItems.put("hbm:item.centrifuge_tower", Item.getItemFromBlock(ModBlocks.machine_centrifuge)); + remapItems.put("hbm:item.gun_revolver_nopip_ammo", ModItems.ammo_44); + remapItems.put("hbm:item.gun_revolver_pip_ammo", ModItems.ammo_44_pip); + remapItems.put("hbm:item.gun_calamity_ammo", ModItems.ammo_50bmg); + remapItems.put("hbm:item.gun_lacunae_ammo", ModItems.ammo_5mm); + remapItems.put("hbm:item.gun_rpg_ammo", ModItems.ammo_rocket); + remapItems.put("hbm:item.gun_mp40_ammo", ModItems.ammo_9mm); + remapItems.put("hbm:item.gun_uzi_ammo", ModItems.ammo_22lr); + remapItems.put("hbm:item.gun_uboinik_ammo", ModItems.ammo_12gauge); + remapItems.put("hbm:item.gun_lever_action_ammo", ModItems.ammo_20gauge); + remapItems.put("hbm:item.gun_bolt_action_ammo", ModItems.ammo_20gauge_slug); + remapItems.put("hbm:item.gun_fatman_ammo", ModItems.ammo_nuke_high); + remapItems.put("hbm:item.gun_mirv_ammo", ModItems.ammo_mirv_high); + remapItems.put("hbm:item.gun_stinger_ammo", ModItems.ammo_stinger_rocket); } + @EventHandler public void handleMissingMappings(FMLMissingMappingsEvent event) { for(MissingMapping mapping : event.get()) { + + if(ignoreMappings.contains(mapping.name)) { + mapping.ignore(); + continue; + } + if(mapping.type == GameRegistry.Type.ITEM) { - if(ignoreMappings.contains(mapping.name)) { - mapping.ignore(); + + if(remapItems.containsKey(mapping.name)) { + mapping.remap(remapItems.get(mapping.name)); + continue; } } } diff --git a/src/main/resources/assets/hbm/textures/blocks/conveyor_double.png b/src/main/resources/assets/hbm/textures/blocks/conveyor_double.png new file mode 100644 index 0000000000000000000000000000000000000000..4b8ccb0395611ccffc449c5efc0fbe1d1b75d07a GIT binary patch literal 258 zcmeAS@N?(olHy`uVBq!ia0vp^0zmA*!3HFSYrjteQY^(zo*^7SP{WbZ0p#!Wba4!c zXni})n(vSSk3+ns(A^bRxDAY?zBcXUJN|%Sg{9LBgXrTqsW058c+Jx)-MIXO{=~P> zRV6QcKj7PPKf_r;`n;HZ7e|Xj6t~=4Lp&Nf( zU}Q`PO?`LZ!A$D{_IC_|4;e1lgx}RI61!i|62BNICT)45u}#YExwhugok44q`oCA) we(<~hL3RoIy98zS!~Yk=ZFD{N2q6;xnc-Hp=J(0UKu<7uy85}Sb4q9e03=9dlK=n! literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/gun_bolt_action_ammo.png b/src/main/resources/assets/hbm/textures/items/gun_bolt_action_ammo.png deleted file mode 100644 index 02934aa4428a47550db490c4fdf1e06199d8f2d5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 245 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfZm4`7tpp8HU?Y>mo(o5z{OZKe($cORK7IQTWL>a8>T3f?g92Sv=!*e0-?;QqiZ r8}QfXysgp9b-Pp!tbctou!?!zG81>>*_pF|?q=|G^>bP0l+XkK*VS9B diff --git a/src/main/resources/assets/hbm/textures/items/gun_bolt_action_ammo_alt.png b/src/main/resources/assets/hbm/textures/items/gun_bolt_action_ammo_alt.png deleted file mode 100644 index 28a7dd9627e26b36df946a8e0cfedd33782ab4ca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 245 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfjoT?wW?fkXf z|Ccsz-MVs5s-UF4V#}lZNr5h#iuo9lc^G1^iz?1){=>R@*9}dEJ>QeRA9VDL=4F@= zq_oteB%ZCq@Lz+;O2L1M-6htO6Qh(S*>A1nlk?A*{qK#AgXMlM1`F9=ci;W~TNTey rakgiDU(s!!nR8noFSYun{fhU}8?$TWKHEis?q=|G^>bP0l+XkKp6y)M diff --git a/src/main/resources/assets/hbm/textures/items/gun_buckshot_dragon.png b/src/main/resources/assets/hbm/textures/items/gun_buckshot_dragon.png deleted file mode 100644 index af6b5dbf8f6bec8f1d5b98c9721235763e815b6c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 244 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfMmx-|ic{i3igTtSuKfbKt;% zhBsU}467M=fMDV+j@yZP2iRtOnECIQG|S-_*GY`;_brxc;ePOiX_umk?;B^@%?$3@dSa*AxJh+?w$Luh}xg|FC pvme^`=<1$1@ZefY^xFeW3?Ecg7n$yyHyh||22WQ%mvv4FO#l(qU`_x4 diff --git a/src/main/resources/assets/hbm/textures/items/gun_buckshot_explosive.png b/src/main/resources/assets/hbm/textures/items/gun_buckshot_explosive.png deleted file mode 100644 index 23ccbd54ad0f65b56d96362baeec8b95c29e74dc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 250 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf^?V9CGRmcRxC zDd7US49v{T&M6Yi%_}&X_9vT{mHPbfssGE?l(F1yzi91t#%a_;cjI z2H}(EvsMWhF5<2DHLbDny>5%H?wJDz3Z}V;8vwzNSFXPXl9 soRh_MW=c;zxs45Wm`FVdQ&MBb@0Khd`?f?J) diff --git a/src/main/resources/assets/hbm/textures/items/gun_buckshot_poison.png b/src/main/resources/assets/hbm/textures/items/gun_buckshot_poison.png deleted file mode 100644 index 4f8e2e4c5377dc5396a058d52c465e9663633b12..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 247 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf)@cs%nJb21az*xDwm>}qIiY&>{f#)jK+g&Ik(?xWM#PWOXH!ill=mq%Naaf{an^LB{Ts5MkHQ& diff --git a/src/main/resources/assets/hbm/textures/items/gun_buckshot_shock.png b/src/main/resources/assets/hbm/textures/items/gun_buckshot_shock.png deleted file mode 100644 index 193c51cff6df7eeaa7ebe9f228d3c33a61dfe44c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 253 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf6E4ot;{?J_+DlT9ra~1ILhgy(Dz6y z{+HF=pI_eT$gWx2`+cc~Oca0RtY6jtQ+gI>9y!<9TNu1{x2HpFcjHB|ZbpVkwm_37 zp{6&t%{{t(?T@{o0tapxo>2ZTUZ<$o5IuczO!vYCTdz!GnkPFYmd{~LgZl$EhU3jH zTc=m-WM|5GKmV8R`^stRcGJbRJ!C2QxjQjun zaWv!*Kk$;Z#JPZRjoyqIzvn$X+b>`6=kNRYw$7dJJIfDV-p<358YsYf>ClhZhRfXh zo(V+F;CIr$;k$_Oz1`#Ol57QPPk-Lz`Jb4RnaIYrUF}X5yBGt*#ZUH^y7SBr1HHuH M>FVdQ&MBb@08glEs{jB1 diff --git a/src/main/resources/assets/hbm/textures/items/gun_calamity_ammo.png b/src/main/resources/assets/hbm/textures/items/gun_calamity_ammo.png deleted file mode 100644 index cc26b5bab534dab95ae7db159b7baec4d947f0ad..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 185 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfH3LgwOJP&#@0bPv^Jk$1BcA gVeaU4>tba1`cca8)RoI8fp#-^y85}Sb4q9e08g()6#xJL diff --git a/src/main/resources/assets/hbm/textures/items/gun_fatman_ammo.png b/src/main/resources/assets/hbm/textures/items/gun_fatman_ammo.png deleted file mode 100644 index d12fd606fe97db40e79e171b7430e77f1c512f8c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 347 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBugD~Uq{1qucL5ULAh?3y^w370~qEv>0#LT=By}Z;C1rt33 zJ@4)sq z^VcPPRGWRarhjhE<2k>%_gidRE8LxEn*a2y>KXy7(z({(_j0yn=1=;aYFn?z-YUvj z@vVI>=YvY=)k4}VqGBzM%Q>AD!!jcJq?T z^-l8o;r?aGA`b?W3>i<3;-hbtFF(oRq;x38FuPaStLvdiYwMv2rpqtL^a-~qX4SQ; mWJ)ZW?my+wgxo)E*>US+r!Q)J80!J_7lWs(pUXO@geCxG*MO7& diff --git a/src/main/resources/assets/hbm/textures/items/gun_lacunae_ammo.png b/src/main/resources/assets/hbm/textures/items/gun_lacunae_ammo.png deleted file mode 100644 index 8a55130cbca96110e436e155f5f9ed297bcb43d9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 192 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VflcEN9%l>FB@WjYftwzyJ0>beg5%7k=R!Yl(3K>-3h6 zd)jP{d2DUp<0U2RYL+hKZfj(;U=|cBkl$xyQ1i#FjgjdN4^Pvbme_`?-0#zj{c1}`!53!y;A}_=GlStjC4r6Kjz0rBfx*+&&t;ucLK6Up2Scm? diff --git a/src/main/resources/assets/hbm/textures/items/gun_lever_action_ammo.png b/src/main/resources/assets/hbm/textures/items/gun_lever_action_ammo.png deleted file mode 100644 index 114d8367f058e8b8c95abb930aa5e9c1d7027933..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 237 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfyU$hYy1(BNCEC-WtO*ZY+KYfel@zbvbf`p%W6^WKo?G)q|IW>I8v5HT>3RT z@!!ANng}sAt&Mzs0yXLPr6RAcQ7rkMZ2jGzX@->QN6Y7?wyUwtx iILROM=FJ<0TE<0d6*P|9zEowOwA@yS1aaoW|IGvb$aj?+8vHrFY#QtA2fi9<2?+@S$Cous zVB`UUi9meFuYtUd^dG5U15}V9KHn#0* eLX(VQ85sgDEBF0+$@v86WCl-HKbLh*2~7ageNqbm diff --git a/src/main/resources/assets/hbm/textures/items/gun_mirv_ammo.png b/src/main/resources/assets/hbm/textures/items/gun_mirv_ammo.png deleted file mode 100644 index 8a99d897a7e10fabbb69ac558ad62c137ad19eff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 346 zcmV-g0j2(lP)6Q%r z*}59qda#HM0pU^VBx6fcUf@5n-fqmLZ)vO?F2jo<1Ar|9Kp(<6pM-UQ z^>$-sSF>(#{5T?9hDh_wD5cmGgpHNkQwwVX0AKH)IPCU}h>X^nc?M5+kE}hl0Dz{f z;hM}>3#55wwAPG>j0fmLu5WKT3;PWKn6DP#oR1syAx&A2ngBo)MczWaGahz()|Bjn*e=eWPH*olVVhQV8;s5{u07*qoM6N<$f;RJr(f|Me diff --git a/src/main/resources/assets/hbm/textures/items/gun_mp40_ammo.png b/src/main/resources/assets/hbm/textures/items/gun_mp40_ammo.png deleted file mode 100644 index 593603884f70f538cce08d00e7974f03a12a8a8f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 185 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vfsjz}KSP^} z4-C$>e&Pa~B-tW1a30%WlMqqF6}+Z3f;mCzL>VJ9GqZDrh5Ve_&(GA`xWzq87?w>G zI3U?^B;!~%!$yW|s{|le5t!)US*u%Kuv#{PfuSi@XYv7;Y6GB~7(8A5T-G@yGywn+ CB1X*s diff --git a/src/main/resources/assets/hbm/textures/items/gun_revolver_nopip_ammo.png b/src/main/resources/assets/hbm/textures/items/gun_revolver_nopip_ammo.png deleted file mode 100644 index 1d741d30a95e5ccaf64c06a9b1ab578c3c5cc88b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 221 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfK*e8mtBv}z3p?$zWL$3u}jLDhPNj#RL4Ja z{={(1JEPVKF$ T`Ao}!?ql$D^>bP0l+XkKMvhs~ diff --git a/src/main/resources/assets/hbm/textures/items/gun_revolver_nopip_ammo_alt.png b/src/main/resources/assets/hbm/textures/items/gun_revolver_nopip_ammo_alt.png deleted file mode 100644 index 7e061d457809fd34d681a398d1bffc838eec213d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 212 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfbAD@)Gl+2^TMI3&(GA}f5#g)fj`|#W8&Dud$tvJ9g()Ulai+8)%f$T&cW*~2h8^e?o_wCCp?$KMIm3?K;-AiK&2hROwq}`h zPtBqx7WMbVc5<^A8Qfe?T$pOH{=lw{^8%K}aZ2o8T-LCQ?V7yE%HwfwPW<6nTUyMl ouha2ZVyDc4DXUUH&#qy-RjvMX{g>#CKu0rpy85}Sb4q9e0Qn1AegFUf diff --git a/src/main/resources/assets/hbm/textures/items/gun_revolver_pip_ammo_alt.png b/src/main/resources/assets/hbm/textures/items/gun_revolver_pip_ammo_alt.png deleted file mode 100644 index e204667a455b418429acf9976b90581607724a28..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 231 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfyU#4i~7YQKQa|7I2`?hJRDfGtL5*TZJqkVxhvz%6NN`VS*A;@DY+fn7Ww0M zgzVC9+6^67m}dVlVx2a5_&T81&)Y%PFgUHdCN8V dn}0Iyec7(^Q0&Tmd!S1hJYD@<);T3K0RZMfT7Uom diff --git a/src/main/resources/assets/hbm/textures/items/gun_rpg_ammo.png b/src/main/resources/assets/hbm/textures/items/gun_rpg_ammo.png deleted file mode 100644 index 1316d10a466973970a19c2b5cd1f9d5512e5be21..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 276 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBugD~Uq{1qucL5ULAh?3y^w370~qEv>0#LT=By}Z;C1rt33 zJ+nVO$@hV3T0LDHLoEE4_HX2CFyL_6oz>H9|KiQNcgq*6E_LYM5<1D7uWHW)28R79 zeC|h{#VEwQPJTT>-Rw9Ihv$O08F?x$2U3jGxsD0F(2K>4GeRq zZ@9Qsv*R;wwx#$!Qw6<-bqCIHFX0SGWPZe?p(3id>ijYd$xkVKzgZu$efi<2^EAzF QInY52p00i_>zopr08sm1d;kCd diff --git a/src/main/resources/assets/hbm/textures/items/gun_rpg_ammo_alt.png b/src/main/resources/assets/hbm/textures/items/gun_rpg_ammo_alt.png deleted file mode 100644 index 21192e91d268a9af5290dd79e1cd959b8112f980..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 327 zcmV-N0l5B&P)y>^1j(H3qz!obn={!JQo)YT%Ol!0KQtSgUKumZ#MuKMv+|x0nWtzepiN3WL-Ot Zl^+JXUeZ%7&_DnH002ovPDHLkV1g0jg4X~5 diff --git a/src/main/resources/assets/hbm/textures/items/gun_rpg_ammo_new.png b/src/main/resources/assets/hbm/textures/items/gun_rpg_ammo_new.png deleted file mode 100644 index 188aa1311f80554060c4f9ea99cb23555fb2f17e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 259 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Ea{HEjtmSN`?>!lvI6;>1s;*b z3=DjSK$uZf!>a)(C|TkfQ4*Y=R#Ki=l*&+$n3-3imzP?iV4`QBXK1jNi|YVTQG=(8 zV~ByIlq85!z4d8?7qH|`V6d^2w3ZSMJ% zX{2vFnJM^$gz_;7&5v3P326q#HcL3%T#EL~EyPd!|+yHm`dgv99c( z`HTbE^?MXebHbREgdS|}+`skOhHGi&9!%;NrGNJp6*S${-~;-A!PC{xWt~$(695Z* BU@-sy diff --git a/src/main/resources/assets/hbm/textures/items/gun_uboinik_ammo.png b/src/main/resources/assets/hbm/textures/items/gun_uboinik_ammo.png deleted file mode 100644 index 5f3e67b683c7b33f9050418a55c4da65ab7f189d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 245 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf4@wb0p1iu+yJIy>RIq$9fzpZl9TI)}gU0=3G$KF}wW@GBwipVn@NSZL>>p*?7{sN>;-Ts2qM)R) qG{WJlab)&q=?Oti#p_tSq zcfLQ^ymRY@eJ(qXaUc6!n*F8f*!jYhlkc)Md|kEMOLHq{65Advz2~nUbM%OrGkAP! zSCmz-z1y>IX?Ix@}!ntco$igOaL z2_7r~LG#56^g$Z0pP*M;q6JP~5Dk#UJsG|(Rmp00i_ I>zopr0LyS`9smFU diff --git a/src/main/resources/assets/hbm/textures/items/gun_uzi_ammo.png b/src/main/resources/assets/hbm/textures/items/gun_uzi_ammo.png deleted file mode 100644 index d6444f096ead64163a0adcdf655c06020db8d1ab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 211 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfekEk=gJ6pP!RU zm@RV_(iF(tdCSV?`39*r)sZ{wMzU#$2xRz@(vj za%U8^dLMQ<`Nc&#^jVC}@j2XqyKr>mdKI;Vst E0ED7YivR!s From d29d58e14f11e4c30b1850bcdb04c36ea0d3d704 Mon Sep 17 00:00:00 2001 From: Bob Date: Wed, 8 Jun 2022 23:47:47 +0200 Subject: [PATCH 56/80] conveyorception --- .../java/com/hbm/blocks/IBlockMultiPass.java | 2 - .../com/hbm/blocks/IBlockSideRotation.java | 14 ++ src/main/java/com/hbm/blocks/ModBlocks.java | 6 +- .../com/hbm/blocks/network/BlockConveyor.java | 26 +- .../blocks/network/BlockConveyorChute.java | 30 ++- .../blocks/network/BlockConveyorTriple.java | 32 +++ .../hbm/blocks/network/BlockCraneBase.java | 13 +- .../hbm/blocks/network/CraneExtractor.java | 15 ++ .../com/hbm/blocks/network/CraneInserter.java | 15 ++ .../com/hbm/entity/item/EntityMovingItem.java | 6 +- src/main/java/com/hbm/items/ModItems.java | 6 + .../hbm/items/machine/ItemMetaUpgrade.java | 37 +++ src/main/java/com/hbm/main/ClientProxy.java | 2 + src/main/java/com/hbm/main/MainRegistry.java | 36 ++- .../com/hbm/main/ModEventHandlerClient.java | 2 - .../render/block/RenderBlockSideRotation.java | 84 +++++++ .../hbm/render/block/RenderConveyorChute.java | 231 ++++++++++++++++++ .../network/TileEntityCraneExtractor.java | 2 +- .../blocks/conveyor_double.png.mcmeta | 3 + .../hbm/textures/blocks/conveyor_triple.png | Bin 0 -> 286 bytes .../blocks/conveyor_triple.png.mcmeta | 3 + 21 files changed, 515 insertions(+), 50 deletions(-) create mode 100644 src/main/java/com/hbm/blocks/IBlockSideRotation.java create mode 100644 src/main/java/com/hbm/blocks/network/BlockConveyorTriple.java create mode 100644 src/main/java/com/hbm/items/machine/ItemMetaUpgrade.java create mode 100644 src/main/java/com/hbm/render/block/RenderBlockSideRotation.java create mode 100644 src/main/java/com/hbm/render/block/RenderConveyorChute.java create mode 100644 src/main/resources/assets/hbm/textures/blocks/conveyor_double.png.mcmeta create mode 100644 src/main/resources/assets/hbm/textures/blocks/conveyor_triple.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/conveyor_triple.png.mcmeta diff --git a/src/main/java/com/hbm/blocks/IBlockMultiPass.java b/src/main/java/com/hbm/blocks/IBlockMultiPass.java index 91d91a14b..da8739558 100644 --- a/src/main/java/com/hbm/blocks/IBlockMultiPass.java +++ b/src/main/java/com/hbm/blocks/IBlockMultiPass.java @@ -1,8 +1,6 @@ package com.hbm.blocks; import cpw.mods.fml.client.registry.RenderingRegistry; -import net.minecraft.util.IIcon; -import net.minecraft.world.IBlockAccess; public interface IBlockMultiPass { diff --git a/src/main/java/com/hbm/blocks/IBlockSideRotation.java b/src/main/java/com/hbm/blocks/IBlockSideRotation.java new file mode 100644 index 000000000..d24282cce --- /dev/null +++ b/src/main/java/com/hbm/blocks/IBlockSideRotation.java @@ -0,0 +1,14 @@ +package com.hbm.blocks; + +import cpw.mods.fml.client.registry.RenderingRegistry; +import net.minecraft.world.IBlockAccess; + +public interface IBlockSideRotation { + + public int getRotationFromSide(IBlockAccess world, int x, int y, int z, int side); + + public static int renderID = RenderingRegistry.getNextAvailableRenderId(); + public static int getRenderType() { + return renderID; + } +} diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 8931df5ad..61a9e4e08 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -747,6 +747,7 @@ public class ModBlocks { public static Block conveyor; public static Block conveyor_double; + public static Block conveyor_triple; public static Block conveyor_chute; public static Block crane_extractor; public static Block crane_inserter; @@ -1901,7 +1902,8 @@ public class ModBlocks { conveyor = new BlockConveyor().setBlockName("conveyor").setHardness(0.0F).setResistance(2.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":conveyor"); conveyor_double = new BlockConveyorDouble().setBlockName("conveyor_double").setHardness(2.0F).setResistance(2.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":conveyor_double"); - conveyor_chute = new BlockConveyorChute().setBlockName("conveyor_chute").setHardness(2.0F).setResistance(2.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":conveyor_chute"); + conveyor_triple = new BlockConveyorTriple().setBlockName("conveyor_triple").setHardness(2.0F).setResistance(2.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":conveyor_triple"); + conveyor_chute = new BlockConveyorChute().setBlockName("conveyor_chute").setHardness(2.0F).setResistance(2.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":conveyor"); crane_extractor = new CraneExtractor().setBlockName("crane_extractor").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); crane_inserter = new CraneInserter().setBlockName("crane_inserter").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); @@ -3062,6 +3064,8 @@ public class ModBlocks { GameRegistry.registerBlock(crane_inserter, crane_inserter.getUnlocalizedName()); GameRegistry.registerBlock(conveyor, conveyor.getUnlocalizedName()); GameRegistry.registerBlock(conveyor_double, conveyor_double.getUnlocalizedName()); + GameRegistry.registerBlock(conveyor_triple, conveyor_triple.getUnlocalizedName()); + GameRegistry.registerBlock(conveyor_chute, conveyor_chute.getUnlocalizedName()); GameRegistry.registerBlock(chain, chain.getUnlocalizedName()); GameRegistry.registerBlock(ladder_sturdy, ladder_sturdy.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/network/BlockConveyor.java b/src/main/java/com/hbm/blocks/network/BlockConveyor.java index 2b945aad6..b4e6afad0 100644 --- a/src/main/java/com/hbm/blocks/network/BlockConveyor.java +++ b/src/main/java/com/hbm/blocks/network/BlockConveyor.java @@ -53,35 +53,11 @@ public class BlockConveyor extends Block implements IConveyorBelt { @Override public Vec3 getTravelLocation(World world, int x, int y, int z, Vec3 itemPos, double speed) { - /*Vec3 snap = this.getClosestSnappingPosition(world, x, y, z, itemPos); - ForgeDirection dir = ForgeDirection.getOrientation(world.getBlockMetadata(x, y, z)); - return Vec3.createVectorHelper(snap.xCoord + dir.offsetX * speed, snap.yCoord, snap.zCoord + dir.offsetZ * speed);*/ - - /*double dist = snap.distanceTo(itemPos); - - if(dist > speed) { - - return Vec3.createVectorHelper( - itemPos.xCoord + (snap.xCoord - itemPos.xCoord) / dist * speed, - snap.yCoord, - itemPos.zCoord + (snap.zCoord - itemPos.zCoord) / dist * speed - ); - } else { - ForgeDirection dir = ForgeDirection.getOrientation(world.getBlockMetadata(x, y, z)); - return Vec3.createVectorHelper(snap.xCoord + dir.offsetX * speed, snap.yCoord, snap.zCoord + dir.offsetZ * speed); - }*/ - - /// ATTEMT 2 /// - /*Vec3 snap = this.getClosestSnappingPosition(world, x, y, z, itemPos); - ForgeDirection dir = ForgeDirection.getOrientation(world.getBlockMetadata(x, y, z)); - return Vec3.createVectorHelper(snap.xCoord - dir.offsetX * speed, snap.yCoord, snap.zCoord - dir.offsetZ * speed);*/ - /// /// - ForgeDirection dir = getTravelDirection(world, x, y, z, itemPos, speed); //snapping point Vec3 snap = this.getClosestSnappingPosition(world, x, y, z, itemPos); //snapping point + speed - Vec3 dest = Vec3.createVectorHelper(snap.xCoord - dir.offsetX * speed, snap.yCoord, snap.zCoord - dir.offsetZ * speed); + Vec3 dest = Vec3.createVectorHelper(snap.xCoord - dir.offsetX * speed, snap.yCoord - dir.offsetY * speed, snap.zCoord - dir.offsetZ * speed); //delta to get to that point Vec3 motion = Vec3.createVectorHelper((dest.xCoord - itemPos.xCoord), (dest.yCoord - itemPos.yCoord), (dest.zCoord - itemPos.zCoord)); double len = motion.lengthVector(); diff --git a/src/main/java/com/hbm/blocks/network/BlockConveyorChute.java b/src/main/java/com/hbm/blocks/network/BlockConveyorChute.java index 8e84098e1..3de9ba9f5 100644 --- a/src/main/java/com/hbm/blocks/network/BlockConveyorChute.java +++ b/src/main/java/com/hbm/blocks/network/BlockConveyorChute.java @@ -1,17 +1,30 @@ package com.hbm.blocks.network; import api.hbm.conveyor.IConveyorBelt; +import cpw.mods.fml.client.registry.RenderingRegistry; import net.minecraft.util.Vec3; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; public class BlockConveyorChute extends BlockConveyor { + + @Override + public Vec3 getTravelLocation(World world, int x, int y, int z, Vec3 itemPos, double speed) { + + if(world.getBlock(x, y - 1, z) instanceof IConveyorBelt) { + speed *= 5; + } else if(itemPos.yCoord > y + 0.25) { + speed *= 3; + } + + return super.getTravelLocation(world, x, y, z, itemPos, speed); + } @Override public ForgeDirection getTravelDirection(World world, int x, int y, int z, Vec3 itemPos, double speed) { - if(world.getBlock(x, y - 1, z) instanceof IConveyorBelt && itemPos.yCoord - speed < y) { - return ForgeDirection.DOWN; + if(world.getBlock(x, y - 1, z) instanceof IConveyorBelt || itemPos.yCoord > y + 0.25) { + return ForgeDirection.UP; } return ForgeDirection.getOrientation(world.getBlockMetadata(x, y, z)); @@ -20,10 +33,17 @@ public class BlockConveyorChute extends BlockConveyor { @Override public Vec3 getClosestSnappingPosition(World world, int x, int y, int z, Vec3 itemPos) { - if(world.getBlock(x, y - 1, z) instanceof IConveyorBelt && itemPos.yCoord <= y + 0.25) { - return super.getClosestSnappingPosition(world, x, y, z, itemPos); + if(world.getBlock(x, y - 1, z) instanceof IConveyorBelt || itemPos.yCoord > y + 0.25) { + return Vec3.createVectorHelper(x + 0.5, itemPos.yCoord, z + 0.5); } else { - return Vec3.createVectorHelper(x + 0.5, y, z + 0.5); + return super.getClosestSnappingPosition(world, x, y, z, itemPos); } } + + public static int renderID = RenderingRegistry.getNextAvailableRenderId(); + + @Override + public int getRenderType() { + return renderID; + } } diff --git a/src/main/java/com/hbm/blocks/network/BlockConveyorTriple.java b/src/main/java/com/hbm/blocks/network/BlockConveyorTriple.java new file mode 100644 index 000000000..06327a90d --- /dev/null +++ b/src/main/java/com/hbm/blocks/network/BlockConveyorTriple.java @@ -0,0 +1,32 @@ +package com.hbm.blocks.network; + +import net.minecraft.util.MathHelper; +import net.minecraft.util.Vec3; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public class BlockConveyorTriple extends BlockConveyor { + + @Override + public Vec3 getClosestSnappingPosition(World world, int x, int y, int z, Vec3 itemPos) { + + ForgeDirection dir = ForgeDirection.getOrientation(world.getBlockMetadata(x, y, z)); + + itemPos.xCoord = MathHelper.clamp_double(itemPos.xCoord, x, x + 1); + itemPos.zCoord = MathHelper.clamp_double(itemPos.zCoord, z, z + 1); + + double posX = x + 0.5; + double posZ = z + 0.5; + + if(dir.offsetX != 0) { + posX = itemPos.xCoord; + posZ += (itemPos.zCoord > posZ + 0.15 ? 0.3125 : itemPos.zCoord < posZ - 0.15 ? -0.3125 : 0); + } + if(dir.offsetZ != 0) { + posZ = itemPos.zCoord; + posX += (itemPos.xCoord > posX + 0.15 ? 0.3125 : itemPos.xCoord < posX - 0.15 ? -0.3125 : 0); + } + + return Vec3.createVectorHelper(posX, y + 0.25, posZ); + } +} diff --git a/src/main/java/com/hbm/blocks/network/BlockCraneBase.java b/src/main/java/com/hbm/blocks/network/BlockCraneBase.java index d2840e41c..d94f0b1ba 100644 --- a/src/main/java/com/hbm/blocks/network/BlockCraneBase.java +++ b/src/main/java/com/hbm/blocks/network/BlockCraneBase.java @@ -1,8 +1,12 @@ package com.hbm.blocks.network; +import com.hbm.blocks.IBlockSideRotation; +import com.hbm.blocks.ModBlocks; +import com.hbm.blocks.test.TestConductor; import com.hbm.lib.RefStrings; import com.hbm.main.MainRegistry; +import cpw.mods.fml.client.registry.RenderingRegistry; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -17,7 +21,7 @@ import net.minecraft.util.IIcon; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public abstract class BlockCraneBase extends BlockContainer { +public abstract class BlockCraneBase extends BlockContainer implements IBlockSideRotation { @SideOnly(Side.CLIENT) protected IIcon iconSide; @SideOnly(Side.CLIENT) protected IIcon iconIn; @@ -91,4 +95,11 @@ public abstract class BlockCraneBase extends BlockContainer { return this.iconSide; } + + public static int renderIDClassic = RenderingRegistry.getNextAvailableRenderId(); + + @Override + public int getRenderType() { + return IBlockSideRotation.getRenderType(); + } } diff --git a/src/main/java/com/hbm/blocks/network/CraneExtractor.java b/src/main/java/com/hbm/blocks/network/CraneExtractor.java index c7bf7dce7..228d204ba 100644 --- a/src/main/java/com/hbm/blocks/network/CraneExtractor.java +++ b/src/main/java/com/hbm/blocks/network/CraneExtractor.java @@ -8,6 +8,7 @@ import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; public class CraneExtractor extends BlockCraneBase { @@ -29,4 +30,18 @@ public class CraneExtractor extends BlockCraneBase { this.iconDirectionalUp = iconRegister.registerIcon(RefStrings.MODID + ":crane_out_side_down"); this.iconDirectionalDown = iconRegister.registerIcon(RefStrings.MODID + ":crane_out_side_up"); } + + @Override + public int getRotationFromSide(IBlockAccess world, int x, int y, int z, int side) { + int meta = world.getBlockMetadata(x, y, z); + + if(meta > 1 && side == 1) { + if(meta == 2) return 0; + if(meta == 3) return 3; + if(meta == 4) return 2; + if(meta == 5) return 1; + } + + return 0; + } } diff --git a/src/main/java/com/hbm/blocks/network/CraneInserter.java b/src/main/java/com/hbm/blocks/network/CraneInserter.java index 69b3b6a5c..87badfa35 100644 --- a/src/main/java/com/hbm/blocks/network/CraneInserter.java +++ b/src/main/java/com/hbm/blocks/network/CraneInserter.java @@ -14,6 +14,7 @@ import net.minecraft.inventory.IInventory; import net.minecraft.inventory.ISidedInventory; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @@ -162,4 +163,18 @@ public class CraneInserter extends BlockCraneBase implements IEnterableBlock { return toAdd; } + + @Override + public int getRotationFromSide(IBlockAccess world, int x, int y, int z, int side) { + int meta = world.getBlockMetadata(x, y, z); + + if(meta > 1 && side == 1) { + if(meta == 2) return 3; + if(meta == 3) return 0; + if(meta == 4) return 1; + if(meta == 5) return 2; + } + + return 0; + } } diff --git a/src/main/java/com/hbm/entity/item/EntityMovingItem.java b/src/main/java/com/hbm/entity/item/EntityMovingItem.java index 38cbb86c7..406a9c483 100644 --- a/src/main/java/com/hbm/entity/item/EntityMovingItem.java +++ b/src/main/java/com/hbm/entity/item/EntityMovingItem.java @@ -116,10 +116,10 @@ public class EntityMovingItem extends Entity implements IConveyorItem { if(!(b instanceof IConveyorBelt)) { this.setDead(); - EntityItem item = new EntityItem(worldObj, posX, posY, posZ, this.getItemStack()); - item.motionX = this.motionX * 3; + EntityItem item = new EntityItem(worldObj, posX + motionX * 2, posY + motionY * 2, posZ + motionZ * 2, this.getItemStack()); + item.motionX = this.motionX * 2; item.motionY = 0.1; - item.motionZ = this.motionZ * 3; + item.motionZ = this.motionZ * 2; item.velocityChanged = true; worldObj.spawnEntityInWorld(item); return; diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 479020721..60e9685f5 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -1951,6 +1951,8 @@ public class ModItems { public static Item upgrade_screm; public static Item upgrade_gc_speed; public static Item upgrade_5g; + public static Item upgrade_stack; + public static Item upgrade_ejector; public static Item ingot_euphemium; public static Item nugget_euphemium; @@ -4697,6 +4699,8 @@ public class ModItems { upgrade_screm = new ItemMachineUpgrade().setUnlocalizedName("upgrade_screm").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":upgrade_screm"); upgrade_gc_speed = new ItemMachineUpgrade().setUnlocalizedName("upgrade_gc_speed").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":upgrade_gc_speed"); upgrade_5g = new ItemMachineUpgrade().setUnlocalizedName("upgrade_5g").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":upgrade_5g"); + upgrade_stack = new ItemMetaUpgrade(3).setUnlocalizedName("upgrade_stack").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":upgrade_stack"); + upgrade_ejector = new ItemMetaUpgrade(3).setUnlocalizedName("upgrade_ejector").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":upgrade_ejector"); wand = new ItemWand().setUnlocalizedName("wand_k").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setFull3D().setTextureName(RefStrings.MODID + ":wand"); wand_s = new ItemWandS().setUnlocalizedName("wand_s").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setFull3D().setTextureName(RefStrings.MODID + ":wand_s"); @@ -6631,6 +6635,8 @@ public class ModItems { GameRegistry.registerItem(upgrade_screm, upgrade_screm.getUnlocalizedName()); GameRegistry.registerItem(upgrade_gc_speed, upgrade_gc_speed.getUnlocalizedName()); GameRegistry.registerItem(upgrade_5g, upgrade_5g.getUnlocalizedName()); + GameRegistry.registerItem(upgrade_stack, upgrade_stack.getUnlocalizedName()); + GameRegistry.registerItem(upgrade_ejector, upgrade_ejector.getUnlocalizedName()); //Machine Templates GameRegistry.registerItem(siren_track, siren_track.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/machine/ItemMetaUpgrade.java b/src/main/java/com/hbm/items/machine/ItemMetaUpgrade.java new file mode 100644 index 000000000..9cbc33aac --- /dev/null +++ b/src/main/java/com/hbm/items/machine/ItemMetaUpgrade.java @@ -0,0 +1,37 @@ +package com.hbm.items.machine; + +import java.util.List; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; + +public class ItemMetaUpgrade extends ItemMachineUpgrade { + + protected int levels; + + public ItemMetaUpgrade(int levels) { + super(); + this.setMaxDamage(0); + this.setHasSubtypes(true); + this.levels = levels; + } + + public ItemMetaUpgrade(UpgradeType type, int levels) { + super(type); + this.setMaxDamage(0); + this.setHasSubtypes(true); + this.levels = levels; + } + + @Override + @SideOnly(Side.CLIENT) + public void getSubItems(Item item, CreativeTabs tabs, List list) { + + for(int i = 0; i < this.levels; i++) { + list.add(new ItemStack(item, 1, i)); + } + } +} diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index 008ff582d..4b2b727d2 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -685,6 +685,7 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerBlockHandler(new RenderAntennaTop()); RenderingRegistry.registerBlockHandler(new RenderConserve()); RenderingRegistry.registerBlockHandler(new RenderConveyor()); + RenderingRegistry.registerBlockHandler(new RenderConveyorChute()); RenderingRegistry.registerBlockHandler(new RenderRTGBlock()); RenderingRegistry.registerBlockHandler(new RenderSpikeBlock()); RenderingRegistry.registerBlockHandler(new RenderChain()); @@ -700,6 +701,7 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerBlockHandler(new RenderBlockCT()); RenderingRegistry.registerBlockHandler(new RenderDetCord()); RenderingRegistry.registerBlockHandler(new RenderBlockMultipass()); + RenderingRegistry.registerBlockHandler(new RenderBlockSideRotation()); RenderingRegistry.registerBlockHandler(new RenderDiode()); RenderingRegistry.registerBlockHandler(new RenderBlockRotated(ModBlocks.charge_dynamite.getRenderType(), ResourceManager.charge_dynamite)); diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index 72ffe6905..57c322fc7 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -1072,13 +1072,19 @@ public class MainRegistry { private static HashSet ignoreMappings = new HashSet(); private static HashMap remapItems = new HashMap(); - static { + + @EventHandler + public void handleMissingMappings(FMLMissingMappingsEvent event) { + + ignoreMappings.clear(); + remapItems.clear(); + /// IGNORE /// for(int i = 1; i <= 8; i++) ignoreMappings.add("hbm:item.gasflame" + i); ignoreMappings.add("hbm:item.cyclotron_tower"); ignoreMappings.add("hbm:item.magnet_dee"); /// REMAP /// - remapItems.put("hbm:item.centrifuge_tower", Item.getItemFromBlock(ModBlocks.machine_centrifuge)); + /*remapItems.put("hbm:item.centrifuge_tower", Item.getItemFromBlock(ModBlocks.machine_centrifuge)); remapItems.put("hbm:item.gun_revolver_nopip_ammo", ModItems.ammo_44); remapItems.put("hbm:item.gun_revolver_pip_ammo", ModItems.ammo_44_pip); remapItems.put("hbm:item.gun_calamity_ammo", ModItems.ammo_50bmg); @@ -1091,15 +1097,25 @@ public class MainRegistry { remapItems.put("hbm:item.gun_bolt_action_ammo", ModItems.ammo_20gauge_slug); remapItems.put("hbm:item.gun_fatman_ammo", ModItems.ammo_nuke_high); remapItems.put("hbm:item.gun_mirv_ammo", ModItems.ammo_mirv_high); - remapItems.put("hbm:item.gun_stinger_ammo", ModItems.ammo_stinger_rocket); - } - - - @EventHandler - public void handleMissingMappings(FMLMissingMappingsEvent event) { + remapItems.put("hbm:item.gun_stinger_ammo", ModItems.ammo_stinger_rocket);*/ + + ignoreMappings.add("hbm:item.centrifuge_tower"); + ignoreMappings.add("hbm:item.gun_revolver_nopip_ammo"); + ignoreMappings.add("hbm:item.gun_revolver_pip_ammo"); + ignoreMappings.add("hbm:item.gun_calamity_ammo"); + ignoreMappings.add("hbm:item.gun_lacunae_ammo"); + ignoreMappings.add("hbm:item.gun_rpg_ammo"); + ignoreMappings.add("hbm:item.gun_mp40_ammo"); + ignoreMappings.add("hbm:item.gun_uzi_ammo"); + ignoreMappings.add("hbm:item.gun_uboinik_ammo"); + ignoreMappings.add("hbm:item.gun_lever_action_ammo"); + ignoreMappings.add("hbm:item.gun_bolt_action_ammo"); + ignoreMappings.add("hbm:item.gun_fatman_ammo"); + ignoreMappings.add("hbm:item.gun_mirv_ammo"); + ignoreMappings.add("hbm:item.gun_stinger_ammo"); for(MissingMapping mapping : event.get()) { - + if(ignoreMappings.contains(mapping.name)) { mapping.ignore(); continue; @@ -1107,7 +1123,7 @@ public class MainRegistry { if(mapping.type == GameRegistry.Type.ITEM) { - if(remapItems.containsKey(mapping.name)) { + if(remapItems.get(mapping.name) != null) { mapping.remap(remapItems.get(mapping.name)); continue; } diff --git a/src/main/java/com/hbm/main/ModEventHandlerClient.java b/src/main/java/com/hbm/main/ModEventHandlerClient.java index 4d24efe10..b9326c13f 100644 --- a/src/main/java/com/hbm/main/ModEventHandlerClient.java +++ b/src/main/java/com/hbm/main/ModEventHandlerClient.java @@ -60,7 +60,6 @@ import com.hbm.util.ArmorUtil; import com.hbm.util.ArmorRegistry.HazardClass; import com.mojang.authlib.minecraft.MinecraftProfileTexture.Type; -import api.hbm.energy.IEnergyConductor; import api.hbm.item.IButtonReceiver; import api.hbm.item.IClickReceiver; @@ -111,7 +110,6 @@ import net.minecraftforge.client.event.RenderWorldLastEvent; import net.minecraftforge.client.event.TextureStitchEvent; import net.minecraftforge.client.event.sound.PlaySoundEvent17; import net.minecraftforge.event.entity.player.ItemTooltipEvent; -import net.minecraftforge.oredict.OreDictionary; public class ModEventHandlerClient { diff --git a/src/main/java/com/hbm/render/block/RenderBlockSideRotation.java b/src/main/java/com/hbm/render/block/RenderBlockSideRotation.java new file mode 100644 index 000000000..785cac0ea --- /dev/null +++ b/src/main/java/com/hbm/render/block/RenderBlockSideRotation.java @@ -0,0 +1,84 @@ +package com.hbm.render.block; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.IBlockSideRotation; + +import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; +import net.minecraft.block.Block; +import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.world.IBlockAccess; + +public class RenderBlockSideRotation implements ISimpleBlockRenderingHandler { + + @Override + public void renderInventoryBlock(Block block, int metadata, int modelId, RenderBlocks renderer) { + + Tessellator tessellator = Tessellator.instance; + block.setBlockBoundsForItemRender(); + renderer.setRenderBoundsFromBlock(block); + GL11.glRotatef(90.0F, 0.0F, 1.0F, 0.0F); + GL11.glTranslatef(-0.5F, -0.5F, -0.5F); + + tessellator.startDrawingQuads(); + tessellator.setNormal(0.0F, -1.0F, 0.0F); + renderer.renderFaceYNeg(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 0, metadata)); + tessellator.draw(); + tessellator.startDrawingQuads(); + tessellator.setNormal(0.0F, 1.0F, 0.0F); + renderer.renderFaceYPos(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 1, metadata)); + tessellator.draw(); + tessellator.startDrawingQuads(); + tessellator.setNormal(0.0F, 0.0F, -1.0F); + renderer.renderFaceZNeg(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 2, metadata)); + tessellator.draw(); + tessellator.startDrawingQuads(); + tessellator.setNormal(0.0F, 0.0F, 1.0F); + renderer.renderFaceZPos(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 3, metadata)); + tessellator.draw(); + tessellator.startDrawingQuads(); + tessellator.setNormal(-1.0F, 0.0F, 0.0F); + renderer.renderFaceXNeg(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 4, metadata)); + tessellator.draw(); + tessellator.startDrawingQuads(); + tessellator.setNormal(1.0F, 0.0F, 0.0F); + renderer.renderFaceXPos(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 5, metadata)); + tessellator.draw(); + + GL11.glTranslatef(0.5F, 0.5F, 0.5F); + } + + @Override + public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) { + + Tessellator tessellator = Tessellator.instance; + + tessellator.setBrightness(block.getMixedBrightnessForBlock(world, x, y, z)); + + if(!(block instanceof IBlockSideRotation)) { + renderer.renderStandardBlock(block, x, y, z); + return true; + } + + IBlockSideRotation rot = (IBlockSideRotation) block; + + renderer.uvRotateTop = rot.getRotationFromSide(world, x, y, z, 1); + + renderer.setRenderBounds(0.0, 0.0, 0.0, 1.0, 1.0, 1.0); + renderer.renderStandardBlock(block, x, y, z); + + renderer.uvRotateTop = 0; + return true; + } + + @Override + public boolean shouldRender3DInInventory(int modelId) { + return true; + } + + @Override + public int getRenderId() { + return IBlockSideRotation.getRenderType(); + } +} diff --git a/src/main/java/com/hbm/render/block/RenderConveyorChute.java b/src/main/java/com/hbm/render/block/RenderConveyorChute.java new file mode 100644 index 000000000..56c8ded27 --- /dev/null +++ b/src/main/java/com/hbm/render/block/RenderConveyorChute.java @@ -0,0 +1,231 @@ +package com.hbm.render.block; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.ModBlocks; +import com.hbm.blocks.network.BlockConveyorChute; + +import api.hbm.conveyor.IConveyorBelt; +import api.hbm.conveyor.IEnterableBlock; +import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; +import net.minecraft.block.Block; +import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.util.IIcon; +import net.minecraft.world.IBlockAccess; + +public class RenderConveyorChute implements ISimpleBlockRenderingHandler { + + @Override + public void renderInventoryBlock(Block block, int meta, int modelId, RenderBlocks renderer) { + + GL11.glPushMatrix(); + Tessellator tessellator = Tessellator.instance; + tessellator.setColorOpaque_F(1, 1, 1); + + GL11.glTranslatef(-0.5F, -0.5F, -0.5F); + + meta = 2; + + if(meta == 2) { + renderer.uvRotateTop = 3; + renderer.uvRotateBottom = 0; + renderer.uvRotateWest = 3; + } + if(meta == 3) { + renderer.uvRotateTop = 0; + renderer.uvRotateBottom = 3; + renderer.uvRotateEast = 3; + } + if(meta == 4) { + renderer.uvRotateTop = 1; + renderer.uvRotateBottom = 1; + renderer.uvRotateSouth = 3; + } + if(meta == 5) { + renderer.uvRotateTop = 2; + renderer.uvRotateBottom = 2; + renderer.uvRotateNorth = 3; + } + + tessellator.startDrawingQuads(); + renderer.setRenderBounds(0.25D, 0.0D, 0D, 0.75D, 0.25D, 1D); standardBundle(tessellator, block, meta, renderer); + renderer.setRenderBounds(0.0D, 0.0D, 0.25D, 0.25D, 0.25D, 0.75D); standardBundle(tessellator, block, meta, renderer); + renderer.setRenderBounds(0.75D, 0.0D, 0.25D, 1.0D, 0.25D, 0.75D); standardBundle(tessellator, block, meta, renderer); + + renderer.uvRotateTop = 0; + renderer.uvRotateBottom = 0; + renderer.uvRotateNorth = 0; + renderer.uvRotateSouth = 0; + renderer.uvRotateEast = 0; + renderer.uvRotateWest = 0; + + double minOuter = 0.0; + double maxOuter = 1.0; + double minInner = 0.25; + double maxInner = 0.75; + double glassMin = 0.1875; + double glassMax = 0.8175; + + renderer.setRenderBounds(minOuter, 0.0, minOuter, minInner, 1.0, minInner); standardBundle(tessellator, ModBlocks.concrete_smooth, 0, renderer); + renderer.setRenderBounds(maxInner, 0.0, minOuter, maxOuter, 1.0, minInner); standardBundle(tessellator, ModBlocks.concrete_smooth, 0, renderer); + renderer.setRenderBounds(minOuter, 0.0, maxInner, minInner, 1.0, maxOuter); standardBundle(tessellator, ModBlocks.concrete_smooth, 0, renderer); + renderer.setRenderBounds(maxInner, 0.0, maxInner, maxOuter, 1.0, maxOuter); standardBundle(tessellator, ModBlocks.concrete_smooth, 0, renderer); + + IIcon iconGlass = ModBlocks.steel_grate.getIcon(0, 0); + renderer.setOverrideBlockTexture(iconGlass); + + renderer.setRenderBounds(glassMin, 0.25, minInner, glassMin, 1.0, maxInner); standardBundle(tessellator, ModBlocks.steel_grate, 2, renderer); + renderer.setRenderBounds(glassMax, 0.25, minInner, glassMax, 1.0, maxInner); standardBundle(tessellator, ModBlocks.steel_grate, 2, renderer); + renderer.setRenderBounds(minInner, 0.25, glassMin, maxInner, 1.0, glassMin); standardBundle(tessellator, ModBlocks.steel_grate, 2, renderer); + renderer.setRenderBounds(minInner, 0.25, glassMax, maxInner, 1.0, glassMax); standardBundle(tessellator, ModBlocks.steel_grate, 2, renderer); + + tessellator.draw(); + + renderer.clearOverrideBlockTexture(); + + GL11.glPopMatrix(); + } + + private void standardBundle(Tessellator tessellator, Block block, int meta, RenderBlocks renderer) { + tessellator.setNormal(0.0F, -1.0F, 0.0F); + renderer.renderFaceYNeg(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 0, meta)); + tessellator.draw(); + tessellator.startDrawingQuads(); + tessellator.setNormal(0.0F, 1.0F, 0.0F); + renderer.renderFaceYPos(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 1, meta)); + tessellator.draw(); + tessellator.startDrawingQuads(); + tessellator.setNormal(0.0F, 0.0F, -1.0F); + renderer.renderFaceZNeg(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 2, meta)); + tessellator.draw(); + tessellator.startDrawingQuads(); + tessellator.setNormal(0.0F, 0.0F, 1.0F); + renderer.renderFaceZPos(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 3, meta)); + tessellator.draw(); + tessellator.startDrawingQuads(); + tessellator.setNormal(-1.0F, 0.0F, 0.0F); + renderer.renderFaceXNeg(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 4, meta)); + tessellator.draw(); + tessellator.startDrawingQuads(); + tessellator.setNormal(1.0F, 0.0F, 0.0F); + renderer.renderFaceXPos(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 5, meta)); + } + + @Override + public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) { + + Tessellator tessellator = Tessellator.instance; + int meta = world.getBlockMetadata(x, y, z); + + tessellator.setBrightness(block.getMixedBrightnessForBlock(world, x, y, z)); + tessellator.setColorOpaque_F(1, 1, 1); + + boolean belt = false; + + boolean nX = world.getBlock(x - 1, y, z) instanceof IConveyorBelt; + boolean pX = world.getBlock(x + 1, y, z) instanceof IConveyorBelt; + boolean nZ = world.getBlock(x, y, z - 1) instanceof IConveyorBelt; + boolean pZ = world.getBlock(x, y, z + 1) instanceof IConveyorBelt; + + + if(y > 0) { + Block below = world.getBlock(x, y - 1, z); + if(!(below instanceof IConveyorBelt || below instanceof IEnterableBlock)) { + + if(meta == 2) { + renderer.uvRotateTop = 3; + renderer.uvRotateBottom = 0; + renderer.uvRotateWest = 3; + } + if(meta == 3) { + renderer.uvRotateTop = 0; + renderer.uvRotateBottom = 3; + renderer.uvRotateEast = 3; + } + if(meta == 4) { + renderer.uvRotateTop = 1; + renderer.uvRotateBottom = 1; + renderer.uvRotateSouth = 3; + } + if(meta == 5) { + renderer.uvRotateTop = 2; + renderer.uvRotateBottom = 2; + renderer.uvRotateNorth = 3; + } + + renderer.setRenderBounds(0.25D, 0.0D, 0D, 0.75D, 0.25D, 1D); renderer.renderStandardBlock(block, x, y, z); + renderer.setRenderBounds(0.0D, 0.0D, 0.25D, 0.25D, 0.25D, 0.75D); renderer.renderStandardBlock(block, x, y, z); + renderer.setRenderBounds(0.75D, 0.0D, 0.25D, 1.0D, 0.25D, 0.75D); renderer.renderStandardBlock(block, x, y, z); + renderer.uvRotateTop = 0; + renderer.uvRotateBottom = 0; + renderer.uvRotateNorth = 0; + renderer.uvRotateSouth = 0; + renderer.uvRotateEast = 0; + renderer.uvRotateWest = 0; + + belt = true; + } else { + + if(nX) { + renderer.uvRotateTop = 1; + renderer.setRenderBounds(0.0D, 0.0D, 0.25D, 0.125D, 0.25D, 0.75D); renderer.renderStandardBlock(block, x, y, z); + } + + if(pX) { + renderer.uvRotateTop = 2; + renderer.setRenderBounds(0.875D, 0.0D, 0.25D, 1.0D, 0.25D, 0.75D); renderer.renderStandardBlock(block, x, y, z); + } + + if(nZ) { + renderer.uvRotateTop = 3; + renderer.setRenderBounds(0.25D, 0.0D, 0.0D, 0.75D, 0.25D, 0.125D); renderer.renderStandardBlock(block, x, y, z); + } + + if(pZ) { + renderer.uvRotateTop = 0; + renderer.setRenderBounds(0.25D, 0.0D, 0.875D, 0.75D, 0.25D, 1.0D); renderer.renderStandardBlock(block, x, y, z); + } + + renderer.uvRotateTop = 0; + } + } + + IIcon iconSteel = ModBlocks.concrete_smooth.getIcon(0, 0); + IIcon iconGlass = ModBlocks.steel_grate.getIcon(0, 0); + renderer.setOverrideBlockTexture(iconSteel); + + double minOuter = 0.0; + double maxOuter = 1.0; + double minInner = 0.25; + double maxInner = 0.75; + + renderer.setRenderBounds(minOuter, 0.0, minOuter, minInner, 1.0, minInner); renderer.renderStandardBlock(block, x, y, z); + renderer.setRenderBounds(maxInner, 0.0, minOuter, maxOuter, 1.0, minInner); renderer.renderStandardBlock(block, x, y, z); + renderer.setRenderBounds(minOuter, 0.0, maxInner, minInner, 1.0, maxOuter); renderer.renderStandardBlock(block, x, y, z); + renderer.setRenderBounds(maxInner, 0.0, maxInner, maxOuter, 1.0, maxOuter); renderer.renderStandardBlock(block, x, y, z); + + double glassMin = 0.1875; + double glassMax = 0.8175; + + renderer.setOverrideBlockTexture(iconGlass); + if(!nX && (!belt || meta != 5)) { renderer.setRenderBounds(glassMin, belt ? 0.25 : 0.0, minInner, glassMin, 1.0, maxInner); renderer.renderStandardBlock(block, x, y, z); } + if(!pX && (!belt || meta != 4)) { renderer.setRenderBounds(glassMax, belt ? 0.25 : 0.0, minInner, glassMax, 1.0, maxInner); renderer.renderStandardBlock(block, x, y, z); } + if(!nZ && (!belt || meta != 3)) { renderer.setRenderBounds(minInner, belt ? 0.25 : 0.0, glassMin, maxInner, 1.0, glassMin); renderer.renderStandardBlock(block, x, y, z); } + if(!pZ && (!belt || meta != 2)) { renderer.setRenderBounds(minInner, belt ? 0.25 : 0.0, glassMax, maxInner, 1.0, glassMax); renderer.renderStandardBlock(block, x, y, z); } + + renderer.clearOverrideBlockTexture(); + + return true; + } + + @Override + public boolean shouldRender3DInInventory(int modelId) { + return true; + } + + @Override + public int getRenderId() { + return BlockConveyorChute.renderID; + } +} diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityCraneExtractor.java b/src/main/java/com/hbm/tileentity/network/TileEntityCraneExtractor.java index 7a84b1f16..172db796d 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityCraneExtractor.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityCraneExtractor.java @@ -45,7 +45,7 @@ public class TileEntityCraneExtractor extends TileEntityMachineBase implements I if(!worldObj.isRemote) { if(worldObj.getTotalWorldTime() % 20 == 0) { - int amount = 64; + int amount = 1; ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata()); TileEntity te = worldObj.getTileEntity(xCoord - dir.offsetX, yCoord - dir.offsetY, zCoord - dir.offsetZ); diff --git a/src/main/resources/assets/hbm/textures/blocks/conveyor_double.png.mcmeta b/src/main/resources/assets/hbm/textures/blocks/conveyor_double.png.mcmeta new file mode 100644 index 000000000..df9cfce6e --- /dev/null +++ b/src/main/resources/assets/hbm/textures/blocks/conveyor_double.png.mcmeta @@ -0,0 +1,3 @@ +{ + "animation": { } +} diff --git a/src/main/resources/assets/hbm/textures/blocks/conveyor_triple.png b/src/main/resources/assets/hbm/textures/blocks/conveyor_triple.png new file mode 100644 index 0000000000000000000000000000000000000000..8edc93579cffef44855e834215fff97ad7d8a0b7 GIT binary patch literal 286 zcmV+(0pb3MP) kWpl7N2m9@c5W Date: Thu, 9 Jun 2022 16:55:41 +0200 Subject: [PATCH 57/80] spring cleaning, conveyor lift --- src/main/java/com/hbm/blocks/ModBlocks.java | 3 ++ .../hbm/blocks/network/BlockConveyorLift.java | 37 ++++++++++++++++++ .../java/com/hbm/crafting/ToolRecipes.java | 1 - .../com/hbm/handler/BobmazonOfferFactory.java | 1 - .../inventory/recipes/AssemblerRecipes.java | 6 +-- src/main/java/com/hbm/items/ModItems.java | 30 +++++++------- .../com/hbm/items/special/ItemStarterKit.java | 1 - src/main/java/com/hbm/main/ClientProxy.java | 1 + .../java/com/hbm/main/CraftingManager.java | 4 +- src/main/java/com/hbm/main/MainRegistry.java | 21 +++------- .../hbm/render/block/RenderConveyorLift.java | 31 +++++++++++++++ .../assets/hbm/textures/items/turret_chip.png | Bin 264 -> 333 bytes 12 files changed, 95 insertions(+), 41 deletions(-) create mode 100644 src/main/java/com/hbm/blocks/network/BlockConveyorLift.java create mode 100644 src/main/java/com/hbm/render/block/RenderConveyorLift.java diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 61a9e4e08..534f0a55d 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -749,6 +749,7 @@ public class ModBlocks { public static Block conveyor_double; public static Block conveyor_triple; public static Block conveyor_chute; + public static Block conveyor_lift; public static Block crane_extractor; public static Block crane_inserter; @@ -1904,6 +1905,7 @@ public class ModBlocks { conveyor_double = new BlockConveyorDouble().setBlockName("conveyor_double").setHardness(2.0F).setResistance(2.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":conveyor_double"); conveyor_triple = new BlockConveyorTriple().setBlockName("conveyor_triple").setHardness(2.0F).setResistance(2.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":conveyor_triple"); conveyor_chute = new BlockConveyorChute().setBlockName("conveyor_chute").setHardness(2.0F).setResistance(2.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":conveyor"); + conveyor_lift = new BlockConveyorLift().setBlockName("conveyor_lift").setHardness(2.0F).setResistance(2.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":conveyor"); crane_extractor = new CraneExtractor().setBlockName("crane_extractor").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); crane_inserter = new CraneInserter().setBlockName("crane_inserter").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); @@ -3066,6 +3068,7 @@ public class ModBlocks { GameRegistry.registerBlock(conveyor_double, conveyor_double.getUnlocalizedName()); GameRegistry.registerBlock(conveyor_triple, conveyor_triple.getUnlocalizedName()); GameRegistry.registerBlock(conveyor_chute, conveyor_chute.getUnlocalizedName()); + GameRegistry.registerBlock(conveyor_lift, conveyor_lift.getUnlocalizedName()); GameRegistry.registerBlock(chain, chain.getUnlocalizedName()); GameRegistry.registerBlock(ladder_sturdy, ladder_sturdy.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/network/BlockConveyorLift.java b/src/main/java/com/hbm/blocks/network/BlockConveyorLift.java new file mode 100644 index 000000000..c150418ba --- /dev/null +++ b/src/main/java/com/hbm/blocks/network/BlockConveyorLift.java @@ -0,0 +1,37 @@ +package com.hbm.blocks.network; + +import api.hbm.conveyor.IConveyorBelt; +import cpw.mods.fml.client.registry.RenderingRegistry; +import net.minecraft.util.Vec3; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public class BlockConveyorLift extends BlockConveyor { + + @Override + public ForgeDirection getTravelDirection(World world, int x, int y, int z, Vec3 itemPos, double speed) { + + if(Math.abs(itemPos.xCoord - (x + 0.5)) < 0.05 && Math.abs(itemPos.zCoord - (z + 0.5)) < 0.05) { + return ForgeDirection.DOWN; + } + + return ForgeDirection.getOrientation(world.getBlockMetadata(x, y, z)); + } + + @Override + public Vec3 getClosestSnappingPosition(World world, int x, int y, int z, Vec3 itemPos) { + + if(world.getBlock(x, y - 1, z) instanceof IConveyorBelt || itemPos.yCoord > y + 0.25) { + return Vec3.createVectorHelper(x + 0.5, itemPos.yCoord, z + 0.5); + } else { + return super.getClosestSnappingPosition(world, x, y, z, itemPos); + } + } + + public static int renderID = RenderingRegistry.getNextAvailableRenderId(); + + @Override + public int getRenderType() { + return renderID; + } +} diff --git a/src/main/java/com/hbm/crafting/ToolRecipes.java b/src/main/java/com/hbm/crafting/ToolRecipes.java index 903e0cacc..0911db267 100644 --- a/src/main/java/com/hbm/crafting/ToolRecipes.java +++ b/src/main/java/com/hbm/crafting/ToolRecipes.java @@ -117,7 +117,6 @@ public class ToolRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.linker, 1), new Object[] { "I I", "ICI", "GGG", 'I', IRON.plate(), 'G', GOLD.plate(), 'C', ModItems.circuit_gold }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.oil_detector, 1), new Object[] { "W I", "WCI", "PPP", 'W', ModItems.wire_gold, 'I', CU.ingot(), 'C', ModItems.circuit_red_copper, 'P', STEEL.plate() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.turret_chip, 1), new Object[] { "WWW", "CPC", "WWW", 'W', ModItems.wire_gold, 'P', POLYMER.ingot(), 'C', ModItems.circuit_gold, }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.turret_biometry, 1), new Object[] { "CC ", "GGS", "SSS", 'C', ModItems.circuit_copper, 'S', STEEL.plate(), 'G', GOLD.plate(), 'I', PB.plate() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.survey_scanner, 1), new Object[] { "SWS", " G ", "PCP", 'W', ModItems.wire_gold, 'P', POLYMER.ingot(), 'C', ModItems.circuit_gold, 'S', STEEL.plate(), 'G', GOLD.ingot() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.geiger_counter, 1), new Object[] { "GPP", "WCS", "WBB", 'W', ModItems.wire_gold, 'P', ModItems.plate_polymer, 'C', ModItems.circuit_red_copper, 'G', GOLD.ingot(), 'S', STEEL.plate(), 'B', ModItems.ingot_beryllium }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.dosimeter, 1), new Object[] { "WGW", "WCW", "WBW", 'W', KEY_PLANKS, 'G', KEY_ANYPANE, 'C', ModItems.circuit_aluminium, 'B', BE.ingot() }); diff --git a/src/main/java/com/hbm/handler/BobmazonOfferFactory.java b/src/main/java/com/hbm/handler/BobmazonOfferFactory.java index d4a314b4a..1ec620905 100644 --- a/src/main/java/com/hbm/handler/BobmazonOfferFactory.java +++ b/src/main/java/com/hbm/handler/BobmazonOfferFactory.java @@ -110,7 +110,6 @@ public class BobmazonOfferFactory { weapons.add(new Offer(new ItemStack(ModItems.turret_cheapo_ammo), Requirement.ASSEMBLY, 20 * inflation)); weapons.add(new Offer(new ItemStack(ModItems.turret_control), Requirement.CHEMICS, 35 * inflation)); weapons.add(new Offer(new ItemStack(ModItems.turret_chip), Requirement.CHEMICS, 80 * inflation)); - weapons.add(new Offer(new ItemStack(ModItems.turret_biometry), Requirement.CHEMICS, 15 * inflation)); weapons.add(new Offer(new ItemStack(ModBlocks.mine_ap, 4), Requirement.ASSEMBLY, 25 * inflation)); weapons.add(new Offer(new ItemStack(ModBlocks.emp_bomb), Requirement.CHEMICS, 90 * inflation)); weapons.add(new Offer(new ItemStack(ModBlocks.det_cord, 16), Requirement.ASSEMBLY, 50 * inflation)); diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java index 29cb1e87f..74b079842 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java @@ -172,7 +172,6 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModItems.magnet_circular, 1), new AStack[] {new ComparableStack(ModBlocks.fusion_conductor, 5), new OreDictStack(STEEL.ingot(), 4), new OreDictStack(ALLOY.plate(), 6), },150); makeRecipe(new ComparableStack(ModItems.reactor_core, 1), new AStack[] {new OreDictStack(PB.ingot(), 8), new OreDictStack(BE.ingot(), 6), new OreDictStack(STEEL.plate(), 16), new OreDictStack(OreDictManager.getReflector(), 8), new OreDictStack(FIBER.ingot(), 2) },100); makeRecipe(new ComparableStack(ModItems.rtg_unit, 1), new AStack[] {new ComparableStack(ModItems.thermo_element, 2), new ComparableStack(ModItems.board_copper, 1), new OreDictStack(PB.ingot(), 2), new OreDictStack(STEEL.plate(), 2), new ComparableStack(ModItems.circuit_copper, 1), },100); - makeRecipe(new ComparableStack(ModItems.thermo_unit_empty, 1), new AStack[] {new ComparableStack(ModItems.coil_copper_torus, 3), new OreDictStack(STEEL.ingot(), 3), new OreDictStack(TI.plate(), 6), new ComparableStack(ModItems.plate_polymer, 12), },100); makeRecipe(new ComparableStack(ModItems.levitation_unit, 1), new AStack[] {new ComparableStack(ModItems.coil_copper, 4), new ComparableStack(ModItems.coil_tungsten, 2), new OreDictStack(TI.plate(), 6), new ComparableStack(ModItems.nugget_schrabidium, 2), },100); makeRecipe(new ComparableStack(ModItems.drill_titanium, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 2), new OreDictStack(DURA.ingot(), 2), new ComparableStack(ModItems.bolt_dura_steel, 2), new OreDictStack(TI.plate(), 6), },100); makeRecipe(new ComparableStack(ModItems.telepad, 1), new AStack[] {new OreDictStack(ANY_PLASTIC.ingot(), 12), new OreDictStack(SA326.plate(), 2), new OreDictStack(CMB.plate(), 4), new OreDictStack(STEEL.plate(), 2), new ComparableStack(ModItems.wire_gold, 6), new ComparableStack(ModItems.circuit_schrabidium, 1), },300); @@ -266,7 +265,6 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModItems.part_copper, 1), new AStack[] {new ComparableStack(ModItems.plate_polymer, 1), new OreDictStack(CU.dust(), 1), },50); makeRecipe(new ComparableStack(ModItems.part_plutonium, 1), new AStack[] {new ComparableStack(ModItems.plate_polymer, 1), new ComparableStack(ModItems.powder_plutonium, 1), },50); makeRecipe(new ComparableStack(ModItems.thermo_element, 1), new AStack[] {new OreDictStack(STEEL.plate(), 1), new ComparableStack(ModItems.wire_red_copper, 2), new ComparableStack(ModItems.wire_aluminium, 2), new OreDictStack(NETHERQUARTZ.dust(), 2), },150); - makeRecipe(new ComparableStack(ModItems.limiter, 1), new AStack[] {new OreDictStack(STEEL.plate(), 3), new OreDictStack(IRON.plate(), 1), new ComparableStack(ModItems.circuit_copper, 2), new ComparableStack(ModItems.wire_copper, 4), },150); makeRecipe(new ComparableStack(ModItems.plate_dalekanium, 1), new AStack[] {new ComparableStack(ModBlocks.block_meteor, 1), },50); makeRecipe(new ComparableStack(ModBlocks.block_meteor, 1), new AStack[] {new ComparableStack(ModItems.fragment_meteorite, 100), },500); makeRecipe(new ComparableStack(ModBlocks.cmb_brick, 8), new AStack[] {new OreDictStack(CMB.ingot(), 1), new OreDictStack(CMB.plate(), 8), },100); @@ -331,8 +329,8 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModBlocks.nuke_fstbmb, 1), new AStack[] {new ComparableStack(ModItems.sphere_steel, 1), new ComparableStack(ModItems.hull_big_titanium, 6), new ComparableStack(ModItems.fins_big_steel, 1), new ComparableStack(ModItems.powder_magic, 8), new ComparableStack(ModItems.wire_gold, 12), new ComparableStack(ModItems.circuit_targeting_tier4, 4), new OreDictStack("dyeGray", 6), },600); makeRecipe(new ComparableStack(ModBlocks.nuke_custom, 1), new AStack[] {new ComparableStack(ModItems.hull_small_steel, 2), new ComparableStack(ModItems.fins_small_steel, 1), new ComparableStack(ModItems.circuit_gold, 1), new ComparableStack(ModItems.wire_gold, 12), new OreDictStack("dyeGray", 4), },300); makeRecipe(new ComparableStack(ModBlocks.float_bomb, 1), new AStack[] {new OreDictStack(TI.plate(), 12), new ComparableStack(ModItems.levitation_unit, 1), new ComparableStack(ModItems.circuit_gold, 4), new ComparableStack(ModItems.wire_gold, 6), },250); - makeRecipe(new ComparableStack(ModBlocks.therm_endo, 1), new AStack[] {new OreDictStack(TI.plate(), 12), new ComparableStack(ModItems.thermo_unit_endo, 1), new ComparableStack(ModItems.circuit_gold, 2), new ComparableStack(ModItems.wire_gold, 6), },250); - makeRecipe(new ComparableStack(ModBlocks.therm_exo, 1), new AStack[] {new OreDictStack(TI.plate(), 12), new ComparableStack(ModItems.thermo_unit_exo, 1), new ComparableStack(ModItems.circuit_gold, 2), new ComparableStack(ModItems.wire_gold, 6), },250); + makeRecipe(new ComparableStack(ModBlocks.therm_endo, 1), new AStack[] {new OreDictStack(TI.plate(), 12), new ComparableStack(ModItems.powder_ice, 32), new ComparableStack(ModItems.circuit_gold, 1), new ComparableStack(ModItems.coil_gold, 4), },250); + makeRecipe(new ComparableStack(ModBlocks.therm_exo, 1), new AStack[] {new OreDictStack(TI.plate(), 12), new OreDictStack(P_RED.dust(), 32), new ComparableStack(ModItems.circuit_gold, 1), new ComparableStack(ModItems.coil_gold, 4), },250); makeRecipe(new ComparableStack(ModBlocks.launch_pad, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 4), new OreDictStack(ANY_PLASTIC.ingot(), 2), new OreDictStack(STEEL.plate(), 12), new ComparableStack(ModBlocks.machine_battery, 1), new ComparableStack(ModItems.circuit_gold, 2), },250); makeRecipe(new ComparableStack(ModItems.spawn_chopper, 1), new AStack[] {new ComparableStack(ModItems.chopper_blades, 5), new ComparableStack(ModItems.chopper_gun, 1), new ComparableStack(ModItems.chopper_head, 1), new ComparableStack(ModItems.chopper_tail, 1), new ComparableStack(ModItems.chopper_torso, 1), new ComparableStack(ModItems.chopper_wing, 2), },300); //makeRecipe(new ComparableStack(ModBlocks.turret_light, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 6), new ComparableStack(ModItems.pipes_steel, 2), new OreDictStack(MINGRADE.ingot(), 2), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.circuit_targeting_tier2, 2), },200); diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 60e9685f5..9ee90e9e7 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -516,9 +516,9 @@ public class ModItems { //public static Item centrifuge_tower; public static Item reactor_core; public static Item rtg_unit; - public static Item thermo_unit_empty; - public static Item thermo_unit_endo; - public static Item thermo_unit_exo; + //public static Item thermo_unit_empty; + //public static Item thermo_unit_endo; + //public static Item thermo_unit_exo; public static Item levitation_unit; public static Item wire_aluminium; public static Item wire_copper; @@ -745,7 +745,7 @@ public class ModItems { public static Item laser_crystal_digamma; public static Item thermo_element; - public static Item limiter; + //public static Item limiter; public static Item pellet_rtg_depleted; @@ -2378,7 +2378,7 @@ public class ModItems { public static Item remote; public static Item turret_control; public static Item turret_chip; - public static Item turret_biometry; + //public static Item turret_biometry; public static Item spawn_chopper; public static Item spawn_worm; @@ -3020,9 +3020,9 @@ public class ModItems { //centrifuge_tower = new Item().setUnlocalizedName("centrifuge_tower").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":centrifuge_tower"); reactor_core = new Item().setUnlocalizedName("reactor_core").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":reactor_core"); rtg_unit = new Item().setUnlocalizedName("rtg_unit").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":rtg_unit"); - thermo_unit_empty = new Item().setUnlocalizedName("thermo_unit_empty").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":thermo_unit_empty"); - thermo_unit_endo= new Item().setUnlocalizedName("thermo_unit_endo").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":thermo_unit_endo"); - thermo_unit_exo = new Item().setUnlocalizedName("thermo_unit_exo").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":thermo_unit_exo"); + //thermo_unit_empty = new Item().setUnlocalizedName("thermo_unit_empty").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":thermo_unit_empty"); + //thermo_unit_endo= new Item().setUnlocalizedName("thermo_unit_endo").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":thermo_unit_endo"); + //thermo_unit_exo = new Item().setUnlocalizedName("thermo_unit_exo").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":thermo_unit_exo"); levitation_unit = new Item().setUnlocalizedName("levitation_unit").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":levitation_unit"); wire_aluminium = new Item().setUnlocalizedName("wire_aluminium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":wire_aluminium"); wire_copper = new Item().setUnlocalizedName("wire_copper").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":wire_copper"); @@ -3325,7 +3325,7 @@ public class ModItems { laser_crystal_digamma = new ItemFELCrystal(EnumWavelengths.DRX).setUnlocalizedName("laser_crystal_digamma").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":laser_crystal_digamma"); thermo_element = new Item().setUnlocalizedName("thermo_element").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":thermo_element"); - limiter = new Item().setUnlocalizedName("limiter").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":limiter"); + //limiter = new Item().setUnlocalizedName("limiter").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":limiter"); antiknock = new Item().setUnlocalizedName("antiknock").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":antiknock"); @@ -4794,7 +4794,7 @@ public class ModItems { oil_detector = new ItemOilDetector().setUnlocalizedName("oil_detector").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":oil_detector"); turret_control = new ItemTurretControl().setUnlocalizedName("turret_control").setFull3D().setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":turret_control"); turret_chip = new ItemTurretChip().setUnlocalizedName("turret_chip").setMaxStackSize(1).setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":turret_chip"); - turret_biometry = new ItemTurretBiometry().setUnlocalizedName("turret_biometry").setFull3D().setMaxStackSize(1).setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":rei_scanner"); + //turret_biometry = new ItemTurretBiometry().setUnlocalizedName("turret_biometry").setFull3D().setMaxStackSize(1).setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":rei_scanner"); dosimeter = new ItemDosimeter().setUnlocalizedName("dosimeter").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":dosimeter"); geiger_counter = new ItemGeigerCounter().setUnlocalizedName("geiger_counter").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":geiger_counter"); digamma_diagnostic = new ItemDigammaDiagnostic().setUnlocalizedName("digamma_diagnostic").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":digamma_diagnostic"); @@ -6189,9 +6189,9 @@ public class ModItems { //GameRegistry.registerItem(cyclotron_tower, cyclotron_tower.getUnlocalizedName()); GameRegistry.registerItem(reactor_core, reactor_core.getUnlocalizedName()); GameRegistry.registerItem(rtg_unit, rtg_unit.getUnlocalizedName()); - GameRegistry.registerItem(thermo_unit_empty, thermo_unit_empty.getUnlocalizedName()); - GameRegistry.registerItem(thermo_unit_endo, thermo_unit_endo.getUnlocalizedName()); - GameRegistry.registerItem(thermo_unit_exo, thermo_unit_exo.getUnlocalizedName()); + //GameRegistry.registerItem(thermo_unit_empty, thermo_unit_empty.getUnlocalizedName()); + //GameRegistry.registerItem(thermo_unit_endo, thermo_unit_endo.getUnlocalizedName()); + //GameRegistry.registerItem(thermo_unit_exo, thermo_unit_exo.getUnlocalizedName()); GameRegistry.registerItem(levitation_unit, levitation_unit.getUnlocalizedName()); GameRegistry.registerItem(pipes_steel, pipes_steel.getUnlocalizedName()); GameRegistry.registerItem(drill_titanium, drill_titanium.getUnlocalizedName()); @@ -6732,7 +6732,7 @@ public class ModItems { //Generator Stuff GameRegistry.registerItem(thermo_element, thermo_element.getUnlocalizedName()); - GameRegistry.registerItem(limiter, limiter.getUnlocalizedName()); + //GameRegistry.registerItem(limiter, limiter.getUnlocalizedName()); //AMS Components GameRegistry.registerItem(ams_focus_blank, ams_focus_blank.getUnlocalizedName()); @@ -6926,7 +6926,7 @@ public class ModItems { GameRegistry.registerItem(designator_manual, designator_manual.getUnlocalizedName()); GameRegistry.registerItem(turret_control, turret_control.getUnlocalizedName()); GameRegistry.registerItem(turret_chip, turret_chip.getUnlocalizedName()); - GameRegistry.registerItem(turret_biometry, turret_biometry.getUnlocalizedName()); + //GameRegistry.registerItem(turret_biometry, turret_biometry.getUnlocalizedName()); GameRegistry.registerItem(linker, linker.getUnlocalizedName()); GameRegistry.registerItem(reactor_sensor, reactor_sensor.getUnlocalizedName()); GameRegistry.registerItem(oil_detector, oil_detector.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/special/ItemStarterKit.java b/src/main/java/com/hbm/items/special/ItemStarterKit.java index c70d9c612..632119c6f 100644 --- a/src/main/java/com/hbm/items/special/ItemStarterKit.java +++ b/src/main/java/com/hbm/items/special/ItemStarterKit.java @@ -214,7 +214,6 @@ public class ItemStarterKit extends Item { 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.limiter, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.screwdriver, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_coal_off, 3)); player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_diesel, 2)); diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index 4b2b727d2..c5179acab 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -686,6 +686,7 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerBlockHandler(new RenderConserve()); RenderingRegistry.registerBlockHandler(new RenderConveyor()); RenderingRegistry.registerBlockHandler(new RenderConveyorChute()); + RenderingRegistry.registerBlockHandler(new RenderConveyorLift()); RenderingRegistry.registerBlockHandler(new RenderRTGBlock()); RenderingRegistry.registerBlockHandler(new RenderSpikeBlock()); RenderingRegistry.registerBlockHandler(new RenderChain()); diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index bd8110eec..a7cd11b8c 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -182,8 +182,6 @@ public class CraftingManager { //addRecipeAuto(new ItemStack(ModItems.reactor_core, 1), new Object[] { "LNL", "N N", "LNL", 'N', getReflector(), 'L', PB.plate() }); //addRecipeAuto(new ItemStack(ModItems.rtg_unit, 1), new Object[] { "TIT", "PCP", "TIT", 'T', ModItems.thermo_element, 'I', PB.ingot(), 'P', ModItems.board_copper, 'C', ModItems.circuit_copper }); //addRecipeAuto(new ItemStack(ModItems.thermo_unit_empty, 1), new Object[] { "TTT", " S ", "P P", 'S', STEEL.ingot(), 'P', TI.plate(), 'T', ModItems.coil_copper_torus }); - addRecipeAuto(new ItemStack(ModItems.thermo_unit_endo, 1), new Object[] { "EEE", "ETE", "EEE", 'E', Item.getItemFromBlock(Blocks.ice), 'T', ModItems.thermo_unit_empty }); - addRecipeAuto(new ItemStack(ModItems.thermo_unit_exo, 1), new Object[] { "LLL", "LTL", "LLL", 'L', Items.lava_bucket, 'T', ModItems.thermo_unit_empty }); //addRecipeAuto(new ItemStack(ModItems.levitation_unit, 1), new Object[] { "CSC", "TAT", "PSP", 'C', ModItems.coil_copper, 'S', ModItems.nugget_schrabidium, 'T', ModItems.coil_tungsten, 'P', TI.plate(), 'A', STEEL.ingot() }); addRecipeAuto(new ItemStack(ModItems.deuterium_filter, 1), new Object[] { "TST", "SCS", "TST", 'T', TCALLOY.ingot(), 'S', S.dust(), 'C', ModItems.catalyst_clay }); @@ -609,7 +607,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModItems.ams_core_thingy), new Object[] { "NSN", "NGN", "G G", 'N', GOLD.nugget(), 'G', GOLD.ingot(), 'S', ModItems.battery_spark_cell_10000 }); addRecipeAuto(new ItemStack(ModItems.photo_panel), new Object[] { " G ", "IPI", " C ", 'G', KEY_ANYPANE, 'I', ModItems.plate_polymer, 'P', NETHERQUARTZ.dust(), 'C', ModItems.circuit_aluminium }); addRecipeAuto(new ItemStack(ModBlocks.machine_satlinker), new Object[] { "PSP", "SCS", "PSP", 'P', STEEL.plate(), 'S', STAR.ingot(), 'C', ModItems.sat_chip }); - addRecipeAuto(new ItemStack(ModBlocks.machine_telelinker), new Object[] { "PSP", "SCS", "PSP", 'P', STEEL.plate(), 'S', ALLOY.ingot(), 'C', ModItems.turret_biometry }); + addRecipeAuto(new ItemStack(ModBlocks.machine_telelinker), new Object[] { "PSP", "SCS", "PSP", 'P', STEEL.plate(), 'S', ALLOY.ingot(), 'C', ModItems.circuit_red_copper }); addRecipeAuto(new ItemStack(ModBlocks.machine_keyforge), new Object[] { "PCP", "WSW", "WSW", 'P', STEEL.plate(), 'S', W.ingot(), 'C', ModItems.padlock, 'W', KEY_PLANKS }); addRecipeAuto(new ItemStack(ModItems.sat_chip), new Object[] { "WWW", "CIC", "WWW", 'W', ModItems.wire_red_copper, 'C', ModItems.circuit_red_copper, 'I', ANY_PLASTIC.ingot() }); addRecipeAuto(new ItemStack(ModItems.sat_mapper), new Object[] { "H", "B", 'H', ModItems.sat_head_mapper, 'B', ModItems.sat_base }); diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index 57c322fc7..be6fb4dd1 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -1083,22 +1083,6 @@ public class MainRegistry { for(int i = 1; i <= 8; i++) ignoreMappings.add("hbm:item.gasflame" + i); ignoreMappings.add("hbm:item.cyclotron_tower"); ignoreMappings.add("hbm:item.magnet_dee"); - /// REMAP /// - /*remapItems.put("hbm:item.centrifuge_tower", Item.getItemFromBlock(ModBlocks.machine_centrifuge)); - remapItems.put("hbm:item.gun_revolver_nopip_ammo", ModItems.ammo_44); - remapItems.put("hbm:item.gun_revolver_pip_ammo", ModItems.ammo_44_pip); - remapItems.put("hbm:item.gun_calamity_ammo", ModItems.ammo_50bmg); - remapItems.put("hbm:item.gun_lacunae_ammo", ModItems.ammo_5mm); - remapItems.put("hbm:item.gun_rpg_ammo", ModItems.ammo_rocket); - remapItems.put("hbm:item.gun_mp40_ammo", ModItems.ammo_9mm); - remapItems.put("hbm:item.gun_uzi_ammo", ModItems.ammo_22lr); - remapItems.put("hbm:item.gun_uboinik_ammo", ModItems.ammo_12gauge); - remapItems.put("hbm:item.gun_lever_action_ammo", ModItems.ammo_20gauge); - remapItems.put("hbm:item.gun_bolt_action_ammo", ModItems.ammo_20gauge_slug); - remapItems.put("hbm:item.gun_fatman_ammo", ModItems.ammo_nuke_high); - remapItems.put("hbm:item.gun_mirv_ammo", ModItems.ammo_mirv_high); - remapItems.put("hbm:item.gun_stinger_ammo", ModItems.ammo_stinger_rocket);*/ - ignoreMappings.add("hbm:item.centrifuge_tower"); ignoreMappings.add("hbm:item.gun_revolver_nopip_ammo"); ignoreMappings.add("hbm:item.gun_revolver_pip_ammo"); @@ -1113,6 +1097,11 @@ public class MainRegistry { ignoreMappings.add("hbm:item.gun_fatman_ammo"); ignoreMappings.add("hbm:item.gun_mirv_ammo"); ignoreMappings.add("hbm:item.gun_stinger_ammo"); + ignoreMappings.add("hbm:item.limiter"); + ignoreMappings.add("hbm:item.turret_biometry"); + ignoreMappings.add("hbm:item.thermo_unit_empty"); + ignoreMappings.add("hbm:item.thermo_unit_endo"); + ignoreMappings.add("hbm:item.thermo_unit_exo"); for(MissingMapping mapping : event.get()) { diff --git a/src/main/java/com/hbm/render/block/RenderConveyorLift.java b/src/main/java/com/hbm/render/block/RenderConveyorLift.java new file mode 100644 index 000000000..45aac9ba2 --- /dev/null +++ b/src/main/java/com/hbm/render/block/RenderConveyorLift.java @@ -0,0 +1,31 @@ +package com.hbm.render.block; + +import com.hbm.blocks.network.BlockConveyorLift; + +import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; +import net.minecraft.block.Block; +import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.world.IBlockAccess; + +public class RenderConveyorLift implements ISimpleBlockRenderingHandler { + + @Override + public void renderInventoryBlock(Block block, int metadata, int modelId, RenderBlocks renderer) { + + } + + @Override + public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) { + return false; + } + + @Override + public boolean shouldRender3DInInventory(int modelId) { + return true; + } + + @Override + public int getRenderId() { + return BlockConveyorLift.renderID; + } +} diff --git a/src/main/resources/assets/hbm/textures/items/turret_chip.png b/src/main/resources/assets/hbm/textures/items/turret_chip.png index 29034d31e48f52c8e34348fce447e4d339fa65b8..cd3eef9c768ee2a6c0cb6adb161eb4b6670f1d3a 100644 GIT binary patch delta 291 zcmV+;0o?wG0?h)DGk*aDNklt>3|=9&`kHUqnSIPM@Xr)(cD7r+*hObl0rEpRYkOhFT7C zUok=8UH#2~UN40(!We@w26a$}Y~uT}cgR1g1*&O_NAAiZB8Uj?GNr$g(rypgQ+JS+ zg7OQYhA=`zu+{=_vv7zTJfd1L-K7+3t*_;}LJ(*eKQXvoM(qbMGVuHgqc@NVXXg=W pSL1HiQQHsSHXK;+n^pdGJ^?-Dd_~L-NkISr002ovPDHLkV1fmvfzki~ delta 221 zcmV<303!d*0*C^TGk*ZTNkloRPDODU5}cCWCdoc*s@{U9-w{ZOXlZget^FM5s`~A&+~wBoi5I~tJ_j*yjWD8 zC@ODsh)0P_SP2xLbeS887y7#P!l> Date: Thu, 9 Jun 2022 23:20:16 +0200 Subject: [PATCH 58/80] some crafting recipes or sth --- src/main/java/com/hbm/main/CraftingManager.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index a7cd11b8c..00dd67d2f 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -238,6 +238,9 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.conveyor, 16), new Object[] { "LLL", "I I", "LLL", 'L', Items.leather, 'I', IRON.ingot() }); addRecipeAuto(new ItemStack(ModBlocks.conveyor, 64), new Object[] { "LLL", "I I", "LLL", 'L', RUBBER.ingot(), 'I', IRON.ingot() }); + addRecipeAuto(new ItemStack(ModBlocks.conveyor_double, 3), new Object[] { "CPC", "CPC", "CPC", 'C', ModBlocks.conveyor, 'P', IRON.plate() }); + addRecipeAuto(new ItemStack(ModBlocks.conveyor_triple, 3), new Object[] { "CPC", "CPC", "CPC", 'C', ModBlocks.conveyor_double, 'P', STEEL.plate() }); + addRecipeAuto(new ItemStack(ModBlocks.conveyor_chute, 3), new Object[] { "IGI", "IGI", "ICI" , 'I', IRON.ingot(), 'G', ModBlocks.steel_grate, 'C', ModBlocks.conveyor }); //addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.machine_difurnace_off), 1), new Object[] { "T T", "PHP", "TFT", 'T', W.ingot(), 'P', ModItems.board_copper, 'H', Blocks.hopper, 'F', Blocks.furnace }); addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.machine_uf6_tank), 1), new Object[] { "WTW", "WTW", "SRS", 'S', IRON.plate(), 'W', ModItems.coil_tungsten, 'T', ModItems.tank_steel, 'W', ModItems.coil_tungsten,'R', MINGRADE.ingot() }); From debb9449cb89ef4820d49f765b070a3dbc72d438 Mon Sep 17 00:00:00 2001 From: Boblet Date: Fri, 10 Jun 2022 15:24:46 +0200 Subject: [PATCH 59/80] working ejector crane upgrades --- .../hbm/items/machine/ItemMetaUpgrade.java | 30 +++++++ .../network/TileEntityCraneExtractor.java | 83 +++++++++++++++--- .../gui/storage/gui_crane_ejector.png | Bin 2698 -> 2749 bytes 3 files changed, 100 insertions(+), 13 deletions(-) diff --git a/src/main/java/com/hbm/items/machine/ItemMetaUpgrade.java b/src/main/java/com/hbm/items/machine/ItemMetaUpgrade.java index 9cbc33aac..521a4a148 100644 --- a/src/main/java/com/hbm/items/machine/ItemMetaUpgrade.java +++ b/src/main/java/com/hbm/items/machine/ItemMetaUpgrade.java @@ -4,9 +4,11 @@ import java.util.List; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; +import net.minecraft.util.IIcon; public class ItemMetaUpgrade extends ItemMachineUpgrade { @@ -34,4 +36,32 @@ public class ItemMetaUpgrade extends ItemMachineUpgrade { list.add(new ItemStack(item, 1, i)); } } + + protected IIcon[] icons; + + @Override + @SideOnly(Side.CLIENT) + public void registerIcons(IIconRegister reg) { + + this.icons = new IIcon[levels]; + + for(int i = 0; i < levels; i++) { + this.icons[i] = reg.registerIcon(this.getIconString() + "_" + (i + 1)); + } + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIconFromDamage(int meta) { + if(meta >= 0 && meta < levels) { + return this.icons[meta]; + } + + return this.icons[0]; + } + + @Override + public String getUnlocalizedName(ItemStack stack) { + return super.getUnlocalizedName() + "_" + (stack.getItemDamage() + 1); + } } diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityCraneExtractor.java b/src/main/java/com/hbm/tileentity/network/TileEntityCraneExtractor.java index 172db796d..93a10d9e3 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityCraneExtractor.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityCraneExtractor.java @@ -4,6 +4,7 @@ import com.hbm.entity.item.EntityMovingItem; import com.hbm.interfaces.IControlReceiver; import com.hbm.inventory.container.ContainerCraneExtractor; import com.hbm.inventory.gui.GUICraneExtractor; +import com.hbm.items.ModItems; import com.hbm.module.ModulePatternMatcher; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; @@ -44,8 +45,26 @@ public class TileEntityCraneExtractor extends TileEntityMachineBase implements I if(!worldObj.isRemote) { - if(worldObj.getTotalWorldTime() % 20 == 0) { + int delay = 20; + + if(slots[19] != null && slots[19].getItem() == ModItems.upgrade_ejector) { + switch(slots[19].getItemDamage()) { + case 0: delay = 10; break; + case 1: delay = 5; break; + case 2: delay = 2; break; + } + } + + if(worldObj.getTotalWorldTime() % delay == 0) { int amount = 1; + + if(slots[18] != null && slots[18].getItem() == ModItems.upgrade_stack) { + switch(slots[18].getItemDamage()) { + case 0: amount = 4; break; + case 1: amount = 16; break; + case 2: amount = 64; break; + } + } ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata()); TileEntity te = worldObj.getTileEntity(xCoord - dir.offsetX, yCoord - dir.offsetY, zCoord - dir.offsetZ); @@ -59,27 +78,60 @@ public class TileEntityCraneExtractor extends TileEntityMachineBase implements I access = sided.getAccessibleSlotsFromSide(dir.ordinal()); } - if(b instanceof IConveyorBelt && te instanceof IInventory) { - IInventory inv = (IInventory) te; - int size = access == null ? inv.getSizeInventory() : access.length; + boolean hasSent = false; + + if(b instanceof IConveyorBelt) { - for(int i = 0; i < size; i++) { - int index = access == null ? i : access[i]; - ItemStack stack = inv.getStackInSlot(index); + IConveyorBelt belt = (IConveyorBelt) b; + + /* try to send items from a connected inv, if present */ + if(te instanceof IInventory) { - if(stack != null && (sided == null || sided.canExtractItem(index, stack, dir.ordinal()))){ + IInventory inv = (IInventory) te; + int size = access == null ? inv.getSizeInventory() : access.length; + + for(int i = 0; i < size; i++) { + int index = access == null ? i : access[i]; + ItemStack stack = inv.getStackInSlot(index); - boolean match = this.matchesFilter(stack); + if(stack != null && (sided == null || sided.canExtractItem(index, stack, dir.ordinal()))){ + + boolean match = this.matchesFilter(stack); + + if((isWhitelist && match) || (!isWhitelist && !match)) { + stack = stack.copy(); + int toSend = Math.min(amount, stack.stackSize); + inv.decrStackSize(index, toSend); + stack.stackSize = toSend; + + EntityMovingItem moving = new EntityMovingItem(worldObj); + Vec3 pos = Vec3.createVectorHelper(xCoord + 0.5 + dir.offsetX * 0.55, yCoord + 0.5 + dir.offsetY * 0.55, zCoord + 0.5 + dir.offsetZ * 0.55); + Vec3 snap = belt.getClosestSnappingPosition(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, pos); + moving.setPosition(snap.xCoord, snap.yCoord, snap.zCoord); + moving.setItemStack(stack); + worldObj.spawnEntityInWorld(moving); + hasSent = true; + break; + } + } + } + } + + /* if no item has been sent, send buffered items while ignoring the filter */ + if(!hasSent) { + + for(int i = 0; i < 9; i++) { + ItemStack stack = slots[i]; - if((isWhitelist && match) || (!isWhitelist && !match)) { + if(stack != null){ stack = stack.copy(); int toSend = Math.min(amount, stack.stackSize); - inv.decrStackSize(index, toSend); + decrStackSize(i, toSend); stack.stackSize = toSend; EntityMovingItem moving = new EntityMovingItem(worldObj); Vec3 pos = Vec3.createVectorHelper(xCoord + 0.5 + dir.offsetX * 0.55, yCoord + 0.5 + dir.offsetY * 0.55, zCoord + 0.5 + dir.offsetZ * 0.55); - Vec3 snap = ((IConveyorBelt) b).getClosestSnappingPosition(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, pos); + Vec3 snap = belt.getClosestSnappingPosition(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, pos); moving.setPosition(snap.xCoord, snap.yCoord, snap.zCoord); moving.setItemStack(stack); worldObj.spawnEntityInWorld(moving); @@ -122,7 +174,12 @@ public class TileEntityCraneExtractor extends TileEntityMachineBase implements I @Override public boolean isItemValidForSlot(int i, ItemStack itemStack) { - return true; + return i > 8 && i < 18; + } + + @Override + public boolean canExtractItem(int i, ItemStack itemStack, int j) { + return i > 8 && i < 18; } @Override diff --git a/src/main/resources/assets/hbm/textures/gui/storage/gui_crane_ejector.png b/src/main/resources/assets/hbm/textures/gui/storage/gui_crane_ejector.png index 146aa1d61e49d9b0e0c83fcf35de52f1e7c42ecf..fccf0e7905970d108e08846df5894d357d19f258 100644 GIT binary patch delta 2391 zcma);dpOkj7so#{#uB2bEUB=xs%ch~uqL8kOl`R{)6|Hf6=f=yT*7y-wX?Zqa!-^k z!)S*j_lDeQs2!KWkn0r2U@~rV+1cIa_xt z-I{$fBhd3TZgMvDXwR?FQq&R`QWNZDT3%(YM&x?j7L1~zq0%jc^eN>1&94q@EQ~O9 zq*0cW%UWH>xxOu5H^f&e&LNS6#ipFg1k?5FiNeVa>QTM%)m3vny;qf$2kQ(itgMpa z;^LI~)MU-H6DNG`iYY* zwwr-VO$$-KwRd`!&kaFOh?#IrSgF!IS28U>F0BWa5Ev1mg)|OSD!u0l(+8<($DmAZ z9%-6t5&gck)oxPehHr$rI%2X1*Ytnl0^RTTp4WNgF|+Ymm?jx1P)MH09VLn`giAb! z4U<%}O|`awJ+srvzPlGYgu-5|fX!x`uYS3tpdI`yqV$1OqebD9?j(xf-5~tTHZ;DW;?2 zZq@GQkSd*d*GMD>QMKw2)1{O9M* zP_-ZGCGabQLO0;!%gxwAK zYTyZ@YyrI`kv<1?#(u3&GRG)5Ricz*OZ+{oVJTHm6C{Z$&KnX7Mt}B)dRgaN$|X(F z)3R)lWtqDBZb@v$lAVXBCiP7jo51)yr`B64D(|tPFN^6_T|wF{72>IJomryFp5tJl zmF8fzf0x0ITY=ZL;?0-T+zlmVtu5Ai28f1F=()P={%#Xl=P9fqoe~es!~@I*%_$7x zb1DlB(T9pB98n7|+V@*Khu`e6Knr*HUIW3koND@lisW%lZ@0-n8k3jz*5i(^Q%B(` zUczCPle9i`^wCwFd+9&UaTD%Ydz%!c_UNJD_F6Dvg+R^jT3o@JJ32rqMUxB6@yi{r zSuED)m5sv+D>WL=0^qQQ-V1e+M7)?#@UGF#cI33dm-S!xH+LM=I;clPWnY-X*N~SbI>b}`d9-RU5g=x_y8Q|n_ z$yE_S%>jP=O#;}uvc{Ac_w|Susm%Vmz34cgtE#Fxy&i1}by-G(SIo zXBpJi*4`9Mvwj*)UPJ(HXKs`mm)Xf7H>sq{^Lf0Mv9Yl`0U6(DoCY^Y*#%UrMKMEWK|yuRGdl|#?^*%TqcLwe9_$UQ#H5TM|R zy)S>Vil-@>bU^4(In%XjAoE?=s5SHxy?2d`jm^#tC6x&F8JY6^@Bb=!+drZ3AX`KP z59K~3)_l8>pgea|Jx*PbpaN@f!L6$o26jaoT6ZF>$7e1~Favw!PbSpDiri~C+JkFt zEUA9?Gf?ifZQ5VPHU}zB1Z5ab>Km0Fr;8r{^YfJAde#$E-DEPb_QSmYtr4Jw!9=~tok8U)y+6cL zj`j#BrAqOAMpeyW!NJ>a3U~Z$XDIi=rQ{&3zk<^K0^Rk)2>Gju9Uyqbo8_zCmG3IudeNSej7|D{=4Mt!&mhruNkH}o0HlYiL+ zPG$nHrz&@)ZWHHD_{a{A`U^b=HMSnsg!w$jT`j`E@nZI}S?RT0zv8+z;BS7XY#mPgaoj8RFNpJ{j{pDw delta 2340 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 From 4bd1ccddf265f82a16377dc48eed5959d1489fd3 Mon Sep 17 00:00:00 2001 From: Voxelstice <95834462+Voxelstice@users.noreply.github.com> Date: Sun, 12 Jun 2022 05:24:46 +1000 Subject: [PATCH 60/80] chungus --- .../tileentity/machine/TileEntityChungus.java | 21 ++++++++++++------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityChungus.java b/src/main/java/com/hbm/tileentity/machine/TileEntityChungus.java index 028080a73..29634935e 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityChungus.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityChungus.java @@ -35,6 +35,7 @@ public class TileEntityChungus extends TileEntityLoadedBase implements IFluidAcc private int turnTimer; public float rotor; public float lastRotor; + public float fanAcceleration = 0F; public List list2 = new ArrayList(); @@ -101,16 +102,17 @@ public class TileEntityChungus extends TileEntityLoadedBase implements IFluidAcc } else { this.lastRotor = this.rotor; + this.rotor += this.fanAcceleration; + + if(this.rotor >= 360) { + this.rotor -= 360; + this.lastRotor -= 360; + } if(turnTimer > 0) { - - this.rotor += 25F; - - if(this.rotor >= 360) { - this.rotor -= 360; - this.lastRotor -= 360; - } - + + this.fanAcceleration = Math.max(0F, Math.min(25F, this.fanAcceleration += 0.1F)); + Random rand = worldObj.rand; ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); ForgeDirection side = dir.getRotation(ForgeDirection.UP); @@ -123,6 +125,9 @@ public class TileEntityChungus extends TileEntityLoadedBase implements IFluidAcc -dir.offsetX * 0.2, 0, -dir.offsetZ * 0.2); } } + if(turnTimer < 0) { + this.fanAcceleration = Math.max(0F, Math.min(25F, this.fanAcceleration -= 0.1F)); + } } } From 8dfe52b895d2386b22aa42da3b2588017fb60817 Mon Sep 17 00:00:00 2001 From: Voxelstice <95834462+Voxelstice@users.noreply.github.com> Date: Sun, 12 Jun 2022 05:26:14 +1000 Subject: [PATCH 61/80] and the large turbine --- .../TileEntityMachineLargeTurbine.java | 22 +++++++++++-------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLargeTurbine.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLargeTurbine.java index e5839ad54..16590a571 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLargeTurbine.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLargeTurbine.java @@ -33,7 +33,8 @@ public class TileEntityMachineLargeTurbine extends TileEntityMachineBase impleme private boolean shouldTurn; public float rotor; public float lastRotor; - + public float fanAcceleration = 0F; + public TileEntityMachineLargeTurbine() { super(7); @@ -104,17 +105,20 @@ public class TileEntityMachineLargeTurbine extends TileEntityMachineBase impleme data.setBoolean("operational", operational); this.networkPack(data, 50); } else { - this.lastRotor = this.rotor; + this.rotor += this.fanAcceleration; + + if(this.rotor >= 360) { + this.rotor -= 360; + this.lastRotor -= 360; + } if(shouldTurn) { - - this.rotor += 15F; - - if(this.rotor >= 360) { - this.rotor -= 360; - this.lastRotor -= 360; - } + + this.fanAcceleration = Math.max(0F, Math.min(15F, this.fanAcceleration += 0.1F)); + } + if(!shouldTurn) { + this.fanAcceleration = Math.max(0F, Math.min(15F, this.fanAcceleration -= 0.1F)); } } } From 8c1275206c6ad4b8ae47372e57a3d17b7c70004d Mon Sep 17 00:00:00 2001 From: Bob Date: Sun, 12 Jun 2022 20:47:20 +0200 Subject: [PATCH 62/80] and all that jazz --- .../hbm/blocks/generic/BlockNTMFlower.java | 22 +- .../blocks/network/BlockConveyorChute.java | 18 ++ .../hbm/blocks/network/BlockConveyorLift.java | 46 ++- .../hbm/blocks/network/CraneExtractor.java | 5 + .../com/hbm/blocks/network/CraneInserter.java | 13 + .../hbm/entity/effect/EntityNukeTorex.java | 261 ++++++++++++++++++ .../com/hbm/entity/item/EntityMovingItem.java | 2 +- .../hbm/entity/missile/EntityMinerRocket.java | 7 +- .../java/com/hbm/extprop/HbmPlayerProps.java | 12 + .../com/hbm/handler/EntityEffectHandler.java | 14 +- .../com/hbm/inventory/gui/GUIRBMKConsole.java | 2 +- .../java/com/hbm/items/ItemGenericPart.java | 8 +- .../java/com/hbm/items/armor/ArmorDNT.java | 4 +- .../java/com/hbm/items/tool/ItemWandD.java | 9 +- src/main/java/com/hbm/lib/RefStrings.java | 2 +- src/main/java/com/hbm/main/ClientProxy.java | 1 + .../java/com/hbm/main/CraftingManager.java | 21 +- src/main/java/com/hbm/main/MainRegistry.java | 1 + .../java/com/hbm/main/ModEventHandler.java | 2 +- .../hbm/render/block/RenderConveyorChute.java | 9 +- .../hbm/render/block/RenderConveyorLift.java | 153 +++++++++- .../hbm/render/entity/effect/RenderTorex.java | 113 ++++++++ .../machine/rbmk/TileEntityRBMKRod.java | 10 +- .../network/TileEntityCraneExtractor.java | 11 +- .../network/TileEntityCraneInserter.java | 1 + src/main/java/com/hbm/util/ParticleUtil.java | 11 +- src/main/resources/assets/hbm/lang/de_DE.lang | 14 + src/main/resources/assets/hbm/lang/en_US.lang | 14 + .../textures/models/machines/furnace_iron.png | Bin 0 -> 797 bytes src/main/resources/mcmod.info | 2 +- 30 files changed, 746 insertions(+), 42 deletions(-) create mode 100644 src/main/java/com/hbm/entity/effect/EntityNukeTorex.java create mode 100644 src/main/java/com/hbm/render/entity/effect/RenderTorex.java create mode 100644 src/main/resources/assets/hbm/textures/models/machines/furnace_iron.png diff --git a/src/main/java/com/hbm/blocks/generic/BlockNTMFlower.java b/src/main/java/com/hbm/blocks/generic/BlockNTMFlower.java index b5e389ba3..5b4b330f7 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockNTMFlower.java +++ b/src/main/java/com/hbm/blocks/generic/BlockNTMFlower.java @@ -1,11 +1,13 @@ package com.hbm.blocks.generic; import java.util.List; +import java.util.Random; import com.hbm.blocks.BlockEnumMulti; import com.hbm.blocks.ITooltipProvider; import net.minecraft.block.Block; +import net.minecraft.block.IGrowable; import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; @@ -17,7 +19,7 @@ import net.minecraftforge.common.EnumPlantType; import net.minecraftforge.common.IPlantable; import net.minecraftforge.common.util.ForgeDirection; -public class BlockNTMFlower extends BlockEnumMulti implements IPlantable, ITooltipProvider { +public class BlockNTMFlower extends BlockEnumMulti implements IPlantable, IGrowable, ITooltipProvider { public BlockNTMFlower() { super(Material.plants, EnumFlowerType.class, true, true); @@ -97,6 +99,24 @@ public class BlockNTMFlower extends BlockEnumMulti implements IPlantable, IToolt return meta; } + /* grow condition */ + @Override + public boolean func_149851_a(World world, int x, int y, int z, boolean b) { + return true; + } + + /* chance */ + @Override + public boolean func_149852_a(World p_149852_1_, Random p_149852_2_, int p_149852_3_, int p_149852_4_, int p_149852_5_) { + return true; + } + + /* grow */ + @Override + public void func_149853_b(World world, Random rand, int x, int y, int z) { + this.dropBlockAsItem(world, x, y, z, world.getBlockMetadata(x, y, z), 0); + } + @Override public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { } } diff --git a/src/main/java/com/hbm/blocks/network/BlockConveyorChute.java b/src/main/java/com/hbm/blocks/network/BlockConveyorChute.java index 3de9ba9f5..efa52f5a0 100644 --- a/src/main/java/com/hbm/blocks/network/BlockConveyorChute.java +++ b/src/main/java/com/hbm/blocks/network/BlockConveyorChute.java @@ -2,7 +2,11 @@ package com.hbm.blocks.network; import api.hbm.conveyor.IConveyorBelt; import cpw.mods.fml.client.registry.RenderingRegistry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.Vec3; +import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @@ -46,4 +50,18 @@ public class BlockConveyorChute extends BlockConveyor { public int getRenderType() { return renderID; } + + @Override + public void setBlockBoundsBasedOnState(IBlockAccess world, int x, int y, int z) { } + + @Override + public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) { + return AxisAlignedBB.getBoundingBox(x, y, z, x + 1, y + 1, z + 1); + } + + @Override + @SideOnly(Side.CLIENT) + public boolean shouldSideBeRendered(IBlockAccess p_149646_1_, int p_149646_2_, int p_149646_3_, int p_149646_4_, int p_149646_5_) { + return true; + } } diff --git a/src/main/java/com/hbm/blocks/network/BlockConveyorLift.java b/src/main/java/com/hbm/blocks/network/BlockConveyorLift.java index c150418ba..6bea6da24 100644 --- a/src/main/java/com/hbm/blocks/network/BlockConveyorLift.java +++ b/src/main/java/com/hbm/blocks/network/BlockConveyorLift.java @@ -2,7 +2,11 @@ package com.hbm.blocks.network; import api.hbm.conveyor.IConveyorBelt; import cpw.mods.fml.client.registry.RenderingRegistry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.Vec3; +import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @@ -10,8 +14,11 @@ public class BlockConveyorLift extends BlockConveyor { @Override public ForgeDirection getTravelDirection(World world, int x, int y, int z, Vec3 itemPos, double speed) { + + boolean bottom = !(world.getBlock(x, y - 1, z) instanceof IConveyorBelt); + boolean top = !(world.getBlock(x, y + 1, z) instanceof IConveyorBelt) && !bottom; - if(Math.abs(itemPos.xCoord - (x + 0.5)) < 0.05 && Math.abs(itemPos.zCoord - (z + 0.5)) < 0.05) { + if(!top) { return ForgeDirection.DOWN; } @@ -20,18 +27,51 @@ public class BlockConveyorLift extends BlockConveyor { @Override public Vec3 getClosestSnappingPosition(World world, int x, int y, int z, Vec3 itemPos) { - - if(world.getBlock(x, y - 1, z) instanceof IConveyorBelt || itemPos.yCoord > y + 0.25) { + + boolean bottom = !(world.getBlock(x, y - 1, z) instanceof IConveyorBelt); + boolean top = !(world.getBlock(x, y + 1, z) instanceof IConveyorBelt) && !bottom; + + if(!top) { return Vec3.createVectorHelper(x + 0.5, itemPos.yCoord, z + 0.5); } else { return super.getClosestSnappingPosition(world, x, y, z, itemPos); } } + @Override + public void setBlockBoundsBasedOnState(IBlockAccess world, int x, int y, int z) { + + boolean bottom = !(world.getBlock(x, y - 1, z) instanceof IConveyorBelt); + boolean top = !(world.getBlock(x, y + 1, z) instanceof IConveyorBelt) && !bottom; + + if(top) + this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 0.5F, 1.0F); + else + this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F); + } + + @Override + public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) { + + boolean bottom = !(world.getBlock(x, y - 1, z) instanceof IConveyorBelt); + boolean top = !(world.getBlock(x, y + 1, z) instanceof IConveyorBelt) && !bottom; + + if(top) + return AxisAlignedBB.getBoundingBox(x, y, z, x + 1, y + 0.5, z + 1); + else + return AxisAlignedBB.getBoundingBox(x, y, z, x + 1, y + 1, z + 1); + } + public static int renderID = RenderingRegistry.getNextAvailableRenderId(); @Override public int getRenderType() { return renderID; } + + @Override + @SideOnly(Side.CLIENT) + public boolean shouldSideBeRendered(IBlockAccess p_149646_1_, int p_149646_2_, int p_149646_3_, int p_149646_4_, int p_149646_5_) { + return true; + } } diff --git a/src/main/java/com/hbm/blocks/network/CraneExtractor.java b/src/main/java/com/hbm/blocks/network/CraneExtractor.java index 228d204ba..8301b7e5f 100644 --- a/src/main/java/com/hbm/blocks/network/CraneExtractor.java +++ b/src/main/java/com/hbm/blocks/network/CraneExtractor.java @@ -44,4 +44,9 @@ public class CraneExtractor extends BlockCraneBase { return 0; } + + @Override + public boolean canConnectRedstone(IBlockAccess world, int x, int y, int z, int side) { + return true; + } } diff --git a/src/main/java/com/hbm/blocks/network/CraneInserter.java b/src/main/java/com/hbm/blocks/network/CraneInserter.java index 87badfa35..106ee232f 100644 --- a/src/main/java/com/hbm/blocks/network/CraneInserter.java +++ b/src/main/java/com/hbm/blocks/network/CraneInserter.java @@ -10,6 +10,7 @@ import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.item.EntityItem; +import net.minecraft.inventory.Container; import net.minecraft.inventory.IInventory; import net.minecraft.inventory.ISidedInventory; import net.minecraft.item.ItemStack; @@ -135,6 +136,7 @@ public class CraneInserter extends BlockCraneBase implements IEnterableBlock { stack.stackSize += amount; toAdd.stackSize -= amount; + inv.markDirty(); if(toAdd.stackSize == 0) { return null; @@ -154,6 +156,7 @@ public class CraneInserter extends BlockCraneBase implements IEnterableBlock { newStack.stackSize = amount; inv.setInventorySlotContents(index, newStack); toAdd.stackSize -= amount; + inv.markDirty(); if(toAdd.stackSize == 0) { return null; @@ -177,4 +180,14 @@ public class CraneInserter extends BlockCraneBase implements IEnterableBlock { return 0; } + + @Override + public boolean hasComparatorInputOverride() { + return true; + } + + @Override + public int getComparatorInputOverride(World world, int x, int y, int z, int side) { + return Container.calcRedstoneFromInventory((TileEntityCraneInserter)world.getTileEntity(x, y, z)); + } } diff --git a/src/main/java/com/hbm/entity/effect/EntityNukeTorex.java b/src/main/java/com/hbm/entity/effect/EntityNukeTorex.java new file mode 100644 index 000000000..4ea9d3c6d --- /dev/null +++ b/src/main/java/com/hbm/entity/effect/EntityNukeTorex.java @@ -0,0 +1,261 @@ +package com.hbm.entity.effect; + +import java.util.ArrayList; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.entity.Entity; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.MathHelper; +import net.minecraft.util.Vec3; +import net.minecraft.world.World; + +/* + * Toroidial Convection Simulation Explosion Effect + * Tor Ex + */ +public class EntityNukeTorex extends Entity { + + public double coreHeight = 3; + public double convectionHeight = 3; + public double torusWidth = 3; + public double rollerSize = 1; + public double heat = 1; + public ArrayList cloudlets = new ArrayList(); + public static int cloudletLife = 200; + + public EntityNukeTorex(World world) { + super(world); + this.ignoreFrustumCheck = true; + } + + @Override + protected void entityInit() { } + + @Override + public void onUpdate() { + this.ticksExisted++; + + int maxAge = 90 * 20; + + if(worldObj.isRemote) { + + double range = (torusWidth - rollerSize) * 0.25; + + if(this.ticksExisted + cloudletLife * 2 < maxAge) { + for(int i = 0; i < 20; i++) { + double y = posY + rand.nextGaussian() - 3; //this.ticksExisted < 60 ? this.posY + this.coreHeight : posY + rand.nextGaussian() - 3; + Cloudlet cloud = new Cloudlet(posX + rand.nextGaussian() * range, y, posZ + rand.nextGaussian() * range, (float)(rand.nextDouble() * 2D * Math.PI), 0); + cloudlets.add(cloud); + } + } + + int cloudCount = ticksExisted * 3; + if(ticksExisted < 200) { + for(int i = 0; i < cloudCount; i++) { + Vec3 vec = Vec3.createVectorHelper(ticksExisted + rand.nextDouble(), 0, 0); + float rot = (float) (Math.PI * 2 * rand.nextDouble()); + vec.rotateAroundY(rot); + this.cloudlets.add(new Cloudlet(vec.xCoord + posX, worldObj.getHeightValue((int) (vec.xCoord + posX) + 2, (int) (vec.zCoord + posZ)), vec.zCoord + posZ, rot, 0)); + } + } + + for(Cloudlet cloud : cloudlets) { + cloud.update(); + } + + coreHeight += 0.15; + torusWidth += 0.05; + rollerSize = torusWidth * 0.35; + convectionHeight = coreHeight + rollerSize; + + int maxHeat = 50; + heat = maxHeat - Math.pow((maxHeat * this.ticksExisted) / maxAge, 1); + + cloudlets.removeIf(x -> x.isDead); + } + + if(!worldObj.isRemote && this.ticksExisted > maxAge) { + this.setDead(); + } + } + + public class Cloudlet { + + public double posX; + public double posY; + public double posZ; + public double prevPosX; + public double prevPosY; + public double prevPosZ; + public double motionX; + public double motionY; + public double motionZ; + public int age; + public float angle; + public boolean isDead = false; + float rangeMod = 1.0F; + public float colorMod = 1.0F; + public Vec3 color; + public Vec3 prevColor; + + public Cloudlet(double posX, double posY, double posZ, float angle, int age) { + this.posX = posX; + this.posY = posY; + this.posZ = posZ; + this.age = age; + this.angle = angle; + this.rangeMod = 0.3F + rand.nextFloat() * 0.7F; + this.colorMod = 0.8F + rand.nextFloat() * 0.2F; + + this.updateColor(); + } + + private void update() { + + age++; + + if(age > cloudletLife) { + this.isDead = true; + } + + this.prevPosX = this.posX; + this.prevPosY = this.posY; + this.prevPosZ = this.posZ; + + Vec3 simPos = Vec3.createVectorHelper(EntityNukeTorex.this.posX - this.posX, 0, EntityNukeTorex.this.posZ - this.posZ); + double simPosX = EntityNukeTorex.this.posX + simPos.lengthVector(); + double simPosZ = EntityNukeTorex.this.posZ + 0D; + + Vec3 convection = getConvectionMotion(simPosX, simPosZ); + Vec3 lift = getLiftMotion(simPosX, simPosZ); + + double factor = MathHelper.clamp_double((this.posY - EntityNukeTorex.this.posY) / EntityNukeTorex.this.coreHeight, 0, 1); + this.motionX = convection.xCoord * factor + lift.xCoord * (1D - factor); + this.motionY = convection.yCoord * factor + lift.yCoord * (1D - factor); + this.motionZ = convection.zCoord * factor + lift.zCoord * (1D - factor); + + if(EntityNukeTorex.this.ticksExisted > 45 * 20) { + int timeLeft = 1600 - EntityNukeTorex.this.ticksExisted; + double scaled = Math.max((double) timeLeft / 900D, 0); + this.motionX *= scaled; + this.motionY *= scaled; + this.motionZ *= scaled; + } + + this.posX += this.motionX; + this.posY += this.motionY; + this.posZ += this.motionZ; + + this.updateColor(); + } + + /* simulated on a 2D-plane along the X/Y axis */ + private Vec3 getConvectionMotion(double simPosX, double simPosZ) { + + if(simPosX > EntityNukeTorex.this.posX + torusWidth * 2) + return Vec3.createVectorHelper(0, 0, 0); + + /* the position of the torus' outer ring center */ + Vec3 torusPos = Vec3.createVectorHelper( + (EntityNukeTorex.this.posX + torusWidth), + (EntityNukeTorex.this.posY + coreHeight), + EntityNukeTorex.this.posZ); + + /* the difference between the cloudlet and the torus' ring center */ + Vec3 delta = Vec3.createVectorHelper(torusPos.xCoord - simPosX, torusPos.yCoord - this.posY, torusPos.zCoord - simPosZ); + + + /* the distance this cloudlet wants to achieve to the torus' ring center */ + double roller = EntityNukeTorex.this.rollerSize * this.rangeMod; + /* the distance between this cloudlet and the torus' outer ring perimeter */ + double dist = delta.lengthVector() / roller - 1D; + + /* euler function based on how far the cloudlet is away from the perimeter */ + double func = 1D - Math.pow(Math.E, -dist); // [0;1] + /* just an approximation, but it's good enough */ + float angle = (float) (func * Math.PI * 0.5D); // [0;90°] + + /* vector going from the ring center in the direction of the cloudlet, stopping at the perimeter */ + Vec3 rot = Vec3.createVectorHelper(-delta.xCoord / dist, -delta.yCoord / dist, -delta.zCoord / dist); + /* rotate by the approximate angle */ + rot.rotateAroundZ(angle); + + /* the direction from the cloudlet to the target position on the perimeter */ + Vec3 motion = Vec3.createVectorHelper( + torusPos.xCoord + rot.xCoord - simPosX, + torusPos.yCoord + rot.yCoord - this.posY, + torusPos.zCoord + rot.zCoord - simPosZ); + + motion = motion.normalize(); + motion.rotateAroundY(this.angle); + + return motion; + } + + private Vec3 getLiftMotion(double simPosX, double simPosZ) { + double scale = MathHelper.clamp_double(1D - (simPosX - (EntityNukeTorex.this.posX + torusWidth)), 0, 1); + + Vec3 motion = Vec3.createVectorHelper(EntityNukeTorex.this.posX - this.posX, (EntityNukeTorex.this.posY + convectionHeight) - this.posY, EntityNukeTorex.this.posZ - this.posZ); + + motion = motion.normalize(); + motion.xCoord *= scale; + motion.yCoord *= scale; + motion.zCoord *= scale; + + return motion; + } + + private void updateColor() { + this.prevColor = this.color; + + double exX = EntityNukeTorex.this.posX; + double exY = EntityNukeTorex.this.posY + EntityNukeTorex.this.coreHeight; + double exZ = EntityNukeTorex.this.posZ; + + double distX = exX - posX; + double distY = exY - posY; + double distZ = exZ - posZ; + + double distSq = distX * distX + distY * distY + distZ * distZ; + distSq /= EntityNukeTorex.this.heat; + double dist = Math.sqrt(distSq); + + dist = Math.max(dist, 1); + double col = 2D / dist; + //col *= col; + + this.color = Vec3.createVectorHelper( + Math.max(col * 2, 0.25), + Math.max(col * 1.5, 0.25), + Math.max(col * 0.5, 0.25) + ); + } + + public Vec3 getInterpPos(float interp) { + return Vec3.createVectorHelper( + prevPosX + (posX - prevPosX) * interp, + prevPosY + (posY - prevPosY) * interp, + prevPosZ + (posZ - prevPosZ) * interp); + } + + public Vec3 getInterpColor(float interp) { + return Vec3.createVectorHelper( + prevColor.xCoord + (color.xCoord - prevColor.xCoord) * interp, + prevColor.yCoord + (color.yCoord - prevColor.yCoord) * interp, + prevColor.zCoord + (color.zCoord - prevColor.zCoord) * interp); + } + } + + @Override + protected void readEntityFromNBT(NBTTagCompound nbt) { } + + @Override + protected void writeEntityToNBT(NBTTagCompound nbt) { } + + @Override + @SideOnly(Side.CLIENT) + public boolean isInRangeToRenderDist(double distance) { + return distance < 25000; + } +} diff --git a/src/main/java/com/hbm/entity/item/EntityMovingItem.java b/src/main/java/com/hbm/entity/item/EntityMovingItem.java index 406a9c483..cac247fb5 100644 --- a/src/main/java/com/hbm/entity/item/EntityMovingItem.java +++ b/src/main/java/com/hbm/entity/item/EntityMovingItem.java @@ -35,7 +35,7 @@ public class EntityMovingItem extends Entity implements IConveyorItem { public EntityMovingItem(World p_i1582_1_) { super(p_i1582_1_); - this.setSize(0.5F, 0.5F); + this.setSize(0.375F, 0.375F); this.noClip = true; } diff --git a/src/main/java/com/hbm/entity/missile/EntityMinerRocket.java b/src/main/java/com/hbm/entity/missile/EntityMinerRocket.java index 7e9cb87d7..b32840bc2 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMinerRocket.java +++ b/src/main/java/com/hbm/entity/missile/EntityMinerRocket.java @@ -66,11 +66,8 @@ public class EntityMinerRocket extends Entity { } } - if(dataWatcher.getWatchableObjectInt(16) != 1) { - - if(ticksExisted % 2 == 0) { - ParticleUtil.spawnGasFlame(worldObj, posX, posY - 0.5, posZ, 0.0, -1.0, 0.0); - } + if(dataWatcher.getWatchableObjectInt(16) != 1 && !worldObj.isRemote && ticksExisted % 2 == 0) { + ParticleUtil.spawnGasFlame(worldObj, posX, posY - 0.5, posZ, 0.0, -1.0, 0.0); } if(dataWatcher.getWatchableObjectInt(16) == 2 && posY > 300) diff --git a/src/main/java/com/hbm/extprop/HbmPlayerProps.java b/src/main/java/com/hbm/extprop/HbmPlayerProps.java index 2e991b86e..d9e29cc43 100644 --- a/src/main/java/com/hbm/extprop/HbmPlayerProps.java +++ b/src/main/java/com/hbm/extprop/HbmPlayerProps.java @@ -28,6 +28,9 @@ public class HbmPlayerProps implements IExtendedEntityProperties { public int totalDashCount = 0; public int stamina = 0; + public static final int plinkCooldownLength = 10; + public int plinkCooldown = 0; + public HbmPlayerProps(EntityPlayer player) { this.player = player; } @@ -103,6 +106,15 @@ public class HbmPlayerProps implements IExtendedEntityProperties { public int getDashCount() { return this.totalDashCount; } + + public static void plink(EntityPlayer player, String sound, float volume, float pitch) { + HbmPlayerProps props = HbmPlayerProps.getData(player); + + if(props.plinkCooldown <= 0) { + player.worldObj.playSoundAtEntity(player, sound, volume, pitch); + props.plinkCooldown = props.plinkCooldownLength; + } + } @Override public void init(Entity entity, World world) { } diff --git a/src/main/java/com/hbm/handler/EntityEffectHandler.java b/src/main/java/com/hbm/handler/EntityEffectHandler.java index 8b9a13761..06b4a9c7e 100644 --- a/src/main/java/com/hbm/handler/EntityEffectHandler.java +++ b/src/main/java/com/hbm/handler/EntityEffectHandler.java @@ -83,8 +83,9 @@ public class EntityEffectHandler { handleRadiation(entity); handleDigamma(entity); handleLungDisease(entity); - + handleDashing(entity); + handlePlinking(entity); } private static void handleContamination(EntityLivingBase entity) { @@ -517,4 +518,15 @@ public class EntityEffectHandler { } } + + private static void handlePlinking(Entity entity) { + + if(entity instanceof EntityPlayer) { + EntityPlayer player = (EntityPlayer)entity; + HbmPlayerProps props = HbmPlayerProps.getData(player); + + if(props.plinkCooldown > 0) + props.plinkCooldown--; + } + } } diff --git a/src/main/java/com/hbm/inventory/gui/GUIRBMKConsole.java b/src/main/java/com/hbm/inventory/gui/GUIRBMKConsole.java index 1ac9e7503..d4947437c 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIRBMKConsole.java +++ b/src/main/java/com/hbm/inventory/gui/GUIRBMKConsole.java @@ -239,7 +239,7 @@ public class GUIRBMKConsole extends GuiScreen { drawTexturedModalRect(guiLeft + x, guiTop + y, tX, tY, size, size); - int h = (int)Math.ceil((col.data.getDouble("heat") - 20) * 10 / col.data.getDouble("maxHeat")); + int h = Math.min((int)Math.ceil((col.data.getDouble("heat") - 20) * 10 / col.data.getDouble("maxHeat")), 10); drawTexturedModalRect(guiLeft + x, guiTop + y + size - h, 0, 192 - h, 10, h); switch(col.type) { diff --git a/src/main/java/com/hbm/items/ItemGenericPart.java b/src/main/java/com/hbm/items/ItemGenericPart.java index 3e87bb0ca..67e129cfd 100644 --- a/src/main/java/com/hbm/items/ItemGenericPart.java +++ b/src/main/java/com/hbm/items/ItemGenericPart.java @@ -9,20 +9,20 @@ import net.minecraft.util.IIcon; public class ItemGenericPart extends ItemEnumMulti { - public static enum EnumPartTpe { + public static enum EnumPartType { PISTON_PNEUMATIC("piston_pneumatic"), PISTON_HYDRAULIC("piston_hydraulic"), PISTON_ELECTRIC("piston_electric"); private String texName; - private EnumPartTpe(String texName) { + private EnumPartType(String texName) { this.texName = texName; } } public ItemGenericPart() { - super(EnumPartTpe.class, true, true); + super(EnumPartType.class, true, true); } @SideOnly(Side.CLIENT) @@ -32,7 +32,7 @@ public class ItemGenericPart extends ItemEnumMulti { this.icons = new IIcon[enums.length]; for(int i = 0; i < icons.length; i++) { - EnumPartTpe num = (EnumPartTpe)enums[i]; + EnumPartType num = (EnumPartType)enums[i]; this.icons[i] = reg.registerIcon(RefStrings.MODID + ":" + num.texName); } } diff --git a/src/main/java/com/hbm/items/armor/ArmorDNT.java b/src/main/java/com/hbm/items/armor/ArmorDNT.java index c71042018..d22034e78 100644 --- a/src/main/java/com/hbm/items/armor/ArmorDNT.java +++ b/src/main/java/com/hbm/items/armor/ArmorDNT.java @@ -141,7 +141,9 @@ public class ArmorDNT extends ArmorFSBPowered { return; } - e.worldObj.playSoundAtEntity(e, "random.break", 5F, 1.0F + e.getRNG().nextFloat() * 0.5F); + //e.worldObj.playSoundAtEntity(e, "random.break", 5F, 1.0F + e.getRNG().nextFloat() * 0.5F); + HbmPlayerProps.plink(player, "random.break", 0.5F, 1.0F + e.getRNG().nextFloat() * 0.5F); + event.setCanceled(true); } } diff --git a/src/main/java/com/hbm/items/tool/ItemWandD.java b/src/main/java/com/hbm/items/tool/ItemWandD.java index f7702c7f0..527f6d5cf 100644 --- a/src/main/java/com/hbm/items/tool/ItemWandD.java +++ b/src/main/java/com/hbm/items/tool/ItemWandD.java @@ -3,6 +3,7 @@ package com.hbm.items.tool; import java.util.List; import com.hbm.blocks.ModBlocks; +import com.hbm.entity.effect.EntityNukeTorex; import com.hbm.entity.mob.siege.EntitySiegeTunneler; import com.hbm.items.ModItems; import com.hbm.items.special.ItemKitCustom; @@ -30,6 +31,10 @@ public class ItemWandD extends Item { if(pos != null) { + EntityNukeTorex torex = new EntityNukeTorex(world); + torex.setPositionAndRotation(pos.blockX, pos.blockY + 1, pos.blockZ, 0, 0); + world.spawnEntityInWorld(torex); + /*EntitySiegeTunneler tunneler = new EntitySiegeTunneler(world); tunneler.setPosition(pos.blockX, pos.blockY + 1, pos.blockZ); tunneler.onSpawnWithEgg(null); @@ -37,7 +42,7 @@ public class ItemWandD extends Item { //CellularDungeonFactory.meteor.generate(world, x, y, z, world.rand); - int r = 5; + /*int r = 5; int x = pos.blockX; int y = pos.blockY; @@ -49,7 +54,7 @@ public class ItemWandD extends Item { world.getBlock(i, j, k).updateTick(world, i, j, k, world.rand); } } - } + }*/ //new Bunker().generate(world, world.rand, x, y, z); diff --git a/src/main/java/com/hbm/lib/RefStrings.java b/src/main/java/com/hbm/lib/RefStrings.java index e9f05f200..d974bc73d 100644 --- a/src/main/java/com/hbm/lib/RefStrings.java +++ b/src/main/java/com/hbm/lib/RefStrings.java @@ -3,7 +3,7 @@ package com.hbm.lib; public class RefStrings { public static final String MODID = "hbm"; public static final String NAME = "Hbm's Nuclear Tech Mod"; - public static final String VERSION = "1.0.27 BETA (4251)"; + public static final String VERSION = "1.0.27 BETA (4263)"; //HBM's Beta Naming Convention: //V T (X) //V -> next release version diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index c5179acab..9b791ce17 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -624,6 +624,7 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerEntityRenderingHandler(EntityDeathBlast.class, new RenderDeathBlast()); RenderingRegistry.registerEntityRenderingHandler(EntityNukeExplosionAdvanced.class, new RenderSnowball(ModItems.energy_ball)); RenderingRegistry.registerEntityRenderingHandler(EntitySpear.class, new RenderSpear()); + RenderingRegistry.registerEntityRenderingHandler(EntityNukeTorex.class, new RenderTorex()); //minecarts RenderingRegistry.registerEntityRenderingHandler(EntityMinecartTest.class, new RenderMinecartTest()); RenderingRegistry.registerEntityRenderingHandler(EntityMinecartCrate.class, new RenderMinecart()); diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index 00dd67d2f..5990c9698 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -16,7 +16,7 @@ import static com.hbm.inventory.OreDictManager.*; import com.hbm.items.ModItems; import com.hbm.items.ItemEnums.EnumLegendaryType; import com.hbm.items.ItemEnums.EnumPlantType; -import com.hbm.items.ItemGenericPart.EnumPartTpe; +import com.hbm.items.ItemGenericPart.EnumPartType; import com.hbm.items.machine.ItemBattery; import com.hbm.items.special.ItemCircuitStarComponent.CircuitComponentType; import com.hbm.items.special.ItemHolotapeImage.EnumHoloImage; @@ -237,10 +237,12 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModItems.ducttape, 6), new Object[] { "FSF", "SPS", "FSF", 'F', Items.string, 'S', KEY_SLIME, 'P', Items.paper }); addRecipeAuto(new ItemStack(ModBlocks.conveyor, 16), new Object[] { "LLL", "I I", "LLL", 'L', Items.leather, 'I', IRON.ingot() }); + addRecipeAuto(new ItemStack(ModBlocks.conveyor, 16), new Object[] { "RSR", "I I", "RSR", 'I', IRON.ingot(), 'R', DictFrame.fromOne(ModItems.plant_item, EnumPlantType.ROPE), 'S', IRON.plate() }); addRecipeAuto(new ItemStack(ModBlocks.conveyor, 64), new Object[] { "LLL", "I I", "LLL", 'L', RUBBER.ingot(), 'I', IRON.ingot() }); addRecipeAuto(new ItemStack(ModBlocks.conveyor_double, 3), new Object[] { "CPC", "CPC", "CPC", 'C', ModBlocks.conveyor, 'P', IRON.plate() }); addRecipeAuto(new ItemStack(ModBlocks.conveyor_triple, 3), new Object[] { "CPC", "CPC", "CPC", 'C', ModBlocks.conveyor_double, 'P', STEEL.plate() }); addRecipeAuto(new ItemStack(ModBlocks.conveyor_chute, 3), new Object[] { "IGI", "IGI", "ICI" , 'I', IRON.ingot(), 'G', ModBlocks.steel_grate, 'C', ModBlocks.conveyor }); + addRecipeAuto(new ItemStack(ModBlocks.conveyor_lift, 3), new Object[] { "IGI", "IGI", "ICI" , 'I', IRON.ingot(), 'G', ModBlocks.chain, 'C', ModBlocks.conveyor }); //addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.machine_difurnace_off), 1), new Object[] { "T T", "PHP", "TFT", 'T', W.ingot(), 'P', ModItems.board_copper, 'H', Blocks.hopper, 'F', Blocks.furnace }); addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.machine_uf6_tank), 1), new Object[] { "WTW", "WTW", "SRS", 'S', IRON.plate(), 'W', ModItems.coil_tungsten, 'T', ModItems.tank_steel, 'W', ModItems.coil_tungsten,'R', MINGRADE.ingot() }); @@ -770,7 +772,14 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModItems.upgrade_crystallizer, 1), new Object[] { "PHP", "CUC", "DTD", 'P', new ItemStack(ModItems.fluid_barrel_full, 1, Fluids.ACID.getID()), 'H', ModItems.circuit_targeting_tier4, 'C', ModBlocks.barrel_steel, 'U', ModItems.upgrade_centrifuge, 'D', ModItems.motor, 'T', ModBlocks.machine_transformer }); addRecipeAuto(new ItemStack(ModItems.upgrade_screm, 1), new Object[] { "SUS", "SCS", "SUS", 'S', STEEL.plate(), 'U', ModItems.upgrade_template, 'C', ModItems.crystal_xen }); addRecipeAuto(new ItemStack(ModItems.upgrade_gc_speed, 1), new Object[] {"GNG", "RUR", "GMG", 'R', RUBBER.ingot(), 'M', ModItems.motor, 'G', ModItems.coil_gold, 'N', TCALLOY.ingot(), 'U', ModItems.upgrade_template}); - + + addRecipeAuto(new ItemStack(ModItems.upgrade_stack, 1, 0), new Object[] { " C ", "PUP", " C ", 'C', ModItems.circuit_aluminium, 'P', DictFrame.fromOne(ModItems.part_generic, EnumPartType.PISTON_PNEUMATIC), 'U', ModItems.upgrade_template }); + addRecipeAuto(new ItemStack(ModItems.upgrade_stack, 1, 1), new Object[] { " C ", "PUP", " C ", 'C', ModItems.circuit_copper, 'P', DictFrame.fromOne(ModItems.part_generic, EnumPartType.PISTON_HYDRAULIC), 'U', new ItemStack(ModItems.upgrade_stack, 1, 0) }); + addRecipeAuto(new ItemStack(ModItems.upgrade_stack, 1, 2), new Object[] { " C ", "PUP", " C ", 'C', ModItems.circuit_red_copper, 'P', DictFrame.fromOne(ModItems.part_generic, EnumPartType.PISTON_ELECTRIC), 'U', new ItemStack(ModItems.upgrade_stack, 1, 1) }); + addRecipeAuto(new ItemStack(ModItems.upgrade_ejector, 1, 0), new Object[] { " C ", "PUP", " C ", 'C', ModItems.plate_copper, 'P', ModItems.motor, 'U', ModItems.upgrade_template }); + addRecipeAuto(new ItemStack(ModItems.upgrade_ejector, 1, 1), new Object[] { " C ", "PUP", " C ", 'C', ModItems.plate_gold, 'P', ModItems.motor, 'U', new ItemStack(ModItems.upgrade_ejector, 1, 0) }); + addRecipeAuto(new ItemStack(ModItems.upgrade_ejector, 1, 2), new Object[] { " C ", "PUP", " C ", 'C', ModItems.plate_saturnite, 'P', ModItems.motor, 'U', new ItemStack(ModItems.upgrade_ejector, 1, 1) }); + addRecipeAuto(new ItemStack(ModItems.mech_key, 1), new Object[] { "MCM", "MKM", "MMM", 'M', ModItems.ingot_meteorite_forged, 'C', ModItems.coin_maskman, 'K', ModItems.key }); addRecipeAuto(new ItemStack(ModItems.spawn_ufo, 1), new Object[] { "MMM", "DCD", "MMM", 'M', ModItems.ingot_meteorite, 'D', DNT.ingot(), 'C', ModItems.coin_worm }); @@ -917,9 +926,9 @@ public class CraftingManager { addShapelessAuto(new ItemStack(ModItems.canister_full, 1, Fluids.BIOFUEL.getID()), new Object[] { ModItems.canister_biofuel }); addShapelessAuto(new ItemStack(ModItems.canister_full, 1, Fluids.ETHANOL.getID()), new Object[] { ModItems.canister_ethanol }); - addRecipeAuto(DictFrame.fromOne(ModItems.part_generic, EnumPartTpe.PISTON_PNEUMATIC, 4), new Object[] { " I ", "CPC", " I ", 'I', IRON.ingot(), 'C', CU.ingot(), 'P', IRON.plate() }); - addRecipeAuto(DictFrame.fromOne(ModItems.part_generic, EnumPartTpe.PISTON_HYDRAULIC, 4), new Object[] { " I ", "CPC", " I ", 'I', STEEL.ingot(), 'C', TI.ingot(), 'P', Fluids.LUBRICANT.getDict(1000) }); - addRecipeAuto(DictFrame.fromOne(ModItems.part_generic, EnumPartTpe.PISTON_ELECTRIC, 4), new Object[] { " I ", "CPC", " I ", 'I', TCALLOY.ingot(), 'C', ANY_PLASTIC.ingot(), 'P', ModItems.motor }); + addRecipeAuto(DictFrame.fromOne(ModItems.part_generic, EnumPartType.PISTON_PNEUMATIC, 4), new Object[] { " I ", "CPC", " I ", 'I', IRON.ingot(), 'C', CU.ingot(), 'P', IRON.plate() }); + addRecipeAuto(DictFrame.fromOne(ModItems.part_generic, EnumPartType.PISTON_HYDRAULIC, 4), new Object[] { " I ", "CPC", " I ", 'I', STEEL.ingot(), 'C', TI.ingot(), 'P', Fluids.LUBRICANT.getDict(1000) }); + addRecipeAuto(DictFrame.fromOne(ModItems.part_generic, EnumPartType.PISTON_ELECTRIC, 4), new Object[] { " I ", "CPC", " I ", 'I', TCALLOY.ingot(), 'C', ANY_PLASTIC.ingot(), 'P', ModItems.motor }); Object[] craneCasing = new Object[] { Blocks.stonebrick, 1, @@ -931,7 +940,7 @@ public class CraftingManager { Object casing = craneCasing[i * 2]; int amount = (int) craneCasing[i * 2 + 1]; addRecipeAuto(new ItemStack(ModBlocks.crane_inserter, amount), new Object[] { "CCC", "C C", "CBC", 'C', casing, 'B', ModBlocks.conveyor }); - addRecipeAuto(new ItemStack(ModBlocks.crane_extractor, amount), new Object[] { "CCC", "CPC", "CBC", 'C', casing, 'B', ModBlocks.conveyor, 'P', DictFrame.fromOne(ModItems.part_generic, EnumPartTpe.PISTON_PNEUMATIC) }); + addRecipeAuto(new ItemStack(ModBlocks.crane_extractor, amount), new Object[] { "CCC", "CPC", "CBC", 'C', casing, 'B', ModBlocks.conveyor, 'P', DictFrame.fromOne(ModItems.part_generic, EnumPartType.PISTON_PNEUMATIC) }); } addShapelessAuto(DictFrame.fromOne(ModItems.parts_legendary, EnumLegendaryType.TIER1), new Object[] { ModItems.ingot_chainsteel, ASBESTOS.ingot(), ModItems.gem_alexandrite }); diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index be6fb4dd1..e10071033 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -501,6 +501,7 @@ public class MainRegistry { EntityRegistry.registerModEntity(EntityMagnusCartus.class, "entity_ntm_cart_chungoid", 174, this, 250, 1, false); EntityRegistry.registerModEntity(EntityMinecartPowder.class, "entity_ntm_cart_powder", 175, this, 250, 1, false); EntityRegistry.registerModEntity(EntityMinecartSemtex.class, "entity_ntm_cart_semtex", 176, this, 250, 1, false); + EntityRegistry.registerModEntity(EntityNukeTorex.class, "entity_effect_torex", 177, this, 250, 1, false); EntityRegistry.registerGlobalEntityID(EntityNuclearCreeper.class, "entity_mob_nuclear_creeper", EntityRegistry.findGlobalUniqueEntityId(), 0x204131, 0x75CE00); EntityRegistry.registerGlobalEntityID(EntityTaintedCreeper.class, "entity_mob_tainted_creeper", EntityRegistry.findGlobalUniqueEntityId(), 0x813b9b, 0xd71fdd); diff --git a/src/main/java/com/hbm/main/ModEventHandler.java b/src/main/java/com/hbm/main/ModEventHandler.java index d88bbd324..62014fee6 100644 --- a/src/main/java/com/hbm/main/ModEventHandler.java +++ b/src/main/java/com/hbm/main/ModEventHandler.java @@ -907,7 +907,7 @@ public class ModEventHandler { EntityPlayer player = (EntityPlayer) e; if(ArmorUtil.checkArmor(player, ModItems.euphemium_helmet, ModItems.euphemium_plate, ModItems.euphemium_legs, ModItems.euphemium_boots)) { - e.worldObj.playSoundAtEntity(e, "random.break", 5F, 1.0F + e.getRNG().nextFloat() * 0.5F); + HbmPlayerProps.plink(player, "random.break", 0.5F, 1.0F + e.getRNG().nextFloat() * 0.5F); event.setCanceled(true); } diff --git a/src/main/java/com/hbm/render/block/RenderConveyorChute.java b/src/main/java/com/hbm/render/block/RenderConveyorChute.java index 56c8ded27..d85681687 100644 --- a/src/main/java/com/hbm/render/block/RenderConveyorChute.java +++ b/src/main/java/com/hbm/render/block/RenderConveyorChute.java @@ -64,8 +64,8 @@ public class RenderConveyorChute implements ISimpleBlockRenderingHandler { double maxOuter = 1.0; double minInner = 0.25; double maxInner = 0.75; - double glassMin = 0.1875; - double glassMax = 0.8175; + double glassMin = 0.125; + double glassMax = 0.875; renderer.setRenderBounds(minOuter, 0.0, minOuter, minInner, 1.0, minInner); standardBundle(tessellator, ModBlocks.concrete_smooth, 0, renderer); renderer.setRenderBounds(maxInner, 0.0, minOuter, maxOuter, 1.0, minInner); standardBundle(tessellator, ModBlocks.concrete_smooth, 0, renderer); @@ -78,7 +78,6 @@ public class RenderConveyorChute implements ISimpleBlockRenderingHandler { renderer.setRenderBounds(glassMin, 0.25, minInner, glassMin, 1.0, maxInner); standardBundle(tessellator, ModBlocks.steel_grate, 2, renderer); renderer.setRenderBounds(glassMax, 0.25, minInner, glassMax, 1.0, maxInner); standardBundle(tessellator, ModBlocks.steel_grate, 2, renderer); renderer.setRenderBounds(minInner, 0.25, glassMin, maxInner, 1.0, glassMin); standardBundle(tessellator, ModBlocks.steel_grate, 2, renderer); - renderer.setRenderBounds(minInner, 0.25, glassMax, maxInner, 1.0, glassMax); standardBundle(tessellator, ModBlocks.steel_grate, 2, renderer); tessellator.draw(); @@ -205,8 +204,8 @@ public class RenderConveyorChute implements ISimpleBlockRenderingHandler { renderer.setRenderBounds(minOuter, 0.0, maxInner, minInner, 1.0, maxOuter); renderer.renderStandardBlock(block, x, y, z); renderer.setRenderBounds(maxInner, 0.0, maxInner, maxOuter, 1.0, maxOuter); renderer.renderStandardBlock(block, x, y, z); - double glassMin = 0.1875; - double glassMax = 0.8175; + double glassMin = 0.125; + double glassMax = 0.875; renderer.setOverrideBlockTexture(iconGlass); if(!nX && (!belt || meta != 5)) { renderer.setRenderBounds(glassMin, belt ? 0.25 : 0.0, minInner, glassMin, 1.0, maxInner); renderer.renderStandardBlock(block, x, y, z); } diff --git a/src/main/java/com/hbm/render/block/RenderConveyorLift.java b/src/main/java/com/hbm/render/block/RenderConveyorLift.java index 45aac9ba2..badb6ee35 100644 --- a/src/main/java/com/hbm/render/block/RenderConveyorLift.java +++ b/src/main/java/com/hbm/render/block/RenderConveyorLift.java @@ -1,10 +1,15 @@ package com.hbm.render.block; +import com.hbm.blocks.ModBlocks; import com.hbm.blocks.network.BlockConveyorLift; +import api.hbm.conveyor.IConveyorBelt; import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; import net.minecraft.block.Block; import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.init.Blocks; +import net.minecraft.util.IIcon; import net.minecraft.world.IBlockAccess; public class RenderConveyorLift implements ISimpleBlockRenderingHandler { @@ -16,12 +21,156 @@ public class RenderConveyorLift implements ISimpleBlockRenderingHandler { @Override public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) { - return false; + + Tessellator tessellator = Tessellator.instance; + int meta = world.getBlockMetadata(x, y, z); + + tessellator.setBrightness(block.getMixedBrightnessForBlock(world, x, y, z)); + tessellator.setColorOpaque_F(1, 1, 1); + + boolean isBottom = false; + boolean isTop = false; + + IIcon iconConcrete = ModBlocks.concrete_smooth.getIcon(0, 0); + IIcon iconIron = Blocks.iron_block.getIcon(0, 0); + IIcon iconBelt = block.getIcon(0, 0); + + + if(y > 0) { + Block below = world.getBlock(x, y - 1, z); + if(!(below instanceof IConveyorBelt)) { + + renderer.setOverrideBlockTexture(iconBelt); + + if(meta != 5) { + renderer.uvRotateTop = 1; + renderer.uvRotateBottom = 1; + renderer.setRenderBounds(0.0D, 0.0D, 0.25D, 0.25D, 0.25D, 0.75D); renderer.renderStandardBlock(block, x, y, z); + } + if(meta != 4) { + renderer.uvRotateTop = 2; + renderer.uvRotateBottom = 2; + renderer.setRenderBounds(0.75D, 0.0D, 0.25D, 1.0D, 0.25D, 0.75D); renderer.renderStandardBlock(block, x, y, z); + } + if(meta != 3) { + renderer.uvRotateTop = 3; + renderer.uvRotateBottom = 0; + renderer.setRenderBounds(0.25D, 0.0D, 0.0D, 0.75D, 0.25D, 0.25D); renderer.renderStandardBlock(block, x, y, z); + } + if(meta != 2) { + renderer.uvRotateTop = 0; + renderer.uvRotateBottom = 3; + renderer.setRenderBounds(0.25D, 0.0D, 0.75D, 0.75D, 0.25D, 1.0D); renderer.renderStandardBlock(block, x, y, z); + } + + renderer.uvRotateTop = 0; + renderer.uvRotateBottom = 0; + + renderer.clearOverrideBlockTexture(); + + isBottom = true; + } + } + + if(y < 255) { + Block above = world.getBlock(x, y + 1, z); + isTop = !(above instanceof IConveyorBelt) && !isBottom; + } + + double minOuter = 0.0; + double maxOuter = 1.0; + double minInner = 0.25; + double maxInner = 0.75; + + renderer.setOverrideBlockTexture(iconConcrete); + + if(!isTop) { + if(meta == 2) { + renderer.setRenderBounds(minOuter, 0.0, minOuter, minInner, 1.0, minInner); renderer.renderStandardBlock(block, x, y, z); + renderer.setRenderBounds(maxInner, 0.0, minOuter, maxOuter, 1.0, minInner); renderer.renderStandardBlock(block, x, y, z); + renderer.setRenderBounds(minOuter, 0.0, maxInner, maxOuter, 1.0, maxOuter); renderer.renderStandardBlock(block, x, y, z); + renderer.setOverrideBlockTexture(iconBelt); + renderer.uvRotateTop = 3; + renderer.setRenderBounds(minInner, 0.0, maxInner - 0.125, maxInner, 1.0, maxInner); renderer.renderStandardBlock(block, x, y, z); + } + if(meta == 3) { + renderer.setRenderBounds(minOuter, 0.0, minOuter, maxOuter, 1.0, minInner); renderer.renderStandardBlock(block, x, y, z); + renderer.setRenderBounds(minOuter, 0.0, maxInner, minInner, 1.0, maxOuter); renderer.renderStandardBlock(block, x, y, z); + renderer.setRenderBounds(maxInner, 0.0, maxInner, maxOuter, 1.0, maxOuter); renderer.renderStandardBlock(block, x, y, z); + renderer.setOverrideBlockTexture(iconBelt); + renderer.uvRotateTop = 0; + renderer.setRenderBounds(minInner, 0.0, minInner, maxInner, 1.0, minInner + 0.125); renderer.renderStandardBlock(block, x, y, z); + } + if(meta == 4) { + renderer.setRenderBounds(minOuter, 0.0, minOuter, minInner, 1.0, minInner); renderer.renderStandardBlock(block, x, y, z); + renderer.setRenderBounds(minOuter, 0.0, maxInner, minInner, 1.0, maxOuter); renderer.renderStandardBlock(block, x, y, z); + renderer.setRenderBounds(maxInner, 0.0, minOuter, maxOuter, 1.0, maxOuter); renderer.renderStandardBlock(block, x, y, z); + renderer.setOverrideBlockTexture(iconBelt); + renderer.uvRotateTop = 1; + renderer.setRenderBounds(maxInner - 0.125, 0.0, minInner, maxInner, 1.0, maxInner); renderer.renderStandardBlock(block, x, y, z); + } + if(meta == 5) { + renderer.setRenderBounds(maxInner, 0.0, minOuter, maxOuter, 1.0, minInner); renderer.renderStandardBlock(block, x, y, z); + renderer.setRenderBounds(maxInner, 0.0, maxInner, maxOuter, 1.0, maxOuter); renderer.renderStandardBlock(block, x, y, z); + renderer.setRenderBounds(minOuter, 0.0, minOuter, minInner, 1.0, maxOuter); renderer.renderStandardBlock(block, x, y, z); + renderer.setOverrideBlockTexture(iconBelt); + renderer.uvRotateTop = 2; + renderer.setRenderBounds(minInner, 0.0, minInner, minInner + 0.125, 1.0, maxInner); renderer.renderStandardBlock(block, x, y, z); + } + } else { + if(meta == 2 || meta == 3) { + renderer.setRenderBounds(minOuter, 0.0, minOuter, minInner, 0.5, maxOuter); renderer.renderStandardBlock(block, x, y, z); + renderer.setRenderBounds(maxInner, 0.0, minOuter, maxOuter, 0.5, maxOuter); renderer.renderStandardBlock(block, x, y, z); + renderer.clearOverrideBlockTexture(); + + if(meta == 2) { + renderer.uvRotateTop = 3; + renderer.uvRotateWest = 3; + renderer.setRenderBounds(minInner, 0.0, maxInner - 0.125, maxInner, 0.25, maxOuter); renderer.renderStandardBlock(block, x, y, z); + } else { + renderer.uvRotateTop = 0; + renderer.uvRotateEast = 3; + renderer.setRenderBounds(minInner, 0.0, minOuter, maxInner, 0.25, minInner + 0.125); renderer.renderStandardBlock(block, x, y, z); + } + } + + if(meta == 4 || meta == 5) { + renderer.setRenderBounds(minOuter, 0.0, minOuter, maxOuter, 0.5, minInner); renderer.renderStandardBlock(block, x, y, z); + renderer.setRenderBounds(minOuter, 0.0, maxInner, maxOuter, 0.5, maxOuter); renderer.renderStandardBlock(block, x, y, z); + renderer.clearOverrideBlockTexture(); + + if(meta == 4) { + renderer.uvRotateTop = 1; + renderer.uvRotateSouth = 3; + renderer.setRenderBounds(maxInner - 0.125, 0.0, minInner, maxOuter, 0.25, maxInner); renderer.renderStandardBlock(block, x, y, z); + } else { + renderer.uvRotateTop = 2; + renderer.uvRotateNorth = 3; + renderer.setRenderBounds(minOuter, 0.0, minInner, minInner + 0.125, 0.25, maxInner); renderer.renderStandardBlock(block, x, y, z); + } + } + } + + renderer.uvRotateTop = 0; + renderer.uvRotateBottom = 0; + renderer.uvRotateNorth = 0; + renderer.uvRotateSouth = 0; + renderer.uvRotateEast = 0; + renderer.uvRotateWest = 0; + + if(isBottom) { + renderer.setOverrideBlockTexture(iconIron); + renderer.setRenderBounds(0.25 + (meta == 5 ? 0.125 : 0), 0, 0.25 + (meta == 3 ? 0.125 : 0), 0.75 - (meta == 4 ? 0.125 : 0), 0.25, 0.75 - (meta == 2 ? 0.125 : 0)); renderer.renderStandardBlock(block, x, y, z); + } + + renderer.clearOverrideBlockTexture(); + + return true; } @Override public boolean shouldRender3DInInventory(int modelId) { - return true; + return false; } @Override diff --git a/src/main/java/com/hbm/render/entity/effect/RenderTorex.java b/src/main/java/com/hbm/render/entity/effect/RenderTorex.java new file mode 100644 index 000000000..3fc1195ed --- /dev/null +++ b/src/main/java/com/hbm/render/entity/effect/RenderTorex.java @@ -0,0 +1,113 @@ +package com.hbm.render.entity.effect; + +import java.util.ArrayList; +import java.util.Comparator; + +import org.lwjgl.opengl.GL11; + +import com.hbm.entity.effect.EntityNukeTorex; +import com.hbm.entity.effect.EntityNukeTorex.Cloudlet; +import com.hbm.lib.RefStrings; +import com.hbm.main.MainRegistry; + +import net.minecraft.client.renderer.ActiveRenderInfo; +import net.minecraft.client.renderer.OpenGlHelper; +import net.minecraft.client.renderer.RenderHelper; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.client.renderer.entity.Render; +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.util.ResourceLocation; +import net.minecraft.util.Vec3; + +public class RenderTorex extends Render { + + private static final ResourceLocation cloudlet = new ResourceLocation(RefStrings.MODID + ":textures/particle/particle_base.png"); + + @Override + public void doRender(Entity entity, double x, double y, double z, float f0, float interp) { + + GL11.glPushMatrix(); + GL11.glTranslated(x, y, z); + EntityNukeTorex cloud = (EntityNukeTorex)entity; + cloudletWrapper(cloud, interp); + GL11.glPopMatrix(); + } + + private Comparator cloudSorter = new Comparator() { + + @Override + public int compare(Object arg0, Object arg1) { + Cloudlet first = (Cloudlet) arg0; + Cloudlet second = (Cloudlet) arg1; + EntityPlayer player = MainRegistry.proxy.me(); + double dist1 = player.getDistanceSq(first.posX, first.posY, first.posZ); + double dist2 = player.getDistanceSq(second.posX, second.posY, second.posZ); + + return dist1 > dist2 ? -1 : dist1 == dist2 ? 0 : 1; + } + }; + + private void cloudletWrapper(EntityNukeTorex cloud, float interp) { + + GL11.glPushMatrix(); + GL11.glEnable(GL11.GL_BLEND); + OpenGlHelper.glBlendFunc(770, 771, 1, 0); + // To prevent particles cutting off before fully fading out + GL11.glAlphaFunc(GL11.GL_GREATER, 0); + GL11.glDisable(GL11.GL_ALPHA_TEST); + GL11.glDepthMask(false); + RenderHelper.disableStandardItemLighting(); + + bindTexture(cloudlet); + + Tessellator tess = Tessellator.instance; + tess.startDrawingQuads(); + + ArrayList cloudlets = new ArrayList(cloud.cloudlets); + cloudlets.sort(cloudSorter); + + for(Cloudlet cloudlet : cloudlets) { + Vec3 vec = cloudlet.getInterpPos(interp); + tessellateCloudlet(tess, vec.xCoord - cloud.posX, vec.yCoord - cloud.posY, vec.zCoord - cloud.posZ, cloudlet, interp); + } + + tess.draw(); + + GL11.glDepthMask(true); + GL11.glEnable(GL11.GL_ALPHA_TEST); + RenderHelper.enableStandardItemLighting(); + GL11.glAlphaFunc(GL11.GL_GREATER, 0.1F); + GL11.glDisable(GL11.GL_BLEND); + GL11.glPopMatrix(); + } + + private void tessellateCloudlet(Tessellator tess, double posX, double posY, double posZ, Cloudlet cloud, float interp) { + + float alpha = 1F - ((float)cloud.age / (float)EntityNukeTorex.cloudletLife); + float scale = 1F + ((float)cloud.age / (float)EntityNukeTorex.cloudletLife) * 5; + + float f1 = ActiveRenderInfo.rotationX; + float f2 = ActiveRenderInfo.rotationZ; + float f3 = ActiveRenderInfo.rotationYZ; + float f4 = ActiveRenderInfo.rotationXY; + float f5 = ActiveRenderInfo.rotationXZ; + + //Random rand = new Random((long) ((posX * 5 + posY * 25 + posZ * 125) * 1000D)); + + float brightness = 0.75F * cloud.colorMod; + Vec3 color = cloud.getInterpColor(interp); + tess.setColorRGBA_F((float)color.xCoord * brightness, (float)color.yCoord * brightness, (float)color.zCoord * brightness, alpha); + + tess.addVertexWithUV((double) (posX - f1 * scale - f3 * scale), (double) (posY - f5 * scale), (double) (posZ - f2 * scale - f4 * scale), 1, 1); + tess.addVertexWithUV((double) (posX - f1 * scale + f3 * scale), (double) (posY + f5 * scale), (double) (posZ - f2 * scale + f4 * scale), 1, 0); + tess.addVertexWithUV((double) (posX + f1 * scale + f3 * scale), (double) (posY + f5 * scale), (double) (posZ + f2 * scale + f4 * scale), 0, 0); + tess.addVertexWithUV((double) (posX + f1 * scale - f3 * scale), (double) (posY - f5 * scale), (double) (posZ + f2 * scale - f4 * scale), 0, 1); + + } + + @Override + protected ResourceLocation getEntityTexture(Entity p_110775_1_) { + return null; + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java index 949292459..e1d87946b 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java @@ -64,17 +64,17 @@ public class TileEntityRBMKRod extends TileEntityRBMKSlottedBase implements IRBM rod.updateHeat(worldObj, slots[0], 1.0D); this.heat += rod.provideHeat(worldObj, slots[0], heat, 1.0D); - if(this.heat > this.maxHeat() && !RBMKDials.getMeltdownsDisabled(worldObj)) { - this.meltdown(); - return; - } - if(!this.hasLid()) { ChunkRadiationManager.proxy.incrementRad(worldObj, xCoord, yCoord, zCoord, (float) ((this.fluxFast + this.fluxSlow) * 0.05F)); } super.updateEntity(); + if(this.heat > this.maxHeat() && !RBMKDials.getMeltdownsDisabled(worldObj)) { + this.meltdown(); + return; + } + //for spreading, we want the buffered flux to be 0 because we want to know exactly how much gets reflected back this.fluxFast = 0; this.fluxSlow = 0; diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityCraneExtractor.java b/src/main/java/com/hbm/tileentity/network/TileEntityCraneExtractor.java index 93a10d9e3..88594df87 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityCraneExtractor.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityCraneExtractor.java @@ -55,7 +55,16 @@ public class TileEntityCraneExtractor extends TileEntityMachineBase implements I } } - if(worldObj.getTotalWorldTime() % delay == 0) { + boolean powered = false; + + for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { + if(this.worldObj.isBlockIndirectlyGettingPowered(xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ)) { + powered = true; + break; + } + } + + if(worldObj.getTotalWorldTime() % delay == 0 && !powered) { int amount = 1; if(slots[18] != null && slots[18].getItem() == ModItems.upgrade_stack) { diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityCraneInserter.java b/src/main/java/com/hbm/tileentity/network/TileEntityCraneInserter.java index 6556b3e8c..c91bd44dd 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityCraneInserter.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityCraneInserter.java @@ -56,6 +56,7 @@ public class TileEntityCraneInserter extends TileEntityMachineBase implements IG if(ret == null || ret.stackSize != stack.stackSize) { slots[i] = ret; + this.markDirty(); break; } } diff --git a/src/main/java/com/hbm/util/ParticleUtil.java b/src/main/java/com/hbm/util/ParticleUtil.java index 8f898e607..0428ec19b 100644 --- a/src/main/java/com/hbm/util/ParticleUtil.java +++ b/src/main/java/com/hbm/util/ParticleUtil.java @@ -1,5 +1,6 @@ package com.hbm.util; +import com.hbm.main.MainRegistry; import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; @@ -16,6 +17,14 @@ public class ParticleUtil { data.setDouble("mX", mX); data.setDouble("mY", mY); data.setDouble("mZ", mZ); - PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, x, y, z), new TargetPoint(world.provider.dimensionId, x, y, z, 150)); + + if(world.isRemote) { + data.setDouble("posX", x); + data.setDouble("posY", y); + data.setDouble("posZ", z); + MainRegistry.proxy.effectNT(data); + } else { + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, x, y, z), new TargetPoint(world.provider.dimensionId, x, y, z, 150)); + } } } diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index b7e48229b..26c150436 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -216,6 +216,8 @@ container.bombMulti=Mehrzweckbombe container.centrifuge=Zentrifuge container.chemplant=Chemiewerk container.compactLauncher=Kompakt-Startrampe +container.craneExtractor=Förderband-Auswerfer +container.craneInserter=Förderband-Einsetzer container.crateDesh=Deshkiste container.crateIron=Eisenkiste container.crateSteel=Stahlkiste @@ -2768,6 +2770,9 @@ item.upgrade_crystallizer.name=Kristallisiererupgrade item.upgrade_effect_1.name=Effektupgrade Mk.I item.upgrade_effect_2.name=Effektupgrade Mk.II item.upgrade_effect_3.name=Effektupgrade Mk.III +item.upgrade_ejector_1.name=Auswurfupgrade Mk.I +item.upgrade_ejector_2.name=Auswurfupgrade Mk.II +item.upgrade_ejector_3.name=Auswurfupgrade Mk.III item.upgrade_fortune_1.name=Glückupgrade Mk.I item.upgrade_fortune_2.name=Glückupgrade Mk.II item.upgrade_fortune_3.name=Glückupgrade Mk.III @@ -2786,6 +2791,9 @@ item.upgrade_smelter.name=Ofenupgrade item.upgrade_speed_1.name=Geschwindigkeitsupgrade Mk.I item.upgrade_speed_2.name=Geschwindigkeitsupgrade Mk.II item.upgrade_speed_3.name=Geschwindigkeitsupgrade Mk.III +item.upgrade_stack_1.name=Stapelupgrade Mk.I +item.upgrade_stack_2.name=Stapelupgrade Mk.II +item.upgrade_stack_3.name=Stapelupgrade Mk.III item.upgrade_template.name=Maschinenupgrade-Vorlage item.v1.name=V1 item.volcanic_pickaxe.name=Geschmolzene Spitzhacke @@ -3115,7 +3123,13 @@ tile.concrete_smooth.name=Beton tile.concrete_super.name=Super Beton tile.concrete_super_broken.name=Schimmliger Schutt tile.conveyor.name=Förderband +tile.conveyor_chute.name=Förderschütte +tile.conveyor_double.name=Zweispuriges Förderband +tile.conveyor_lift.name=Kettenaufzug +tile.conveyor_triple.name=Dreispuriges Förderband tile.corium_block.name=Corium +tile.crane_extractor.name=Förderband-Auswerfer +tile.crane_inserter.name=Förderband-Einsetzer tile.crashed_bomb.name=Blindgänger tile.crate.name=Vorratskiste tile.crate_ammo.name=Sternenmetallkiste diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index c02675eb4..bcf9d71b3 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -392,6 +392,8 @@ container.bombMulti=Multi Purpose Bomb container.centrifuge=Centrifuge container.chemplant=Chemical Plant container.compactLauncher=Compact Launch Pad +container.craneExtractor=Conveyor Extractor +container.craneInserter=Conveyor Inserter container.crateDesh=Desh Crate container.crateIron=Iron Crate container.crateSteel=Steel Crate @@ -3147,6 +3149,9 @@ item.upgrade_crystallizer.name=Crystallizer Upgrade item.upgrade_effect_1.name=Effectiveness Upgrade Mk.I item.upgrade_effect_2.name=Effectiveness Upgrade Mk.II item.upgrade_effect_3.name=Effectiveness Upgrade Mk.III +item.upgrade_ejector_1.name=Ejection Speed Upgrade Mk.I +item.upgrade_ejector_2.name=Ejection Speed Upgrade Mk.II +item.upgrade_ejector_3.name=Ejection Speed Upgrade Mk.III item.upgrade_fortune_1.name=Fortune Upgrade Mk.I item.upgrade_fortune_2.name=Fortune Upgrade Mk.II item.upgrade_fortune_3.name=Fortune Upgrade Mk.III @@ -3166,6 +3171,9 @@ item.upgrade_smelter.name=Smelter Upgrade item.upgrade_speed_1.name=Speed Upgrade Mk.I item.upgrade_speed_2.name=Speed Upgrade Mk.II item.upgrade_speed_3.name=Speed Upgrade Mk.III +item.upgrade_stack_1.name=Stack Ejection Upgrade Mk.I +item.upgrade_stack_2.name=Stack Ejection Upgrade Mk.II +item.upgrade_stack_3.name=Stack Ejection Upgrade Mk.III item.upgrade_template.name=Machine Upgrade Template item.v1.name=V1 item.volcanic_pickaxe.name=Molten Pickaxe @@ -3507,7 +3515,13 @@ tile.concrete_smooth.name=Concrete tile.concrete_super.name=Über Concrete tile.concrete_super_broken.name=Moldy Debris tile.conveyor.name=Conveyor Belt +tile.conveyor_chute.name=Conveyor Chute +tile.conveyor_double.name=Double-Lane Conveyor Belt +tile.conveyor_lift.name=Conveyor Chain Lift +tile.conveyor_triple.name=Triple-Lane Conveyor Belt tile.corium_block.name=Corium +tile.crane_extractor.name=Conveyor Ejector +tile.crane_inserter.name=Conveyor Inserter tile.crashed_bomb.name=Dud tile.crate.name=Supply Crate tile.crate_ammo.name=Starmetal Crate diff --git a/src/main/resources/assets/hbm/textures/models/machines/furnace_iron.png b/src/main/resources/assets/hbm/textures/models/machines/furnace_iron.png new file mode 100644 index 0000000000000000000000000000000000000000..ab2c6f558d288540349d99b657d11107d179bb70 GIT binary patch literal 797 zcmeAS@N?(olHy`uVBq!ia0vp^bAZ@|gAGWQT#exeQY^(zo*^7SP{WbZ!N9O49qlNuu5e~O^`gi;TOlg zgJK@HwYt9AS87Mz=l__oX#ctVd1ZSqS)E*aJzHN;w%=X+^N$T5HNSBt#Ko-0nSNUJ zRj1B$Z^4C^?(T9ed{|=T`ZIlf*yY1Wjrcn~-ZHb?D&FsVd#TdqDyudw_TZ2mHzuj9UbCv`>*bxZS2cvdjWCPJ z$$a(c{2JTvoWrgAT_@D6eZMu_bN=hT&za=@Xyqdmiy>-o}ug6Z@mH-bfl4 z@&jEf6|28>mHDoVuV4Q^Q@zmMYwtz(v(xIQ-#hl}*|V?HLZtsKHJSEHVbSh?yS4LQ z?=zUz#iaYU$V4G$(eCZPwUr8##oc)FQgx=9$@m05RC`qTd->I>`>NGVKc*k4mS4mt z%C~Gq!A8?PTSc|5E&KgOZSk5Ca0oqJm1g*i(@))la^4J)R$T zV@ciT|xiwpWmh+qChY5>s#C1xdN-aaulw-ftJYuG!=JneDtF&@qsNu!#3M zWA3JhE8yuNcZXQWFaBNCg6rQ`nO$~k%}zWaESFqsr6Pu$Od#p!mA+;2DfJ)jDIb98 Oox#)9&t;ucLK6VmRef&& literal 0 HcmV?d00001 diff --git a/src/main/resources/mcmod.info b/src/main/resources/mcmod.info index c356e6427..e618d5f48 100755 --- a/src/main/resources/mcmod.info +++ b/src/main/resources/mcmod.info @@ -3,7 +3,7 @@ "modid": "hbm", "name": "Hbm's Nuclear Tech", "description": "A mod that adds weapons, nuclear themed stuff and machines", - "version":"1.0.27_X4251", + "version":"1.0.27_X4263", "mcversion": "1.7.10", "url": "", "updateUrl": "", From 8d395e16587df6de0942647eb7818cb6aa4be5b5 Mon Sep 17 00:00:00 2001 From: Doctor17-git <60807716+Doctor17-git@users.noreply.github.com> Date: Sun, 12 Jun 2022 21:55:29 +0300 Subject: [PATCH 63/80] Updated ru_RU.lang --- src/main/resources/assets/hbm/lang/ru_RU.lang | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/src/main/resources/assets/hbm/lang/ru_RU.lang b/src/main/resources/assets/hbm/lang/ru_RU.lang index baa73eb44..256882698 100644 --- a/src/main/resources/assets/hbm/lang/ru_RU.lang +++ b/src/main/resources/assets/hbm/lang/ru_RU.lang @@ -1411,6 +1411,8 @@ tile.drill_pipe.name=Бур tile.machine_assembler.name=Сборочная машина container.assembler=Сборочная машина tile.machine_assemfac.name=Сборочный завод +tile.machine_autocrafter.name=Стол автокрафта +container.autocrafter=Стол автокрафта tile.machine_chemplant.name=Химическая установка container.chemplant=Химическая установка tile.machine_chemfac.name=Химический завод @@ -1427,8 +1429,12 @@ tile.crate_iron.name=Железный ящик container.crateIron=Железный ящик tile.crate_steel.name=Стальной ящик container.crateSteel=Стальной ящик +tile.crate_desh.name=Деш-ящик +container.crateDesh=Деш-ящик container.crateTungsten=Вольфрамовый ящик tile.crate_tungsten.name=Вольфрамовый ящик +tile.mass_storage.name=Накопительный блок +container.massStorage=Хранилище tile.safe.name=Сейф container.safe=Сейф tile.sand_polonium.name=Полониевый песок @@ -1532,6 +1538,15 @@ container.machineLiquefactor=Разжижитель tile.machine_liquefactor.name=Промышленный разжижитель container.machineSolidifier=Отвердитель tile.machine_solidifier.name=Промышленный отвердитель +tile.conveyor.name=Конвейер +container.craneExtractor=Конвейерный извлекатель +container.craneInserter=Конвейерный вставщик +tile.crane_extractor.name=Конвейерный извлекатель +tile.crane_inserter.name=Конвейерный вставщик +tile.conveyor_chute.name=Конвейерный желоб +tile.conveyor_double.name=Двухполосная конвейер +tile.conveyor_lift.name=Конвейерный цепной лифт +tile.conveyor_triple.name=Трёхполосный конвейер container.hadron=Ускоритель частиц tile.hadron_access.name=Терминал доступа ускорителя частиц @@ -2668,6 +2683,12 @@ item.upgrade_nullifier.name=Улучшение "Уничтожитель мус item.upgrade_screm.name=Улучшение "Кричащий учёный" item.upgrade_gc_speed.name=Улучшение "Разгон газовой центрифуги" item.upgrade_5g.name=Улучшение "5G излучение" +item.upgrade_ejector_1.name=Улучшение извлекателя "Скорость" I уровня +item.upgrade_ejector_2.name=Улучшение извлекателя "Скорость" II уровня +item.upgrade_ejector_3.name=Улучшение извлекателя "Скорость" III уровня +item.upgrade_stack_1.name=Улучшение извлекателя "Количество стака" I уровня +item.upgrade_stack_2.name=Улучшение извлекателя "Количество стака" II уровня +item.upgrade_stack_3.name=Улучшение извлекателя "Количество стака" III уровня item.fusion_core.name=Ядерный блок item.energy_core.name=Импровизированный энергоблок @@ -4497,6 +4518,9 @@ item.part_beryllium.name=Коробка бериллиевой пыли item.part_carbon.name=Коробка угольной пыли item.part_copper.name=Коробка медной пыли item.part_plutonium.name=Коробка плутониевой пыли +item.part_generic.piston_electric.name=Электрический поршень +item.part_generic.piston_hydraulic.name=Гидравлический поршень +item.part_generic.piston_pneumatic.name=Пневматический поршень item.particle_aelectron.name=Капсула с Позитроном item.particle_amat.name=Капсула с Антиматерией item.particle_aproton.name=Капсула с Антипротоном From c50d01fedc99221c211078f28f7b8f721ab669dc Mon Sep 17 00:00:00 2001 From: Boblet Date: Mon, 13 Jun 2022 16:30:59 +0200 Subject: [PATCH 64/80] fixes --- src/main/java/com/hbm/blocks/ModBlocks.java | 2 +- .../hbm/blocks/network/BlockCraneBase.java | 49 +++++++++++++++++++ .../hbm/blocks/network/CraneExtractor.java | 7 +++ .../com/hbm/blocks/network/CraneInserter.java | 7 +++ .../com/hbm/handler/BobmazonOfferFactory.java | 2 +- .../hbm/handler/guncfg/GunFatmanFactory.java | 1 - .../java/com/hbm/inventory/fluid/Fluids.java | 8 +-- .../tileentity/machine/TileEntityITER.java | 43 ++++++++++++++-- .../network/TileEntityCraneExtractor.java | 2 +- .../network/TileEntityCraneInserter.java | 2 +- 10 files changed, 109 insertions(+), 14 deletions(-) diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 534f0a55d..20f09e676 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -1901,7 +1901,7 @@ public class ModBlocks { fluid_duct_solid = new BlockFluidDuctSolid(Material.iron).setBlockName("fluid_duct_solid").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":fluid_duct_solid"); fluid_duct_neo = new FluidDuctStandard(Material.iron).setBlockName("fluid_duct_neo").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pipe_neo"); - conveyor = new BlockConveyor().setBlockName("conveyor").setHardness(0.0F).setResistance(2.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":conveyor"); + conveyor = new BlockConveyor().setBlockName("conveyor").setHardness(2.0F).setResistance(2.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":conveyor"); conveyor_double = new BlockConveyorDouble().setBlockName("conveyor_double").setHardness(2.0F).setResistance(2.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":conveyor_double"); conveyor_triple = new BlockConveyorTriple().setBlockName("conveyor_triple").setHardness(2.0F).setResistance(2.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":conveyor_triple"); conveyor_chute = new BlockConveyorChute().setBlockName("conveyor_chute").setHardness(2.0F).setResistance(2.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":conveyor"); diff --git a/src/main/java/com/hbm/blocks/network/BlockCraneBase.java b/src/main/java/com/hbm/blocks/network/BlockCraneBase.java index d94f0b1ba..3c82a62f8 100644 --- a/src/main/java/com/hbm/blocks/network/BlockCraneBase.java +++ b/src/main/java/com/hbm/blocks/network/BlockCraneBase.java @@ -1,5 +1,7 @@ package com.hbm.blocks.network; +import java.util.Random; + import com.hbm.blocks.IBlockSideRotation; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.test.TestConductor; @@ -10,13 +12,17 @@ import cpw.mods.fml.client.registry.RenderingRegistry; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; import net.minecraft.block.BlockContainer; import net.minecraft.block.BlockPistonBase; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.ISidedInventory; import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.IIcon; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @@ -102,4 +108,47 @@ public abstract class BlockCraneBase extends BlockContainer implements IBlockSid public int getRenderType() { return IBlockSideRotation.getRenderType(); } + + private final Random rand = new Random(); + public void dropContents(World world, int x, int y, int z, Block block, int meta, int start, int end) { + ISidedInventory tileentityfurnace = (ISidedInventory) world.getTileEntity(x, y, z); + + if(tileentityfurnace != null) { + + for(int i1 = start; i1 < end; ++i1) { + ItemStack itemstack = tileentityfurnace.getStackInSlot(i1); + + if(itemstack != null) { + float f = this.rand.nextFloat() * 0.8F + 0.1F; + float f1 = this.rand.nextFloat() * 0.8F + 0.1F; + float f2 = this.rand.nextFloat() * 0.8F + 0.1F; + + while(itemstack.stackSize > 0) { + int j1 = this.rand.nextInt(21) + 10; + + if(j1 > itemstack.stackSize) { + j1 = itemstack.stackSize; + } + + itemstack.stackSize -= j1; + EntityItem entityitem = new EntityItem(world, x + f, y + f1, z + f2, new ItemStack(itemstack.getItem(), j1, itemstack.getItemDamage())); + + if(itemstack.hasTagCompound()) { + entityitem.getEntityItem().setTagCompound((NBTTagCompound) itemstack.getTagCompound().copy()); + } + + float f3 = 0.05F; + entityitem.motionX = (float) this.rand.nextGaussian() * f3; + entityitem.motionY = (float) this.rand.nextGaussian() * f3 + 0.2F; + entityitem.motionZ = (float) this.rand.nextGaussian() * f3; + world.spawnEntityInWorld(entityitem); + } + } + } + + world.func_147453_f(x, y, z, block); + } + + super.breakBlock(world, x, y, z, block, meta); + } } diff --git a/src/main/java/com/hbm/blocks/network/CraneExtractor.java b/src/main/java/com/hbm/blocks/network/CraneExtractor.java index 8301b7e5f..51d754aa4 100644 --- a/src/main/java/com/hbm/blocks/network/CraneExtractor.java +++ b/src/main/java/com/hbm/blocks/network/CraneExtractor.java @@ -5,6 +5,7 @@ import com.hbm.tileentity.network.TileEntityCraneExtractor; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.tileentity.TileEntity; @@ -49,4 +50,10 @@ public class CraneExtractor extends BlockCraneBase { public boolean canConnectRedstone(IBlockAccess world, int x, int y, int z, int side) { return true; } + + @Override + public void breakBlock(World world, int x, int y, int z, Block block, int meta) { + this.dropContents(world, x, y, z, block, meta, 9, 20); + super.breakBlock(world, x, y, z, block, meta); + } } diff --git a/src/main/java/com/hbm/blocks/network/CraneInserter.java b/src/main/java/com/hbm/blocks/network/CraneInserter.java index 106ee232f..9b67b3eb6 100644 --- a/src/main/java/com/hbm/blocks/network/CraneInserter.java +++ b/src/main/java/com/hbm/blocks/network/CraneInserter.java @@ -7,6 +7,7 @@ import api.hbm.conveyor.IConveyorItem; import api.hbm.conveyor.IEnterableBlock; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.item.EntityItem; @@ -190,4 +191,10 @@ public class CraneInserter extends BlockCraneBase implements IEnterableBlock { public int getComparatorInputOverride(World world, int x, int y, int z, int side) { return Container.calcRedstoneFromInventory((TileEntityCraneInserter)world.getTileEntity(x, y, z)); } + + @Override + public void breakBlock(World world, int x, int y, int z, Block block, int meta) { + this.dropContents(world, x, y, z, block, meta, 0, 21); + super.breakBlock(world, x, y, z, block, meta); + } } diff --git a/src/main/java/com/hbm/handler/BobmazonOfferFactory.java b/src/main/java/com/hbm/handler/BobmazonOfferFactory.java index 1ec620905..f98f4ba0b 100644 --- a/src/main/java/com/hbm/handler/BobmazonOfferFactory.java +++ b/src/main/java/com/hbm/handler/BobmazonOfferFactory.java @@ -246,7 +246,7 @@ public class BobmazonOfferFactory { new ItemStack(Items.dye, 64) ), Requirement.HIDDEN, 64)); - special.add(new Offer(ItemKitCustom.create("Maid's Cleaning Utensils", "For the heard to reach spots", 0x00ff00, 0x008000, + special.add(new Offer(ItemKitCustom.create("Maid's Cleaning Utensils", "For the hard to reach spots", 0x00ff00, 0x008000, new ItemStack(ModItems.gun_calamity), new ItemStack(ModItems.ammo_50bmg_chlorophyte, 64), new ItemStack(ModItems.ammo_50bmg_chlorophyte, 64), diff --git a/src/main/java/com/hbm/handler/guncfg/GunFatmanFactory.java b/src/main/java/com/hbm/handler/guncfg/GunFatmanFactory.java index 3e5dd4028..cbd5ad9bd 100644 --- a/src/main/java/com/hbm/handler/guncfg/GunFatmanFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/GunFatmanFactory.java @@ -523,7 +523,6 @@ public class GunFatmanFactory { .addAttrib(ExAttrib.NOPARTICLE) .addAttrib(ExAttrib.NOSOUND) .addAttrib(ExAttrib.NODROP) - .addAttrib(ExAttrib.NOHURT) .overrideResolution(64); exp.doExplosionA(); exp.doExplosionB(false); diff --git a/src/main/java/com/hbm/inventory/fluid/Fluids.java b/src/main/java/com/hbm/inventory/fluid/Fluids.java index 8351de1f0..f8b6fd36a 100644 --- a/src/main/java/com/hbm/inventory/fluid/Fluids.java +++ b/src/main/java/com/hbm/inventory/fluid/Fluids.java @@ -158,7 +158,7 @@ public class Fluids { WASTEFLUID = new RadioactiveLiquid( "WASTEFLUID", 0x544400, 2, 0, 1, EnumSymbol.RADIATION).setRadiation(0.5F).addTraits(FluidTrait.NO_CONTAINER); WASTEGAS = new RadioactiveGas( "WASTEGAS", 0xB8B8B8, 2, 0, 1, EnumSymbol.RADIATION).setRadiation(0.5F).addTraits(FluidTrait.NO_CONTAINER); GASOLINE = new Fuel( "GASOLINE", 0x445772, 1, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.HIGH, 1_000_000).setHeatEnergy(400_000).addContainers(0x2F7747, ExtContainer.CANISTER); - COALGAS = new Fuel( "COALGAS", 0x445772, 1, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.MEDIUM, 150_000).setHeatEnergy(75_000); + COALGAS = new Fuel( "COALGAS", 0x445772, 1, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.MEDIUM, 150_000).setHeatEnergy(75_000).addContainers(0x30155F, ExtContainer.CANISTER); SPENTSTEAM = new Gas( "SPENTSTEAM", 0x445772, 2, 0, 0, EnumSymbol.NONE).addTraits(FluidTrait.NO_CONTAINER).setCompression(1D); FRACKSOL = new Petrochemical( "FRACKSOL", 0x798A6B, 1, 3, 3, EnumSymbol.ACID).addTraits(FluidTrait.CORROSIVE).addContainers(0x4F887F, ExtContainer.CANISTER); PLASMA_DT = new FluidType( "PLASMA_DT", 0xF7AFDE, 0, 4, 0, EnumSymbol.RADIATION).setTemp(3250).addTraits(FluidTrait.NO_CONTAINER, FluidTrait.NO_ID); @@ -183,9 +183,9 @@ public class Fluids { SALIENT = new FluidType( "SALIENT", 0x457F2D, 0, 0, 0, EnumSymbol.NONE); XPJUICE = new FluidType( "XPJUICE", 0xBBFF09, 0, 0, 0, EnumSymbol.NONE); ENDERJUICE = new FluidType( "ENDERJUICE", 0x127766, 0, 0, 0, EnumSymbol.NONE); - PETROIL_LEADED = new Fuel( "PETROIL_LEADED", 0x44413d, 1, 3, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.MEDIUM, 450_000).setHeatEnergy(((FluidTypeFlammable)PETROIL).getHeatEnergy()); - GASOLINE_LEADED = new Fuel( "GASOLINE_LEADED", 0x445772, 1, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.HIGH, 1_500_000).setHeatEnergy(((FluidTypeFlammable)GASOLINE).getHeatEnergy()); - COALGAS_LEADED = new Fuel( "COALGAS_LEADED", 0x445772, 1, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.MEDIUM, 250_000).setHeatEnergy(((FluidTypeFlammable)COALGAS).getHeatEnergy()); + PETROIL_LEADED = new Fuel( "PETROIL_LEADED", 0x44413d, 1, 3, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.MEDIUM, 450_000).setHeatEnergy(((FluidTypeFlammable)PETROIL).getHeatEnergy()).addContainers(0x2331F6, ExtContainer.CANISTER); + GASOLINE_LEADED = new Fuel( "GASOLINE_LEADED", 0x445772, 1, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.HIGH, 1_500_000).setHeatEnergy(((FluidTypeFlammable)GASOLINE).getHeatEnergy()).addContainers(0xD4F4ED, ExtContainer.CANISTER); + COALGAS_LEADED = new Fuel( "COALGAS_LEADED", 0x445772, 1, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.MEDIUM, 250_000).setHeatEnergy(((FluidTypeFlammable)COALGAS).getHeatEnergy()).addContainers(0x1E155F, ExtContainer.CANISTER); SULFURIC_ACID = new FluidType( "SULFURIC_ACID", 0xB0AA64, 3, 0, 2, EnumSymbol.ACID).addTraits(FluidTrait.CORROSIVE); COOLANT_HOT = new FluidType( "COOLANT_HOT", 0x99525E, 1, 0, 0, EnumSymbol.NONE).setTemp(600).setHeatCap(COOLANT.heatCap); MUG = new FluidType( "MUG", 0x4B2D28, 0, 0, 0, EnumSymbol.NONE).setHeatCap(1D); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityITER.java b/src/main/java/com/hbm/tileentity/machine/TileEntityITER.java index fa380a2b3..fbbc253c8 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityITER.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityITER.java @@ -5,6 +5,9 @@ import java.util.List; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.machine.MachineITER; +import com.hbm.explosion.ExplosionLarge; +import com.hbm.explosion.ExplosionNT; +import com.hbm.explosion.ExplosionNT.ExAttrib; import com.hbm.interfaces.IFluidAcceptor; import com.hbm.interfaces.IFluidSource; import com.hbm.inventory.FluidTank; @@ -17,10 +20,13 @@ import com.hbm.items.ModItems; import com.hbm.items.special.ItemFusionShield; import com.hbm.lib.Library; import com.hbm.main.MainRegistry; +import com.hbm.packet.AuxParticlePacketNT; +import com.hbm.packet.PacketDispatcher; import com.hbm.tileentity.TileEntityMachineBase; import api.hbm.energy.IEnergyUser; import api.hbm.fluid.IFluidStandardTransceiver; +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.entity.player.EntityPlayer; @@ -86,11 +92,7 @@ public class TileEntityITER extends TileEntityMachineBase implements IEnergyUser //explode either if there's plasma that is too hot or if the reactor is turned on but the magnets have no power if(plasma.getFill() > 0 && (this.plasma.getTankType().temperature >= this.getShield() || (this.isOn && this.power < this.powerReq))) { - this.disassemble(); - Vec3 vec = Vec3.createVectorHelper(5.5, 0, 0); - vec.rotateAroundY(worldObj.rand.nextFloat() * (float)Math.PI * 2F); - - worldObj.newExplosion(null, xCoord + 0.5 + vec.xCoord, yCoord + 0.5 + worldObj.rand.nextGaussian() * 1.5D, zCoord + 0.5 + vec.zCoord, 2.5F, true, true); + this.explode(); } if(isOn && power >= powerReq) { @@ -183,6 +185,37 @@ public class TileEntityITER extends TileEntityMachineBase implements IEnergyUser } } + private void explode() { + this.disassemble(); + + if(this.plasma.getTankType() == Fluids.PLASMA_BF) { + + worldObj.playSoundEffect(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, "hbm:weapon.mukeExplosion", 15.0F, 1.0F); + ExplosionLarge.spawnShrapnels(worldObj, xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, 50); + + ExplosionNT exp = new ExplosionNT(worldObj, null, xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, 20F) + .addAttrib(ExAttrib.BALEFIRE) + .addAttrib(ExAttrib.NOPARTICLE) + .addAttrib(ExAttrib.NOSOUND) + .addAttrib(ExAttrib.NODROP) + .overrideResolution(64); + exp.doExplosionA(); + exp.doExplosionB(false); + + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "muke"); + data.setBoolean("balefire", true); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, xCoord + 0.5, yCoord + 0.5, zCoord + 0.5), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 250)); + + } else { + Vec3 vec = Vec3.createVectorHelper(5.5, 0, 0); + vec.rotateAroundY(worldObj.rand.nextFloat() * (float)Math.PI * 2F); + + worldObj.newExplosion(null, xCoord + 0.5 + vec.xCoord, yCoord + 0.5 + worldObj.rand.nextGaussian() * 1.5D, zCoord + 0.5 + vec.zCoord, 2.5F, true, true); + } + + } + private void doBreederStuff() { if(plasma.getFill() == 0) { diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityCraneExtractor.java b/src/main/java/com/hbm/tileentity/network/TileEntityCraneExtractor.java index 88594df87..3360627b8 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityCraneExtractor.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityCraneExtractor.java @@ -129,7 +129,7 @@ public class TileEntityCraneExtractor extends TileEntityMachineBase implements I /* if no item has been sent, send buffered items while ignoring the filter */ if(!hasSent) { - for(int i = 0; i < 9; i++) { + for(int i = 9; i < 18; i++) { ItemStack stack = slots[i]; if(stack != null){ diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityCraneInserter.java b/src/main/java/com/hbm/tileentity/network/TileEntityCraneInserter.java index c91bd44dd..d3fbb2d10 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityCraneInserter.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityCraneInserter.java @@ -52,7 +52,7 @@ public class TileEntityCraneInserter extends TileEntityMachineBase implements IG ItemStack stack = slots[i]; if(stack != null) { - ItemStack ret = CraneInserter.addToInventory((ISidedInventory) te, access, stack.copy(), dir.ordinal()); + ItemStack ret = CraneInserter.addToInventory((IInventory) te, access, stack.copy(), dir.ordinal()); if(ret == null || ret.stackSize != stack.stackSize) { slots[i] = ret; From 0e3be93bcbb8d4c6ccc3a5b0f4a2e8871bf2f7bf Mon Sep 17 00:00:00 2001 From: Bob Date: Mon, 13 Jun 2022 17:42:19 +0200 Subject: [PATCH 65/80] fixed canister color + version bump --- src/main/java/com/hbm/inventory/fluid/Fluids.java | 2 +- src/main/java/com/hbm/lib/RefStrings.java | 2 +- src/main/resources/mcmod.info | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/hbm/inventory/fluid/Fluids.java b/src/main/java/com/hbm/inventory/fluid/Fluids.java index f8b6fd36a..98af390df 100644 --- a/src/main/java/com/hbm/inventory/fluid/Fluids.java +++ b/src/main/java/com/hbm/inventory/fluid/Fluids.java @@ -158,7 +158,7 @@ public class Fluids { WASTEFLUID = new RadioactiveLiquid( "WASTEFLUID", 0x544400, 2, 0, 1, EnumSymbol.RADIATION).setRadiation(0.5F).addTraits(FluidTrait.NO_CONTAINER); WASTEGAS = new RadioactiveGas( "WASTEGAS", 0xB8B8B8, 2, 0, 1, EnumSymbol.RADIATION).setRadiation(0.5F).addTraits(FluidTrait.NO_CONTAINER); GASOLINE = new Fuel( "GASOLINE", 0x445772, 1, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.HIGH, 1_000_000).setHeatEnergy(400_000).addContainers(0x2F7747, ExtContainer.CANISTER); - COALGAS = new Fuel( "COALGAS", 0x445772, 1, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.MEDIUM, 150_000).setHeatEnergy(75_000).addContainers(0x30155F, ExtContainer.CANISTER); + COALGAS = new Fuel( "COALGAS", 0x445772, 1, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.MEDIUM, 150_000).setHeatEnergy(75_000).addContainers(0x2F7759, ExtContainer.CANISTER); SPENTSTEAM = new Gas( "SPENTSTEAM", 0x445772, 2, 0, 0, EnumSymbol.NONE).addTraits(FluidTrait.NO_CONTAINER).setCompression(1D); FRACKSOL = new Petrochemical( "FRACKSOL", 0x798A6B, 1, 3, 3, EnumSymbol.ACID).addTraits(FluidTrait.CORROSIVE).addContainers(0x4F887F, ExtContainer.CANISTER); PLASMA_DT = new FluidType( "PLASMA_DT", 0xF7AFDE, 0, 4, 0, EnumSymbol.RADIATION).setTemp(3250).addTraits(FluidTrait.NO_CONTAINER, FluidTrait.NO_ID); diff --git a/src/main/java/com/hbm/lib/RefStrings.java b/src/main/java/com/hbm/lib/RefStrings.java index d974bc73d..4a82c4005 100644 --- a/src/main/java/com/hbm/lib/RefStrings.java +++ b/src/main/java/com/hbm/lib/RefStrings.java @@ -3,7 +3,7 @@ package com.hbm.lib; public class RefStrings { public static final String MODID = "hbm"; public static final String NAME = "Hbm's Nuclear Tech Mod"; - public static final String VERSION = "1.0.27 BETA (4263)"; + public static final String VERSION = "1.0.27 BETA (4263H1)"; //HBM's Beta Naming Convention: //V T (X) //V -> next release version diff --git a/src/main/resources/mcmod.info b/src/main/resources/mcmod.info index e618d5f48..b5f55c1d5 100755 --- a/src/main/resources/mcmod.info +++ b/src/main/resources/mcmod.info @@ -3,7 +3,7 @@ "modid": "hbm", "name": "Hbm's Nuclear Tech", "description": "A mod that adds weapons, nuclear themed stuff and machines", - "version":"1.0.27_X4263", + "version":"1.0.27_X4263H1", "mcversion": "1.7.10", "url": "", "updateUrl": "", From f003b2db0896cea3fae48c3cab22cb9b6dc6a2d8 Mon Sep 17 00:00:00 2001 From: Boblet Date: Tue, 14 Jun 2022 16:59:33 +0200 Subject: [PATCH 66/80] some stuff:tm: --- src/main/java/com/hbm/blocks/ModBlocks.java | 5 ++ .../com/hbm/blocks/machine/FurnaceIron.java | 47 ++++++++++++++++++ .../container/ContainerFurnaceIron.java | 14 ++++++ .../com/hbm/inventory/gui/GUIFurnaceIron.java | 7 +++ .../machine/TileEntityFurnaceIron.java | 38 ++++++++++++++ .../textures/gui/machine/gui_furnace_iron.png | Bin 0 -> 1997 bytes .../assets/hbm/textures/items/plastic.png | Bin 0 -> 236 bytes 7 files changed, 111 insertions(+) create mode 100644 src/main/java/com/hbm/blocks/machine/FurnaceIron.java create mode 100644 src/main/java/com/hbm/inventory/container/ContainerFurnaceIron.java create mode 100644 src/main/java/com/hbm/inventory/gui/GUIFurnaceIron.java create mode 100644 src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceIron.java create mode 100644 src/main/resources/assets/hbm/textures/gui/machine/gui_furnace_iron.png create mode 100644 src/main/resources/assets/hbm/textures/items/plastic.png diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 20f09e676..d2ba3334b 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -622,6 +622,8 @@ public class ModBlocks { public static Block cel_prime_battery; public static Block cel_prime_port; public static Block cel_prime_tanks; + + public static Block furnace_iron; public static Block machine_difurnace_off; public static Block machine_difurnace_on; @@ -1785,6 +1787,8 @@ public class ModBlocks { semtex = new BlockSemtex().setBlockName("semtex").setStepSound(Block.soundTypeGrass).setCreativeTab(MainRegistry.nukeTab).setHardness(0.0F).setBlockTextureName(RefStrings.MODID + ":semtex"); c4 = new BlockC4().setBlockName("c4").setStepSound(Block.soundTypeGrass).setCreativeTab(MainRegistry.nukeTab).setHardness(0.0F).setBlockTextureName(RefStrings.MODID + ":c4"); + furnace_iron = new FurnaceIron().setBlockName("furnace_iron").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); + machine_difurnace_off = new MachineDiFurnace(false).setBlockName("machine_difurnace_off").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); machine_difurnace_on = new MachineDiFurnace(true).setBlockName("machine_difurnace_on").setHardness(5.0F).setLightLevel(1.0F).setResistance(10.0F); machine_difurnace_rtg_off = new MachineDiFurnaceRTG(false).setBlockName("machine_difurnace_rtg_off").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); @@ -2951,6 +2955,7 @@ public class ModBlocks { GameRegistry.registerBlock(press_preheater, press_preheater.getUnlocalizedName()); GameRegistry.registerBlock(machine_press, machine_press.getUnlocalizedName()); GameRegistry.registerBlock(machine_epress, machine_epress.getUnlocalizedName()); + GameRegistry.registerBlock(furnace_iron, furnace_iron.getUnlocalizedName()); GameRegistry.registerBlock(machine_difurnace_off, machine_difurnace_off.getUnlocalizedName()); GameRegistry.registerBlock(machine_difurnace_on, machine_difurnace_on.getUnlocalizedName()); GameRegistry.registerBlock(machine_difurnace_rtg_off, machine_difurnace_rtg_off.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/machine/FurnaceIron.java b/src/main/java/com/hbm/blocks/machine/FurnaceIron.java new file mode 100644 index 000000000..4837463ab --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/FurnaceIron.java @@ -0,0 +1,47 @@ +package com.hbm.blocks.machine; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.main.MainRegistry; +import com.hbm.tileentity.TileEntityProxyCombo; +import com.hbm.tileentity.machine.TileEntityFurnaceIron; + +import cpw.mods.fml.common.network.internal.FMLNetworkHandler; +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; + +public class FurnaceIron extends BlockDummyable { + + public FurnaceIron() { + super(Material.iron); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + if(meta >= 12) return new TileEntityFurnaceIron(); + return new TileEntityProxyCombo(true, false, false); + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + if(world.isRemote) { + return true; + } else if(!player.isSneaking()) { + FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y, z); + return true; + } else { + return false; + } + } + + @Override + public int[] getDimensions() { + return new int[] {0, 0, 1, 0, 1, 0}; + } + + @Override + public int getOffset() { + return 0; + } +} diff --git a/src/main/java/com/hbm/inventory/container/ContainerFurnaceIron.java b/src/main/java/com/hbm/inventory/container/ContainerFurnaceIron.java new file mode 100644 index 000000000..bd8b60485 --- /dev/null +++ b/src/main/java/com/hbm/inventory/container/ContainerFurnaceIron.java @@ -0,0 +1,14 @@ +package com.hbm.inventory.container; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.Container; + +public class ContainerFurnaceIron extends Container { + + @Override + public boolean canInteractWith(EntityPlayer p_75145_1_) { + // TODO Auto-generated method stub + return false; + } + +} diff --git a/src/main/java/com/hbm/inventory/gui/GUIFurnaceIron.java b/src/main/java/com/hbm/inventory/gui/GUIFurnaceIron.java new file mode 100644 index 000000000..9ee0e6f8b --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GUIFurnaceIron.java @@ -0,0 +1,7 @@ +package com.hbm.inventory.gui; + +import net.minecraft.client.gui.GuiScreen; + +public class GUIFurnaceIron extends GuiScreen { + +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceIron.java b/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceIron.java new file mode 100644 index 000000000..671b0fd6a --- /dev/null +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceIron.java @@ -0,0 +1,38 @@ +package com.hbm.tileentity.machine; + +import com.hbm.inventory.container.ContainerFurnaceIron; +import com.hbm.inventory.gui.GUIFurnaceIron; +import com.hbm.tileentity.IGUIProvider; +import com.hbm.tileentity.TileEntityMachineBase; + +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.world.World; + +public class TileEntityFurnaceIron extends TileEntityMachineBase implements IGUIProvider { + + public TileEntityFurnaceIron() { + super(5); + } + + @Override + public String getName() { + return "container.furnaceIron"; + } + + @Override + public void updateEntity() { + + } + + @Override + public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new ContainerFurnaceIron(player.inventory, this); + } + + @Override + public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new GUIFurnaceIron(player.inventory, this); + } +} diff --git a/src/main/resources/assets/hbm/textures/gui/machine/gui_furnace_iron.png b/src/main/resources/assets/hbm/textures/gui/machine/gui_furnace_iron.png new file mode 100644 index 0000000000000000000000000000000000000000..8be91d48597eb9b6107c72b4332ca2fe6b62b17f GIT binary patch literal 1997 zcmcIlc~BE(7XK0wh@k{gQUz2nur>`01(kA^u-vo?rCb#Zp)62JJ8~u126A&>(iA)%>bTW7jEyZgt!f8Ou=-kab1-to=5 z_+g-*0n!u+05Ayf_x=a~h!#QsLRYI!r!^*M6)fE|AQYjMTtr+U0D2b!y#E@SRVAM7 zIb+5*(S4GP)%m{Y%MhEXNhu08;q#^))DiM<4e43$e{HxhtPsjR?Lh~Q`k(6S6alml z?tp^Y(2d_t-}N{TZyIcMxAq@SRg$x&XEJ>+@EhFZ%pOU(-&{^WFzTE0Fcz4l;y{ps^$#_XBC$AQzK zE!;X;`aRp;4Zp)59!-9+@cGVPGFzr1$NS)@0YQ+t18Q?$czy%p!X2%X-NB_DX%=~HbbN=hJ-9BS zswLFu*v_ONFo9rvqPFO*+WDmGj4?8Q{a#F*bW8g#U&vvQSd{wK&f4gJd=6_&F(=MZ z9nT38-%nY?8Xw&Yj^DAsV8-Uh1J?}}1{~)DD>U0(n`zw{KpSptQEkY0Yf(S9p0S-V zlgw>%!`(Zf4P}_AGN|E_DVowBe_U2bn>-VsG~Y^;c$f+Lau4E7+=`Kd?fCb??g@vI zAy0M_a>cw^;b-3RrJGUm-flSqKs^37A{uFF8*Wa8q>#yMl38^iui}ES={{h@Kym43 zIz<)V=q*f}Q;TDriZQy&bRE!CTVMqpqFA_)tJP0xawy z9eF-}3evRKEQ03XmU(_0?t!9zO*2co++I+tQMBNV*l^^F+QmN!zIoz>25sgj3PN8T7lBV!JqHbC= zX$v#HTGzy`fj3GsWo393_aq|2rFxm%T`t~xoF5LcYnN46OD|iCY$A!b$la}#ygj%h z!R#^>ID$T#@bbDI*ZbsT=qd|$#6I{G7!hSvR8*vSa`vIBD z-1RXh=ZMYv3u?X#V4I{#vaNtk#1JB81B*A=$aJaxa(q}|x~reULGRxq$cEWD=Mkf$ z-6J<2%L*S2<@TsR3@J*lKW^?^nr&ZObAe`6hc+pG=1w~sLXH1cSa-H z-FRREWNMbZatc@$H)zkLr-1(#&zWGD6KSZrr9jlV>33XIsdBtR9+mx&09m5Le(+QJ zh|a5+uPgrOxDtz z#S}Ww`Q(*%H*GE6j&cQCY7HwpIjowU6c)__q{MTc7tcnaoyv-2>sB(NQ{?#Y}Y-lXFDmN(sMKN85>3 z_d0=i@HZ3XN{{RR!v8Atl_{O&443<2a;IjuII$obhl$O~$uTopzp<8A$lp0Wcn8{yyjktSIu?blTxrz8na-aUMX1DA)^YLmD{g$qh$)+5QL`nl)PMSbi*Sy@?+ x7;$p|-k&t0(L-(ib6)1JxDD+ zH?#Ph4Y%O^XRj@nvLyE$aCp1%+9`$rua{DFj@vd{^f5CiEPW$2CFrn^)d8+0(!CuK z*}Q8_)2{D)`%UbV#5w5`W!ssrMH!w_Idi=i` iPfYsB6=~N0h4H|m`tmRQpB4d~%i!ti=d#Wzp$PyWT3WaO literal 0 HcmV?d00001 From c307d26752ea10f8007b735d2068e7347acf8f39 Mon Sep 17 00:00:00 2001 From: Bob Date: Tue, 14 Jun 2022 22:56:06 +0200 Subject: [PATCH 67/80] iron furnace --- .../com/hbm/blocks/machine/FurnaceIron.java | 11 +- .../container/ContainerFurnaceIron.java | 65 +- .../com/hbm/inventory/gui/GUIFurnaceIron.java | 39 +- src/main/java/com/hbm/main/ClientProxy.java | 1 + .../java/com/hbm/main/ResourceManager.java | 6 + .../render/tileentity/RenderFurnaceIron.java | 35 + .../java/com/hbm/tileentity/TileMappings.java | 1 + .../machine/TileEntityFurnaceIron.java | 33 + src/main/resources/assets/hbm/lang/zh_CN.lang | 815 +++++++++++++++--- .../hbm/models/machines/furnace_iron.obj | 608 +++++++++++++ .../textures/gui/machine/gui_furnace_iron.png | Bin 1997 -> 0 bytes .../gui/processing/gui_furnace_iron.png | Bin 0 -> 2067 bytes .../textures/models/machines/furnace_iron.png | Bin 797 -> 4053 bytes 13 files changed, 1464 insertions(+), 150 deletions(-) create mode 100644 src/main/java/com/hbm/render/tileentity/RenderFurnaceIron.java create mode 100644 src/main/resources/assets/hbm/models/machines/furnace_iron.obj delete mode 100644 src/main/resources/assets/hbm/textures/gui/machine/gui_furnace_iron.png create mode 100644 src/main/resources/assets/hbm/textures/gui/processing/gui_furnace_iron.png diff --git a/src/main/java/com/hbm/blocks/machine/FurnaceIron.java b/src/main/java/com/hbm/blocks/machine/FurnaceIron.java index 4837463ab..9a6e143fb 100644 --- a/src/main/java/com/hbm/blocks/machine/FurnaceIron.java +++ b/src/main/java/com/hbm/blocks/machine/FurnaceIron.java @@ -25,19 +25,12 @@ public class FurnaceIron extends BlockDummyable { @Override public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { - if(world.isRemote) { - return true; - } else if(!player.isSneaking()) { - FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y, z); - return true; - } else { - return false; - } + return this.standardOpenBehavior(world, x, y, z, player, 0); } @Override public int[] getDimensions() { - return new int[] {0, 0, 1, 0, 1, 0}; + return new int[] {1, 0, 1, 0, 1, 0}; } @Override diff --git a/src/main/java/com/hbm/inventory/container/ContainerFurnaceIron.java b/src/main/java/com/hbm/inventory/container/ContainerFurnaceIron.java index bd8b60485..5e51e4c6a 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerFurnaceIron.java +++ b/src/main/java/com/hbm/inventory/container/ContainerFurnaceIron.java @@ -1,14 +1,71 @@ package com.hbm.inventory.container; +import com.hbm.inventory.SlotSmelting; +import com.hbm.inventory.SlotUpgrade; +import com.hbm.tileentity.machine.TileEntityFurnaceIron; + 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 ContainerFurnaceIron extends Container { + + protected TileEntityFurnaceIron furnace; + + public ContainerFurnaceIron(InventoryPlayer invPlayer, TileEntityFurnaceIron furnace) { + this.furnace = furnace; - @Override - public boolean canInteractWith(EntityPlayer p_75145_1_) { - // TODO Auto-generated method stub - return false; + this.addSlotToContainer(new Slot(furnace, 0, 53, 17)); + this.addSlotToContainer(new Slot(furnace, 1, 53, 53)); + this.addSlotToContainer(new Slot(furnace, 2, 71, 53)); + this.addSlotToContainer(new SlotSmelting(invPlayer.player, furnace, 3, 125, 35)); + this.addSlotToContainer(new SlotUpgrade(furnace, 4, 17, 35)); + + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 9; j++) { + this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 84 + i * 18)); + } + } + + for(int i = 0; i < 9; i++) { + this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 142)); + } } + @Override + public ItemStack transferStackInSlot(EntityPlayer player, int index) { + ItemStack stack = null; + Slot slot = (Slot) this.inventorySlots.get(index); + + if(slot != null && slot.getHasStack()) { + ItemStack originalStack = slot.getStack(); + stack = originalStack.copy(); + + if(index <= 4) { + if(!this.mergeItemStack(originalStack, 5, this.inventorySlots.size(), true)) { + return null; + } + + slot.onSlotChange(originalStack, stack); + + } else if(!this.mergeItemStack(originalStack, 0, 5, false)) { + return null; + } + + if(originalStack.stackSize == 0) { + slot.putStack((ItemStack) null); + } else { + slot.onSlotChanged(); + } + } + + return stack; + } + + @Override + public boolean canInteractWith(EntityPlayer player) { + return furnace.isUseableByPlayer(player); + } } diff --git a/src/main/java/com/hbm/inventory/gui/GUIFurnaceIron.java b/src/main/java/com/hbm/inventory/gui/GUIFurnaceIron.java index 9ee0e6f8b..4bf6f42aa 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIFurnaceIron.java +++ b/src/main/java/com/hbm/inventory/gui/GUIFurnaceIron.java @@ -1,7 +1,42 @@ package com.hbm.inventory.gui; -import net.minecraft.client.gui.GuiScreen; +import org.lwjgl.opengl.GL11; -public class GUIFurnaceIron extends GuiScreen { +import com.hbm.inventory.container.ContainerFurnaceIron; +import com.hbm.lib.RefStrings; +import com.hbm.tileentity.machine.TileEntityFurnaceIron; +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.inventory.GuiContainer; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.util.ResourceLocation; + +public class GUIFurnaceIron extends GuiContainer { + + private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/processing/gui_furnace_iron.png"); + private TileEntityFurnaceIron diFurnace; + + public GUIFurnaceIron(InventoryPlayer invPlayer, TileEntityFurnaceIron tedf) { + super(new ContainerFurnaceIron(invPlayer, tedf)); + diFurnace = tedf; + + this.xSize = 176; + this.ySize = 166; + } + + @Override + protected void drawGuiContainerForegroundLayer(int i, int j) { + String name = this.diFurnace.hasCustomInventoryName() ? this.diFurnace.getInventoryName() : I18n.format(this.diFurnace.getInventoryName()); + + this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); + this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); + } + + @Override + protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + } } diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index 9b791ce17..fb48f1a07 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -252,6 +252,7 @@ public class ClientProxy extends ServerProxy { ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineSolidifier.class, new RenderSolidifier()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineRadiolysis.class, new RenderRadiolysis()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityElectrolyser.class, new RenderElectrolyser()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityFurnaceIron.class, new RenderFurnaceIron()); //AMS ClientRegistry.bindTileEntitySpecialRenderer(TileEntityAMSBase.class, new RenderAMSBase()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityAMSEmitter.class, new RenderAMSEmitter()); diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index fd7babbe2..aced6c96a 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -54,6 +54,9 @@ public class ResourceManager { public static final IModelCustom turret_howard_damaged = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/turrets/turret_howard_damaged.obj")); + //Furnaces + public static final IModelCustom furnace_iron = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/machines/furnace_iron.obj")); + //Landmines public static final IModelCustom mine_ap = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/mine_ap.obj")); public static final IModelCustom mine_he = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/mine_he.obj")); @@ -357,6 +360,9 @@ public class ResourceManager { public static final ResourceLocation mine_shrap_tex = new ResourceLocation(RefStrings.MODID, "textures/models/mine_shrap.png"); public static final ResourceLocation mine_fat_tex = new ResourceLocation(RefStrings.MODID, "textures/models/mine_fat.png"); + //Furnaces + public static final ResourceLocation furnace_iron_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/furnace_iron.png"); + //Oil Pumps public static final ResourceLocation derrick_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/derrick.png"); public static final ResourceLocation pumpjack_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/pumpjack.png"); diff --git a/src/main/java/com/hbm/render/tileentity/RenderFurnaceIron.java b/src/main/java/com/hbm/render/tileentity/RenderFurnaceIron.java new file mode 100644 index 000000000..ca4c1f6de --- /dev/null +++ b/src/main/java/com/hbm/render/tileentity/RenderFurnaceIron.java @@ -0,0 +1,35 @@ +package com.hbm.render.tileentity; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.main.ResourceManager; + +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.tileentity.TileEntity; + +public class RenderFurnaceIron extends TileEntitySpecialRenderer { + + @Override + public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float f) { + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5D, y, z + 0.5D); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glEnable(GL11.GL_CULL_FACE); + + switch(tileEntity.getBlockMetadata() - BlockDummyable.offset) { + case 3: GL11.glRotatef(0, 0F, 1F, 0F); break; + case 5: GL11.glRotatef(90, 0F, 1F, 0F); break; + case 2: GL11.glRotatef(180, 0F, 1F, 0F); break; + case 4: GL11.glRotatef(270, 0F, 1F, 0F); break; + } + + GL11.glTranslated(-0.5D, 0, -0.5D); + + bindTexture(ResourceManager.furnace_iron_tex); + ResourceManager.furnace_iron.renderPart("Main"); + ResourceManager.furnace_iron.renderPart("Off"); + + GL11.glPopMatrix(); + } +} diff --git a/src/main/java/com/hbm/tileentity/TileMappings.java b/src/main/java/com/hbm/tileentity/TileMappings.java index 3101835ac..6d4f1ca21 100644 --- a/src/main/java/com/hbm/tileentity/TileMappings.java +++ b/src/main/java/com/hbm/tileentity/TileMappings.java @@ -246,6 +246,7 @@ public class TileMappings { } private static void putMachines() { + put(TileEntityFurnaceIron.class, "tileentity_furnace_iron"); put(TileEntityMachineAutocrafter.class, "tileentity_autocrafter"); put(TileEntityDiFurnaceRTG.class, "tileentity_rtg_difurnace"); put(TileEntityMachineRadiolysis.class, "tileentity_radiolysis"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceIron.java b/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceIron.java index 671b0fd6a..e05d31c5c 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceIron.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceIron.java @@ -8,9 +8,14 @@ import com.hbm.tileentity.TileEntityMachineBase; import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntityFurnace; import net.minecraft.world.World; public class TileEntityFurnaceIron extends TileEntityMachineBase implements IGUIProvider { + + public int maxBurnTime; + public int burnTime; public TileEntityFurnaceIron() { super(5); @@ -24,6 +29,34 @@ public class TileEntityFurnaceIron extends TileEntityMachineBase implements IGUI @Override public void updateEntity() { + if(!worldObj.isRemote) { + + if(burnTime <= 0) { + + for(int i = 1; i < 3; i++) { + if(slots[i] != null) { + + int fuel = TileEntityFurnace.getItemBurnTime(slots[i]); + + if(fuel > 0) { + this.maxBurnTime = this.burnTime = fuel; + break; + } + } + } + } + + NBTTagCompound data = new NBTTagCompound(); + data.setInteger("maxBurnTime", this.maxBurnTime); + data.setInteger("burnTime", this.burnTime); + this.networkPack(data, 50); + } + } + + @Override + public void networkUnpack(NBTTagCompound nbt) { + this.maxBurnTime = nbt.getInteger("maxBurnTime"); + this.burnTime = nbt.getInteger("burnTime"); } @Override diff --git a/src/main/resources/assets/hbm/lang/zh_CN.lang b/src/main/resources/assets/hbm/lang/zh_CN.lang index d69111f56..26f6a00e9 100644 --- a/src/main/resources/assets/hbm/lang/zh_CN.lang +++ b/src/main/resources/assets/hbm/lang/zh_CN.lang @@ -1,7 +1,15 @@ -achievement.FOEQ.desc=向火星传送信号!...其实我是说Duna -achievement.FOEQ=飞马座运载火箭和发射架 +achievement.acidizer.desc=噢,我的皮肤 +achievement.acidizer=酸 achievement.assembly.desc=Bobmazon 2级 (装配机) achievement.assembly=制作 +achievement.FOEQ.desc=向火星传送信号!...其实我是说Duna +achievement.FOEQ=飞马座运载火箭和发射架 +achievement.breeding.desc=谢谢你们,上帝保佑你们,上帝保佑美利坚合众国。 +achievement.breeding=反话 +achievement.bismuth.desc=还记得有人抱怨了一个月吗?我愿意。 +achievement.bismuth=铋 +achievement.blastFurnace.desc=他们为制造探险家1号去打捞了一艘沉没的无畏舰。 +achievement.blastFurnace=煤和铁 achievement.bossCreeper.desc=核爆爬行者? 那是个什么玩意?! achievement.bossCreeper=四条腿的行走核弹 achievement.bossMaskman.desc=大男孩邦克 @@ -12,12 +20,22 @@ achievement.bossWorm.desc=法布斯塔夫。我的屁股。你算算吧。 achievement.bossWorm=拆掉机械蠕虫 achievement.bossUFO.desc=哟,我们这儿有什么?一艘巨大的宇宙飞船正开向我们的星球? achievement.bossUFO=呀哈哈哈,笑死我了 +achievement.burnerPress.desc=压力压在你我身上 +achievement.burnerPress=压力之下 achievement.c20_5.desc=??? achievement.c20_5=第20.5章 achievement.c44.desc=镀锌!我是说,锌! achievement.c44=第四十四章 -achievement.chemistry.desc=Bobmazon 3级 (混凝土砖) -achievement.chemistry=化学 +achievement.centrifuge.desc=离心力是假的,不要再@我了 +achievement.centrifuge=向心力 +achievement.chemplant.desc=现在你在考虑化学物质! +achievement.chemplant=这家工厂正在成长。2. +achievement.chicagoPile.desc=“当地人怎么样?”“非常友好。” +achievement.chicagoPile=领航员在新大陆着陆 +achievement.concrete.desc=布尔什维克的最爱。 +achievement.concrete=老可靠 +achievement.desh.desc=“来吧,你们这群人。有地方可去!” +achievement.desh=勒威耶 achievement.digammaFeel.desc=内心的空虚 achievement.digammaFeel=感觉的恐惧 achievement.digammaKauaiMoho.desc=一切都糟透了,这里有些热巧克力 @@ -32,8 +50,12 @@ achievement.fiend.desc=卑鄙 achievement.fiend2.desc=更卑鄙 achievement.fiend2=残忍2:更残忍 achievement.fiend=残忍 -achievement.freytag.desc=Herold's life guards +achievement.freytag.desc=英勇的救生员 achievement.freytag=Freytag +achievement.fusion.desc=氘核、海卫一与能量的舞蹈。 +achievement.fusion=聚合 +achievement.gasCent.desc=贫铀讨厌他! +achievement.gasCent=拉链式 achievement.hidden.desc=使用一节坠落的车厢杀死一只污染苦力怕 achievement.hidden=隐藏目录 achievement.horizonsBonus.desc=说实话,你到底怎么了 @@ -44,16 +66,14 @@ achievement.horizonsStart.desc=将一个小伙子送上月球 achievement.horizonsStart=地平线? achievement.impossible.desc=你不可能取得该成就 achievement.impossible=简直不可能 +achievement.manhattan.desc=1945年8月6日 8:15 +achievement.manhattan=曼哈顿计划 achievement.meltdown.desc=你走了这么远,怎么能把事情搞砸? achievement.meltdown=快速非计划拆卸 -achievement.metalworks.desc=Bobmazon 1级 (高炉) -achievement.metalworks=金属制品 -achievement.nuclear.desc=Bobmazon 5级 (铀燃料) -achievement.nuclear=原子科学 -achievement.oil.desc=Bobmazon 4级 (电锅炉) -achievement.oil=石油 achievement.omega12.desc=解决在这个可怜的星球上继续生存的问题 achievement.omega12=欧米茄-12粒子加速器 +achievement.polymer.desc=美味、美味的微塑料。 +achievement.polymer=特氟隆 achievement.potato.desc=你居然捅我!你怎—喔哦哦哦哦哦! achievement.potato=流氓AI achievement.radDeath.desc=居里夫人开创了放射性理论、放射性治疗和放射性死亡。。。。 @@ -62,10 +82,22 @@ achievement.radium.desc=你 因 为 往 我 的 咖 啡 里 倒 镭 而 被 解 achievement.radium=不可思议先生 achievement.radPoison.desc=受辐射中毒的影响 achievement.radPoison=呀, 辐射! +achievement.RBMKBoom.desc=谎言的代价是什么? +achievement.RBMKBoom=是15000伦琴辐射 +achievement.RBMK.desc=他有妄想症,带他去医务室。 +achievement.RBMK=3.6伦琴? +achievement.redBalloons.desc=“这就是我们一直在等待的。就是这样,孩子们,这就是战争。” +achievement.redBalloons=99个红气球 achievement.sacrifice.desc=直面火海并存活 achievement.sacrifice=牺牲 +achievement.schrab.desc=不管怎样,我不会看太久。 +achievement.schrab=稳定岛 achievement.selenium.desc=耶! achievement.selenium=XVIII 月亮女神 +achievement.SILEX.desc=我保证,它会比它听起来的要更酷 +achievement.SILEX=激光激发法分离同位素 +achievement.slimeball.desc= +achievement.slimeball=我应该把蛋蛋浸在硫酸里。 achievement.stratum.desc=快刹车, Mitts! achievement.stratum=岩层 achievement.someWounds.desc=准备好 @@ -74,11 +106,26 @@ achievement.soyuz.desc=变得松脆 achievement.soyuz=土豆烹饪 achievement.space.desc=屡试屡败,浪费了价值9000万美元的资金 achievement.space=最后战线—呃,算了吧 +achievement.sulfuric.desc= +achievement.sulfuric=我不应该把蛋蛋浸在硫酸里的。 +achievement.tantalum.desc=一个难以捉摸但却永远需要的元素。 +achievement.tantalum=钽 achievement.tasteofblood.desc=这不是任何测试的一部分 achievement.tasteofblood=血的味道 +achievement.technetium.desc=它是药用的,它是药用的! +achievement.technetium=大个子,猪人 +achievement.watzBoom.desc=下次记得把污物容器清空 +achievement.watzBoom=令人厌恶 +achievement.watz.desc=可能包括Fólkvangr弗尔克范格场 +achievement.watz=126号元素的力量 +achievement.witchtaunter.desc=那些古怪的生物对你毫无兴趣! +achievement.witchtaunter=巫婆陶恩特 +achievement.ZIRNOXBoom.desc=处理, 看,满地是残骸碎片 +achievement.ZIRNOXBoom=CIRNOX armor.blastProtection=修正 %s 的爆炸伤害 armor.cap=伤害上限 %s armor.damageModifier=修正 %s 对 %s 的伤害 +armor.dash=Grants %s dashes armor.electricJetpack=离子喷射背包 armor.explosionImmune=免疫除爆炸伤害外的一切伤害 armor.fastFall=快速降落 @@ -98,8 +145,33 @@ armor.sprintBoost=冲刺辅助加速 armor.thermal=热成像 armor.threshold=伤害阈值 %s armor.vats=这是一个测试,以证明这些书的e[B]ic换行功能。字体比例是可自定义的,换行符也会相应调整,这使得编写新页面非常容易。 +bomb.detonated=成功引爆! +bomb.incompatible=设备无法触发! +bomb.launched=发射成功! +bomb.missingComponent=组件丢失! +bomb.nobomb=链接位置不兼容或已断开! +bomb.triggered=触发成功! book.test.cover=停车坐爱枫林晚 book.test.page1=测试页面1 +book.error.cover=粒子对撞机:$故障排除 +book.error.title1=错误 0x01 [能量不足] +book.error.page1=§l错误类型:§r "错误_能量不足" §l描述:§r 粒子到达了能量不足的部分。 §l修复方式:§r 用更高级的电源接口替换粒子成功通过的其中一个电源接口,或者在粒子终止的段之前额外添加多一个电源接口。 +book.error.title2=错误 0x02 [无法分析] +book.error.page2=§l错误类型:§r "错误_无法分析" §l描述:§r 尽管没有通过分析室,但粒子已经到达核心。 §l修复方式:§r 确保加速器有一个分析室,并再次检查工作模式(线性/环形)。 +book.error.title3=错误 0x03 [通道阻塞] +book.error.page3=§l错误类型:§r "错误_通道阻塞" §l描述:§r 粒子与对撞机通道内的方块碰撞。 §l修复方式:§r 确保粒子对撞机内部没有任何障碍物,粒子二极管和核心块除外。 +book.error.title4=错误 0x04 [缺少线圈] +book.error.page4=§l错误类型:§r "错误_缺少线圈" §l描述:§r 粒子通过了缺少一个或多个线圈的段。 §l修复方式:§r 移除冲突区域的对撞机镀层,并检查线圈结构是否完整。这种错误也会发生在没有二极管的T型交叉口上。 +book.error.title5=错误 0x05 [错误区段] +book.error.page5=§l错误类型:§r "错误_错误区段" §l描述:§r 粒子通过了一个结构不正确的段(但既没有被阻塞也没有缺少线圈)。 §l修复方式:§r 确保有问题的部分都有镀层包裹,没有线圈暴露。 +book.error.title6=错误 0x06 [分析室过长] +book.error.page6=§l错误类型:§r "错误_分析室过长" §l描述:§r 粒子已通过三个以上所需的有效分析室段。 §l修复方式:§r 确保环形加速器的分析室长度正好为3个方块,直线加速器的分析室长度至少为2个方块。还要检查粒子是否未通过分支或环形加速器中的多个分析室。 +book.error.title7=错误 0x07 [分析室过短] +book.error.page7=§l错误类型:§r "错误_分析室过短" §l描述:§r 粒子已离开分析室,尽管不符合长度要求。 §l修复方式:§r 确保环形加速器上的分析室正好有3个方块长。有效的分析段没有线圈,镀层完全由分析室壁/窗组成。带有线圈的分析室被视为规则段。 +book.error.title8=错误 0x08 [二极管方向错误] +book.error.page8=§l错误类型:§r "错误_二极管方向错误" §l描述:§r 该粒子与肖特基粒子二极管的非输入侧碰撞。§l修复方式:§r 检查二极管的配置是否正确。粒子只能从带有绿色向内箭头的侧面进入二极管。 +book.error.title9=错误 0x09 [多处分支] +book.error.page9=§l错误类型:§r "错误_多处分支" §l描述:§r 粒子到达具有多个出口的转弯处。§l修复方式:§r 如果你的对撞机是正常的,检查所有需要的线圈是否都存在(即线圈中没有缺漏)。如果转弯处打算进行分支,则需要正确放置的肖特基粒子二极管。 book.rbmk.cover=$我的第一个$RBMK石墨式反应堆:$建造一个$反应堆$的基础知识 book.rbmk.title1=介绍 book.rbmk.page1=§lRBMK石墨式反应堆§r是一个完全模块化的核反应堆. 与大多数其他反应堆不同的是, 该反应堆没有"多方块结构核心"和尺寸上的限制, 而反应堆的性能和效率仅取决于你是如何建造它的, 以及各个组件如何相互作用. @@ -119,7 +191,7 @@ book.rbmk.page7=反应堆中的 §l蒸汽管道§r 是唯一能有效降低反 book.rbmk.title8=碳化钨中子反射器 book.rbmk.page8=反应堆中的 §l碳化钨中子反射器§r 将阻止中子的通过, 相反,中子将被反射回它们来自的燃料棒上. 这对于使用中子是有用的, 否则这些中子一旦离开反应堆就会被浪费掉. book.rbmk.title9=硼中子吸收器 -book.rbmk.page9=§l硼中子吸收器§r 只是阻挡中子. 被吸收的中子不会产生热量,会被有效地吸收. 这有助于防止燃料棒发生过度反应从而超出临界值. +book.rbmk.page9=§l硼中子吸收器§r 只是阻挡中子. 被吸收的中子不会产生热量,会被有效地吸收. 这有助于防止燃料棒发生过度反应从而超出临界值. book.rbmk.title10=石墨慢化剂 book.rbmk.page10=§l石墨慢化剂§r 把穿过它的快中子转换成慢中子. 大多数核燃料反应释放出快中子, 而引起裂变需要慢中子, 所以强烈建议使用慢化剂. book.rbmk.title11=结构柱 @@ -133,42 +205,51 @@ book.rbmk.title15=核燃料 book.rbmk.page15= §l核燃料§r 的反应取决于许多因素. 主要是 §l核燃料强度§r, §l氙中毒程度§r 和接收到的 §l中子数量§r. 氙元素会在核燃料的中子含量较低时积聚起来, 并在正常运行时燃烧殆尽. 中子的效率取决于其类型, 大多数核燃料 §l用慢中子轰击来裂变效果最好§r. book.rbmk.title16=熔毁 book.rbmk.page16=§4§l尽量避免发生, 你不会想让这样一场核灾难发生在你的存档或服务器里的. -#book.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.cover=重建$社会的实业家$指南 +book.starter.title1=介绍 +book.starter.page1=如果你正在读这篇文章,很可能社会已经因这样或 那样的方式完全崩溃了。政府、国家和权威是过去的概念, 以及文明生活的所有便利设施。因此,本指南将 告诉您如何通过重新创造过去的行业和技术 来改善自己的生活,从而改变这种状况。 +book.starter.title2=煤和芥子气 +book.starter.page2=虽然无法预测世界末日后的实际状态, 但目前形式的战争和工业不太可能没有结束。 为了保护自己的肺部,一种有效且廉价的方法是 在§L布§r上小便,制作一个§L防毒面具§r, 以使你免受煤尘或芥子气的伤害. +book.starter.title3=铁砧和锻压机 +book.starter.page3=开始工业振兴的精髓是§l砧§r和§l火力锻压机§r. 铁砧将允许您手动组合早期机械,如组装机, 而火力锻压机将允许您制作 无法用铁砧制作的板材、电线和电路. +book.starter.title4=模板 +book.starter.page4=为了将金属冲压成有用的 形状、组装机械和执行 化学反应,您需要创建 一个§L机器模板文件夹§r, 以创建右侧显示的各种冲压和模板。 +book.starter.title5=废墟探索 +book.starter.page5=根据最初的世界末日事件对世界现有结构的影响程度, 有可能直接从中抢救出许多有用的材料和机器。 钢铁等金属合金、电路等部件,甚至核电站的 裂变材料都可能在等着你。 然而,要小心某些废墟,因为那里可能潜伏着过度的危险, 就像草丛中的蛇一样; 等待着用辐射、陷阱或无法形容的恐怖袭击你... +book.starter.title6=早期机械 +book.starter.page6a=您应首先装配的两台机器是§l高炉§r和§l装配机§r. 前者允许您制造合金,如§L钢§r、§l工业级铜§r和§l高级合金§r; 你需要将这些金属用于机器的机身、 电路的布线、高级电磁铁等. +book.starter.page6b=汇编程序将用于创建本指南中描述的几乎所有其他机器. 您需要一个电源,如§L火力§r§L发电机§r或§L太阳能锅炉§r. +book.starter.page7a=§l粉碎机§r以及一对粉碎机刀片将非常有用,可以通过粉碎成可熔炼的粉末,将大多数矿石的产量提高一倍. 这些粉末对于开始为各种机器制作电路也至关重要,例如§l增强d§r和§l超频§r电路. +book.starter.page7b=使用您的新机器,您可以创建§L化工厂§r,用于合成更好的电路、混凝土、石化产品加工等. +book.starter.title8=黑金 +book.starter.page8a=使用§l石油§l储层§r§l探测仪§r, 您可以通过测量一个区域 来发现地下的油岩以 放置§l石油钻机§r或 §l钻油塔§r来开采 记住,石油储备会随着时间 的推移而耗尽 +book.starter.page8b=在§l炼油厂§r中提炼和分离石油 成分之前,你必须在§l锅炉§r中将 石油加热至300°C. +book.starter.title9=石油化工产品 +book.starter.page9=使用§l化工厂§r, §l分馏§r§l塔§r和§l催化裂化§r§l塔§r, 你可以将分离出的油转化为各种有用的产品. §l催化裂化§r§l塔§r, 可以将分离出的油转化为各种有用的产品. 例如:§l聚合物§r或§l电木§r, 耐用又柔性的塑料; §lDesh§r, 一种非常耐用和耐热的稀土金属合金; §l固体燃料§r, 可燃烧获取能量; 甚至是§l液体燃料§r, 比如§l汽油§r, §l柴油§r, §l煤油§r等等. +book.starter.title10=先进的机械 +book.starter.page10=通过一套成熟的石油加工系统,您可以制造§l离心机§r, 这将使矿石的产量增加三倍; §l矿物§l结晶机§r将 矿石结晶后,产量将进一步提高; 以及§lSILEX同位素激光分离室+§lFEL§r, 这两个现代工程的奇迹可以轻松地分离材料的同位素. 你需要更多的能量来驱动这些; 可通过§l柴油发电机§r,§l工业发电机§r, 甚至核反应堆等来源获取更多的能量. +book.starter.title11=特殊地层 +book.starter.page11=在你行走的地面之下,有几个自 然形成的§l岩层§r,或者说特殊的矿 层和岩层. §l片岩地层§r是蓝色的含锂层,填充 有铀,铁,铜,石棉和其他矿石可供 你自己使用. §l深板岩层§r含有大量稀有矿物, 如§l锆§r和§l硼§r,但 需要炸药才能采集 +book.starter.title12=辐射 +book.starter.page12a=§o本书其余部分将讨论与§o辐射有关的问题. 为了您和其他人的安全,我将提供§o一些建议以说明如何缓解和处理暴露于此的风险.§r +book.starter.page12b=充分暴露在辐射中会导致身体伤害. 第一步是预防; 一定要限制接触,并穿戴防护装备,如§l防辐射套装§r, 或在衣服或盔甲上加装§l防辐射覆层/涂料§r; 你也可以服用§lRad-X防辐射药§r来限制你的辐射量. 多亏了现代医学,第二步可以在必要时移除; 例如,§l玩家§l去污器§r将缓慢减少身体吸收的辐射. §l消辐宁§r还可以用作暴露后预防,快速有效地逆转 电离辐射对身体造成的损害. +book.starter.title13=铀浓缩 +book.starter.page13=核反应堆的燃料有几个简单的选择; 例如,§l天然铀§r或§l钍燃料§r. 然而, 如果你寻找更强力的东西,你可以设置两台§l气体离心机§r 的浓缩级联,用剩余的§l铀-238§r生产§l铀燃料§r. 你必须将天然铀转化为§l黄饼§r,然后是§l六氟化§l铀§r. +book.starter.title14=芝加哥反应堆 +book.starter.page14=或者,您可以使用§l芝加哥反应堆§r从天然铀中增殖出 §l反应堆级钚§r,这是一种更强大的燃料. 通过堆叠石墨块并在其中钻孔,您可以将燃料棒插入钚 和中子源棒,例如§l镭226-铍中子源§r,以开始反应. 确保测试你的设计;为防止过热, 可能需要隔开或限制石墨块的数量. +book.starter.title15=ZIRNOX锆诺克斯 +book.starter.page15=最终,你可以制造你的第一个§o真正§r的能源来源: §lZIRNOX§r核反应堆. 与其他能量源相比,核反应堆需要更多的准备; 首先,你需要有一个强悍的水源,比如§l重型§l无限水罐§r. 要从反应堆堆芯中排出热量并将水煮沸成蒸汽, 你需要足够的§l二氧化碳§r. 你只需要足够的压力, 不要让压力§o太§r大! 你还需要三个蒸汽涡轮机来利用产生的蒸汽来制造能量; §l蒸汽§l轮机§r或§l大型工业§l汽轮机§r将是最佳的. 最后,需要一个§l冷凝器§r或§l冷却塔§r来将残余蒸汽冷凝成水, 在这个冷却回路中可以将其排空或回收. +book.starter.title16=结论 +book.starter.page16=如果你已经走到了这一步,你已经走在重建文明大道上了. 你已经成功地用核能, 石油化工等重新制造了世界末日前的那些先进机器. 我不知道你将如何利用这些新发现的科技, 但我个人希望你利用这些优势是为了自己和他人的利益 - 或者至少是为了自卫. 再见! +book.starter.title18=关于作者 +book.starter.page18=v?r只是一个被困在"传声头像"的§o《一生一次》§r中的 灰色虚空中太久的人. 有一次, 他发现了一扇工作室的门, 但令他沮丧的是, 他发现那是一个纸板剪出来的. +chem.ARSENIC=砷提取 chem.ASPHALT=沥青生产 +chem.BAKELITE=电木生产 chem.BALEFIRE=野火火箭燃料混合 chem.BP_BIOFUEL=生物燃料酯化 chem.BP_BIOGAS=沼气生产 +chem.C4=C-4合成 chem.CC_HEATING=高级煤液化 chem.CC_HEAVY=初级煤液化 chem.CC_I=强化煤液化 @@ -176,6 +257,8 @@ chem.CC_NAPHTHA=煤液化石脑油 chem.CC_OIL=煤液化 chem.CIRCUIT_4=超频电路生产 chem.CIRCUIT_5=高性能电路生产 +chem.CO2=二氧化碳生产 +chem.COALGAS_LEADED=含铅煤汽油混合 chem.COLTAN_CLEANING=钶钽铁矿提纯 chem.COLTAN_CRYSTAL=钽结晶 chem.COLTAN_PAIN=Pandemonium(III)钽铁溶液生产 @@ -190,7 +273,9 @@ chem.DUCRETE=贫铀混凝土生产 chem.DYN_DNT=双聚中子态素合成 chem.DYN_EUPH=Ep合成 chem.DYN_SCHRAB=Sa326合成 +chem.DYNAMITE=炸药合成 chem.ELECTROLYSIS=低温电解水 +chem.EPEARL=末影珍珠合成 chem.ETHANOL=乙醇生产 chem.FC_BITUMEN=沥青裂化 chem.FC_DIESEL_KEROSENE=柴油裂化 @@ -203,17 +288,23 @@ chem.FP_NAPHTHA=石脑油加工 chem.FP_SMEAR=工业油加工 chem.FR_PETROIL=汽油混合 chem.FR_REOIL=原油再加工 +chem.FRACKSOL=压裂液生产 chem.GASOLINE=含铅汽油生产 +chem.GASOLINE_LEADED=含铅汽油混合 chem.HEAVY_ELECTROLYSIS=低温电解重水 chem.HELIUM3=使用月球草皮提取氦-3 chem.KEVLAR=凯夫拉生产 chem.LPG=石油天然气液化 +chem.LUBRICANT=润滑剂混合 +chem.METH=甲基苯丙胺合成 chem.NITAN=NITAN牌超级燃料混合 chem.OIL_SAND=沥青砂提取 chem.OSMIRIDIUM_DEATH=锇酸溶液生产 chem.PEROXIDE=过氧化氢生产 +chem.PETROIL_LEADED=含铅石油混合 chem.POLYMER=聚合物合成 chem.PUF6=六氟化钚生产 +chem.RUBBER=橡胶生产 chem.SAS3=三硫化Sa生产 chem.SATURN=土星锭生产 chem.SCHRABIDATE=Sa酸铁生产 @@ -235,8 +326,10 @@ chem.SF_RECLAIMED=再生油固化 chem.SF_SMEAR=工业油固化 chem.SOLID_FUEL=固体火箭燃料生产 chem.STEAM=烧水 +chem.SULFURIC_ACID=硫酸生产 chem.TEL=四乙基铅混合 chem.TEST=测试 +chem.TNT=TNT合成 chem.UF6=六氟化铀生产 chem.VIT_GAS=气态核废料玻璃化 chem.VIT_LIQUID=液态核废料玻璃化 @@ -250,6 +343,7 @@ container.anvil=砧 container.arcFurnace=电弧炉 container.armorTable=装甲改装台 container.assembler=装配机 +container.autocrafter=自动工作台 container.barrel=桶 container.bat9000=巨尻-9000 储罐 container.battery=储能 @@ -257,6 +351,9 @@ container.bombMulti=多用途炸弹 container.centrifuge=离心机 container.chemplant=化工厂 container.compactLauncher=紧凑型发射台 +container.craneExtractor=输送带提取器 +container.craneInserter=输送带导入器 +container.crateDesh=Desh箱 container.crateIron=铁箱 container.crateSteel=钢箱 container.crateTungsten=钨箱 @@ -291,15 +388,19 @@ container.machineCMB=CMB炼钢炉 container.machineCoal=火力发电机 container.machineDiesel=柴油发电机 container.machineElectricBoiler=电锅炉 +container.machineFEL=FEL自由电子激光器 container.machineITER=聚变反应堆 container.machineLargeTurbine=工业汽轮机 +container.machineLiquefactor=液化机 container.machineRefinery=炼油厂 container.machineSelenium=星型发动机 container.machineShredder=粉碎机 container.machineSILEX=SILEX激光同位素分离室 +container.machineSolidifier=固化机 container.machineTurbine=汽轮机 container.machineTurbofan=涡扇发动机 container.machine_schrabidium_transmutator=Sa326嬗变装置 +container.massStorage=Storage container.microwave=微波炉 container.miningDrill=自动采矿钻机 container.miningLaser=采矿激光 @@ -326,18 +427,20 @@ container.pumpjack=石油钻机 container.radGen=辐射能量发电机 container.radar=雷达 container.radiobox=FM发射机 +container.radiolysis=RTG辐射裂解室 container.radiorec=FM收音机 container.rbmkBoiler=RBMK石墨式反应堆蒸汽管道 container.rbmkControl=RBMK石墨式反应堆控制棒 container.rbmkControlAuto=RBMK石墨式反应堆自动控制棒 +container.rbmkHeater=RBMK流体加热器 container.rbmkOutgasser=RBMK石墨式反应堆辐照通道 container.rbmkReaSim=RBMK石墨式反应堆燃料棒 (ReaSim) container.rbmkRod=RBMK石墨式反应堆燃料棒 container.rbmkStorage=RBMK 燃料存储棒 -container.reactor=增殖反应堆 +container.reactorBreeding=增殖反应堆 container.reactorControl=反应堆遥控模块 container.reactorLarge=大型核反应堆 -container.reactorSmall=核反应堆 +container.reactorResearch=研究型反应堆 container.reix=Rei-X主机 container.rtg=放射性同位素发电机 container.rtgFurnace=放射性同位素热力炉[RTG] @@ -392,10 +495,12 @@ death.attack.laser.item=%1$s 被 %2$s 使用 %3$s 变成灰烬 death.attack.lead=%1$s 死于铅中毒 death.attack.lunar=%1$s 忘记了给重要器官充电 death.attack.meteorite=%1$s 被来自外太空的陨石击中 +death.attack.microwave=%1s 因微波辐射爆炸 death.attack.mku=%1$s 死于不明原因 death.attack.monoxide=%1$s忘了换一氧化碳探测器的电池 death.attack.mudPoisoning=%1$s 死于毒泥浆中 death.attack.nuclearBlast=%1$s 被核爆炸飞 +death.attack.overdose=%1$s 上瘾并窒息 death.attack.pc=%1$s 在粉红色的云中变成了一个水坑 death.attack.plasma=%1$s 被 %2$s 烧死 death.attack.radiation=%1$s 死于辐射 @@ -404,7 +509,7 @@ death.attack.revolverBullet.item=%1$s 被 %2$s 使用 %3$s 爆头 death.attack.rubble=%1$s 被碎片压扁了 death.attack.shrapnel=%1$s 被榴弹碎片炸得千疮百孔 death.attack.spikes=%1$s被刺穿了 -death.attack.subAtomic1=%1$s 的原子已被 %2$s 销毁。 +death.attack.subAtomic1=%1$s 的原子已被 %2$s 销毁. death.attack.subAtomic2=%1$s 因为被 %2$s 篡改了实际速度,导致QPU没有对准 death.attack.subAtomic3=由于 %2$s,1$s 的偏差下降到1%以下 death.attack.subAtomic4=%1$s 因为 %2$s 被零除了 @@ -414,17 +519,37 @@ death.attack.taint=%1$s 死于恶性肿瘤 death.attack.tau=%1$s 被 %2$s 用带负电荷的陶子射穿 death.attack.tauBlast=%1$s 对XVL1456充能时间过长,被炸成碎片 death.attack.teleporter=%1$s 被传送到虚空 +desc.item.pileRod=§e使用钻孔石墨插入$§E使用螺丝刀拔出$ +desc.item.rtgDecay=衰变为:%s desc.item.rtgHeat=功率级别:%s +desc.item.wasteCooling=在乏燃料池中冷却 +desc.gui.assembler.warning=§c错误:§r此机器需要装配机模板! +desc.gui.chemplant.warning=§c错误:§r此机器需要化工厂模板! +desc.gui.gasCent.enrichment=§2浓缩§r$浓缩铀需要串联$两个离心机串联将离心出$铀燃料,四个离心机串联$将完全分离出铀235。 +desc.gui.gasCent.output=§6流体输送§r$流体可通过输出端口输送至另一台离心机$进行进一步处理。 +desc.gui.radiolysis.desc=§9说明§r$该RTG比其他RTG更高效,并且$配备了一个用于$裂解和灭菌的辐解室。 desc.gui.rtgBFurnace.desc=处理$金-198需要至少15热量。此外,热量越多,运行速度越快$金-198可能会衰变为水银 -desc.gui.rtgBFurnace.heat=§e当前热级别:%s -desc.gui.rtgBFurnace.pellets=接受的靶丸: -desc.gui.rtgBFurnace.pellet=%s(%s热量) +desc.gui.rtg.heat=§e当前热等级:%s +desc.gui.rtg.pellets=接受的靶丸: +desc.gui.rtg.pelletHeat=%s (%s 热量) +desc.gui.rtg.pelletPower=%s (%s HE/刻) +desc.gui.template=§9模板§r$模板可由$机器模板文件夹制作。 +desc.gui.upgrade=§l可接受的升级:§r +desc.gui.upgrade.afterburner=*§d加力燃烧§r:堆叠至3级 +desc.gui.upgrade.effectiveness=*§a效率§r:堆叠至3级 +desc.gui.upgrade.overdrive=*§7超速§r:堆叠至3级 +desc.gui.upgrade.power=*§1节能§r:堆叠至3级 +desc.gui.upgrade.speed=*§4速度§r:堆叠至3级 +desc.gui.zirnox.coolant=§3冷却剂§r$CO2将热量从堆芯转移到水中$这会令它变成成超热蒸汽$冷却和蒸汽生产的效率取决于压力。 +desc.gui.zirnox.pressure=§6压力§r$排放二氧化碳可以降低压力$然而,压力过低,冷却效率和蒸汽产量将降低$小心熔毁! +desc.gui.zirnox.warning1=§c错误:§r反应堆正常运行需要水! +desc.gui.zirnox.warning2=§c错误:§r二氧化碳是反应堆正常运行所必需的! digamma.playerDigamma=玩家F-迪伽马辐照水平: digamma.playerHealth=玩家所受F-迪伽马辐照影响: digamma.playerRes=玩家F-迪伽马防护水平: digamma.title=玩家F-迪伽马辐射自检器 entity.entity_cyber_crab.name=赛博螃蟹 -entity.entity_elder_one.name=老鸭子 +entity.entity_elder_one.name=上古鸭神 entity.entity_fucc_a_ducc.name=鸭子 entity.entity_ntm_fbi.name=FBI探员 entity.entity_ntm_radiation_blaze.name=核融元素 @@ -440,8 +565,10 @@ entity.hbm.entity_balls_o_tron_seg.name=机械蠕虫 entity.hbm.entity_bullet.name=子弹 entity.hbm.entity_rocket.name=火箭弹 entity.hbm.entity_schrabnel.name=Schrabnel +flare.ignition=点火装置 +flare.valve=流量阀 fluid.acid_fluid=酸 -fluid.corium_fluid=Corium +fluid.corium_fluid=堆芯熔融物 fluid.mud_fluid=毒泥 fluid.schrabidic_fluid=Sa酸 fluid.toxic_fluid=绿色软泥 @@ -451,17 +578,33 @@ geiger.envRad=环境总辐射量: geiger.playerRad=玩家辐射: geiger.playerRes=辐射抗性: geiger.title=盖革计数器 +geiger.title.dosimeter=剂量计 hadron.analysis=正在分析... hadron.buttonOn=分析室启动(如果存在) hadron.buttonOff=分析室关闭 -hadron.error=错误! +hadron.error_generic=错误! +hadron.error_no_charge=错误 0x01 [能量不足] +hadron.error_no_analysis=错误 0x02 [无法分析] +hadron.error_obstructed_channel=错误 0x03 [通道阻塞] +hadron.error_expected_coil=错误 0x04 [缺少线圈] +hadron.error_malformed_segment=错误 0x05 [错误区段] +hadron.error_analysis_too_long=错误 0x06 [分析室过长] +hadron.error_analysis_too_short=错误 0x06 [分析室过长] +hadron.error_diode_collision=错误 0x08 [二极管方向错误] +hadron.error_branching_turn=错误 0x09 [多处分支] hadron.hopper0=§e正常模式:$将使用所有项目 hadron.hopper1=§e料斗模式:$ 将始终保留一个项目 hadron.idle=空闲 hadron.modeCircular=§e环形加速器模式:$磁铁必须环绕核心$解锁更多配方 hadron.modeLine=§e直线加速器模式:$加速器末端有分析室$更少的配方 hadron.noresult=无结果 +hadron.noresult_too_slow=推进力不足! +hadron.noresult_wrong_ingredient=无效配方! +hadron.noresult_wrong_mode=错误模式! hadron.progress=正在进行中... +hadron.stats=上一次结果: +hadron.stats_coord=错误位置:%s/%s/%s +hadron.stats_momentum=推力: %s hadron.success=已完成! hazard.prot=防止危险: hazard.noprot=不能防止: @@ -476,73 +619,95 @@ hazard.particleCoarse=空气微粒 hazard.particleFine=微粒 hazard.sand=眼睛刺激物 hbm.key=HBM的核科技mod 热键 +hbm.key.calculator=计算器 hbm.key.craneLoad=装卸起重机 hbm.key.craneMoveDown=向后移动起重机 hbm.key.craneMoveLeft=向左移动起重机 hbm.key.craneMoveRight=向右移动起重机 hbm.key.craneMoveUp=向前移动起重机 +hbm.key.dash=冲刺 (在config中解绑) hbm.key.toggleBack=开关 喷气背包 hbm.key.toggleHUD=开关 HUD hbm.key.reload=装弹 hbmfluid.acid=过氧化氢 hbmfluid.amat=反物质 +hbmfluid.aromatics=芳香烃 hbmfluid.aschrab=反Sa326 hbmfluid.balefire=野火火箭燃料 hbmfluid.biofuel=生物燃料 hbmfluid.biogas=沼气 hbmfluid.bitumen=沥青 hbmfluid.carbondioxide=二氧化碳 +hbmfluid.coalgas=煤汽油 +hbmfluid.coalgas_leaded=含铅煤汽油 +hbmfluid.coaloil=煤液化油 hbmfluid.coolant=冷却液 +hbmfluid.coolant_hot=热冷却液 +hbmfluid.crackoil=裂化油 hbmfluid.cryogel=冷凝胶 hbmfluid.death=锇酸溶液 hbmfluid.deuterium=氘 hbmfluid.diesel=柴油 +hbmfluid.diesel_crack=裂化柴油 hbmfluid.ethanol=乙醇 +hbmfluid.enderjuice=末影果汁 hbmfluid.fracksol=压裂液 hbmfluid.gas=天然气 hbmfluid.gasoline=含铅汽油 +hbmfluid.gasoline_leaded=含铅汽油 hbmfluid.heatingoil=燃油 hbmfluid.heavyoil=重油 hbmfluid.heavywater=重水 hbmfluid.helium3=氦-3 +hbmfluid.hotcrackoil=热裂化油 hbmfluid.hotoil=热原油 hbmfluid.hotsteam=热蒸汽 hbmfluid.hydrogen=液氢 hbmfluid.kerosene=煤油 hbmfluid.lava=岩浆 hbmfluid.lightoil=轻油 +hbmfluid.lightoil_crack=裂化轻油 hbmfluid.lpg=液化石油气 hbmfluid.lubricant=润滑油 hbmfluid.mercury=水银 +hbmfluid.mug=Mug牌树根饮料 +hbmfluid.mug_hot=热的Mug牌树根饮料 hbmfluid.naphtha=石脑油 +hbmfluid.naphtha_crack=裂化石脑油 hbmfluid.nitan=NITAN牌100号超级燃料 hbmfluid.none=无 hbmfluid.oil=原油 hbmfluid.oxygen=液氧 hbmfluid.pain=Pandemonium(III) 钽铁溶液 hbmfluid.petroil=汽油 +hbmfluid.petroil_leaded=含铅石油 hbmfluid.petroleum=石油气 hbmfluid.plasma_bf=野火等离子体 +hbmfluid.plasma_dh3=氘-氦3 等离子体 hbmfluid.plasma_dt=氘-氚等离子体 hbmfluid.plasma_hd=氢-氘等离子体 hbmfluid.plasma_ht=氢-氚等离子体 hbmfluid.plasma_xm=氙-汞等离子体 hbmfluid.puf6=六氟化钚 hbmfluid.reclaimed=再生油 +hbmfluid.salient=绿色液体 hbmfluid.sas3=三硫化Sa hbmfluid.schrabidic=Sa酸 hbmfluid.smear=工业油 hbmfluid.spentsteam=低压蒸汽 hbmfluid.steam=蒸汽 +hbmfluid.sulfuric_acid=硫酸 hbmfluid.superhotsteam=超热蒸汽 hbmfluid.tritium=氚 hbmfluid.uf6=六氟化铀 hbmfluid.ultrahotsteam=超浓密蒸汽 +hbmfluid.unsaturateds=不饱和烃 hbmfluid.wastefluid=液态核废料 hbmfluid.wastegas=气态核废料 hbmfluid.water=水 hbmfluid.watz=毒泥浆 hbmfluid.xenon=氙气 +hbmfluid.xpjuice=经验汁 info.coil=线圈强度 info.templatefolder=需要使用机器模板文件夹创建 info.template_in=输入: @@ -609,6 +774,7 @@ item.ammo_4gauge_kampf.name=23mm火箭弹 item.ammo_4gauge_semtex.name=23mm采矿弹药 item.ammo_4gauge_sleek.name=4号鹿弹[IF-R&D] item.ammo_4gauge_slug.name=四号实心独头弹 +item.ammo_4gauge_titan.name=4号Quacker鹿弹 item.ammo_4gauge_vampire.name=4号木签弹 item.ammo_4gauge_void.name=4号电离粒子弹 item.ammo_50ae.name=.50AE子弹 @@ -690,6 +856,7 @@ item.ammo_mirv_low.name=迷你MIRV (低当量) item.ammo_mirv_safe.name=迷你MIRV (安全) item.ammo_mirv_special.name=迷你MIRV item.ammo_nuke.name=迷你核弹 +item.ammo_nuke_barrel.name=小型核废料桶 item.ammo_nuke_high.name=迷你核弹 (高当量) item.ammo_nuke_low.name=迷你核弹 (低当量) item.ammo_nuke_pumpkin.name=南瓜炸弹 @@ -709,10 +876,15 @@ item.ammo_rocket_shrapnel.name=84mm火箭弹[破片] item.ammo_rocket_sleek.name=84mm火箭弹[IF-R&D] item.ammo_rocket_toxic.name=84mm火箭弹[化学] item.ammo_shell.name=240mm炮弹 -item.ammo_shell_apfsds_du.name=240mm 贫铀尾翼稳定脱壳穿甲弹 +item.ammo_shell_apfsds_du.name=240mm 贫铀尾翼稳定脱壳穿甲弹 item.ammo_shell_apfsds_t.name=240mm 钨心尾翼稳定脱壳穿甲弹 item.ammo_shell_explosive.name=240mm 高爆炮弹 item.ammo_shell_w9.name=240mm W9核子炮弹 +item.ammo_stinger_rocket.name=毒刺导弹 +item.ammo_stinger_rocket_he.name=毒刺导弹[高爆] +item.ammo_stinger_rocket_incendiary.name=毒刺导弹[燃烧] +item.ammo_stinger_rocket_nuclear.name=毒刺导弹[Привет] +item.ammo_stinger_rocket_bones.name=毒刺导弹[寻骨] item.ams_catalyst_aluminium.name=铝反应催化剂 item.ams_catalyst_beryllium.name=铍反应催化剂 item.ams_catalyst_blank.name=空白反应催化剂 @@ -734,10 +906,13 @@ item.ams_core_sing.name=活跃奇点[AMS/DFC核心] item.ams_core_thingy.name=Thingy[AMS/DFC核心] item.ams_core_wormhole.name=微型虫洞[AMS/DFC核心] item.ams_focus_blank.name=空白稳定器焦点 -item.ams_focus_booster.name=增压稳定器焦点 +item.ams_focus_booster.name=较弱的约束场和核心能量注入:产生更多的热量,额外的能量。 +item.ams_focus_booster.name=Weaker restriction field and core energy injection:$More heat generation, extra energy. item.ams_focus_limiter.name=限制稳定器焦点 +item.ams_focus_limiter.desc=限制领域的最高性能:$标准冷却,无能源加成。 item.ams_lens.name=稳定透镜 item.ams_muzzle.name=激活射线发射极 +item.ams_muzzle.desc=...它可以发出一束能量束。 item.analyzer.name=分析仪 item.antiknock.name=四乙基铅抗爆剂 item.apple_euphemium.name=Ep苹果 @@ -779,6 +954,8 @@ item.back_tesla.name=背负式特斯拉线圈 item.balefire_and_ham.name=火腿野火蛋 item.balefire_and_steel.name=野火打火石 item.balefire_scrambled.name=炒野火蛋 +item.ball_dynamite.name=硝糖炸药 +item.ball_tnt.name=TNT item.ballistite.name=混合无烟火药 item.bandaid.name=邦迪创可贴 item.bathwater.name=有毒肥皂水 @@ -800,6 +977,7 @@ item.battery_red_cell_24.name=二十四联红石电池组 item.battery_red_cell_6.name=六联红石电池组 item.battery_sc_americium.name=自充电 镅-241电池 item.battery_sc_gold.name=自充电 金-198电池 +item.battery_sc_lead.name=自充电 铅-209电池 item.battery_sc_plutonium.name=自充电 钚-238电池 item.battery_sc_polonium.name=自充电 钋-210电池 item.battery_sc_technetium.name=自充电 锝-98电池 @@ -823,6 +1001,7 @@ item.battery_su_l.name=大型SU-电池 item.battery_trixite.name=杂牌Spark电池 item.beta.name=Bata测试版功能 item.big_sword.name=大剑 +item.billet_actinium.name=锕-227坯料 item.billet_am_mix.name=反应堆级镅坯料 item.billet_am241.name=镅-241坯料 item.billet_am242.name=镅-242坯料 @@ -835,19 +1014,26 @@ item.billet_balefire_gold.name=激活态金-198坯料 item.billet_beryllium.name=铍坯料 item.billet_bismuth.name=铋坯料 item.billet_co60.name=钴-60坯料 +item.billet_cobalt.name=钴坯料 +item.billet_flashlead.name=闪光铅坯料 +item.billet_flashlead.desc=晶格衰变,引起反物质湮灭反应,导致π介子释放,衰变为μ子,催化原子核融合,产生新的元素$请尽量跟上。 +item.billet_gh336.name=Gh336坯料 +item.billet_gh336.desc=??的同事 item.billet_hes.name=高浓缩度Sa326燃料坯料 item.billet_les.name=低浓缩度Sa326燃料坯料 item.billet_mox_fuel.name=MOX燃料坯料 +item.billet_mox_fuel.desc=口袋摩西! item.billet_neptunium.name=镎坯料 item.billet_neptunium_fuel.name=镎核燃料坯料 item.billet_nuclear_waste.name=核废料坯料 +item.billet_pb209.name=铅-209坯料 item.billet_po210be.name=钋210-铍坯料 item.billet_polonium.name=钋坯料 item.billet_pu_mix.name=反应堆级钋坯料 -item.billet_pu238.name=钚238坯料 +item.billet_pu238.name=钚-238坯料 item.billet_pu238be.name=钚238-铍坯料 -item.billet_pu239.name=钚239坯料 -item.billet_pu240.name=钚240坯料 +item.billet_pu239.name=钚-239坯料 +item.billet_pu240.name=钚-240坯料 item.billet_pu241.name=钚-241坯料 item.billet_plutonium.name=钚坯料 item.billet_plutonium_fuel.name=钚燃料坯料 @@ -856,12 +1042,13 @@ item.billet_ra226be.name=镭226-铍坯料 item.billet_schrabidium.name=Sa326坯料 item.billet_schrabidium_fuel.name= Sa326燃料坯料 item.billet_solinium.name=Sa327坯料 +item.billet_sr90.name=锶-90坯料 item.billet_technetium.name=锝-99坯料 -item.billet_th232.name=钍232坯料 +item.billet_th232.name=钍-232坯料 item.billet_thorium_fuel.name=钍燃料坯料 -item.billet_u233.name=铀233坯料 -item.billet_u235.name=铀235坯料 -item.billet_u238.name=铀238坯料 +item.billet_u233.name=铀-233坯料 +item.billet_u235.name=铀-235坯料 +item.billet_u238.name=铀-238坯料 item.billet_uranium.name=铀坯料 item.billet_uranium_fuel.name=铀燃料坯料 item.billet_yharonite.name=犽戎龙素坯料 @@ -869,9 +1056,14 @@ item.billet_zfb_am_mix.name=反应器级镅 ZFB坯料 item.billet_zfb_bismuth.name=铋 ZFB坯料 item.billet_zfb_pu241.name=钚-241 ZFB坯料 item.billet_zirconium.name=锆坯料 +item.bio_wafer.name=海藻晶片 item.biomass.name=生物质 item.biomass_compressed.name=压缩生物质 +item.bismuth_boots.name=铋凉鞋 +item.bismuth_helmet.name=铋头饰 +item.bismuth_legs.name=铋护膝 item.bismuth_pickaxe.name=铋镐 +item.bismuth_plate.name=铋质护肩、项链和腰带 item.bismuth_tool.name=磁力提取器 item.bj_boots.name=§4月神§r钉靴 item.bj_helmet.name=热传感器眼罩 @@ -903,7 +1095,7 @@ item.bolt_dura_steel.name=高速钢螺栓 item.bolt_tungsten.name=钨螺栓 item.bomb_caller.name=空袭指示器 item.bomb_waffle.name=大规模杀伤性华夫饼 -item.book_guide.name=RBMK反应堆操作指导书 +item.book_guide.name=HBM指导书 item.book_of_.name=车厢书 item.book_secret.name=3-596-50802-9 item.bottle2_empty.name=空瓶 @@ -920,18 +1112,20 @@ item.bottle_opener.name=Hbm自制开瓶器 item.bottle_quantum.name=量子核子可乐 item.bottle_rad.name=辐射S~核子可乐 item.bottle_sparkle.name=S~核子可乐 -item.boy_bullet.name=铀235弹头 +item.boy_bullet.name=铀-235弹头 item.boy_igniter.name=点火器 item.boy_kit.name=小男孩 套件 item.boy_propellant.name=炸药 item.boy_shielding.name=中子屏蔽罩 -item.boy_target.name=次临界铀235标靶 +item.boy_target.name=次临界铀-235标靶 item.briquette_lignite.name=褐煤煤球 item.bucket_acid.name=一桶酸 item.bucket_mud.name=一桶毒泥 item.bucket_schrabidic_acid.name=一桶Sa酸 +item.bucket_sulfuric_acid.name=一桶硫酸 item.bucket_toxic.name=一桶绿色软泥 item.burnt_bark.name=烧焦树皮 +item.burnt_bark.desc=爆炸的金橡树的树皮。 item.can_bepis.name=白事 item.can_breen.name=布雷恩博士的私人珍藏 item.can_creature.name='生物'能量饮料 @@ -939,6 +1133,7 @@ item.can_empty.name=空罐 item.can_key.name=罐头拉环 item.can_luna.name=黑梅萨露娜-黑可乐 item.can_mrsugar.name='糖博士'软饮料 +item.can_mug.name=MUG Root Beer item.can_overcharge.name=超频DeliriumXT item.can_redbomb.name='红色炸弹'能量饮料 item.can_smart.name="智慧"能量饮料 @@ -950,6 +1145,8 @@ item.canister_empty.name=空油桶 item.canister_ethanol.name=桶装乙醇 item.canister_fracksol.name=桶装压裂液 item.canister_fuel.name=桶装柴油 +item.canister_fuel.desc=大家欢呼吧! +item.canister_full.name=容器: item.canister_gasoline.name=桶装含铅汽油 item.canister_gasoline.desc=铅就是朋友$让朋友进入你的血液$*上膛声*现在就做 item.canister_heatingoil.name=桶装燃油 @@ -1006,11 +1203,15 @@ item.cape_codered_.name=codered_披风 item.cape_dafnik.name=Dafnik披风 item.cape_gasmask.name=披风[防毒面具] item.cape_hbm.name=Hbm披风 +item.cape_hidden.name=Hidden Cape item.cape_lpkukin.name=LPkukin披风 item.cape_nostalgia.name=DrNostalgia披风 item.cape_radiation.name=披风[辐射] item.cape_schrabidium.name=披风[Sa326] item.cape_vertice.name=Lord Vertice披风 +item.cart.crate.name=板条箱运输车 +item.cart.destroyer.name=废品销毁车 +item.cart.empty.name=钢箱矿车 item.casing_357.name=.357马格南弹壳[x16] item.casing_44.name=.44马格南弹壳[x16] item.casing_50.name=大口径弹壳[x8] @@ -1032,6 +1233,8 @@ item.centrifuge_element.name=离心元件 item.centrifuge_tower.name=离心塔 item.chainsaw.name=链锯 item.cheese.name=奶酪 +item.chemistry_set.name=实验室玻璃器皿 +item.chemistry_set_boron.name=实验室玻璃器皿(硼玻璃) item.chemistry_template.name=化工厂模板: item.chernobylsign.name=辐射警告标志战斧 item.chlorine_pinwheel.name=氯气转轮 @@ -1048,6 +1251,8 @@ item.chopper_wing.name=猎人直升机翼片 item.cigarette.name=FFI牌香烟 item.cinnebar.name=朱砂 item.circuit_aluminium.name=基础电路 +item.circuit_arsenic.name=自适应电路 +item.circuit_arsenic_raw.name=自适应电路组件 item.circuit_bismuth.name=多功能芯片组 item.circuit_bismuth_raw.name=多功能芯片组组件 item.circuit_copper.name=增强电路 @@ -1055,6 +1260,31 @@ item.circuit_gold.name=超频电路 item.circuit_raw.name=基本电路组件 item.circuit_red_copper.name=高级电路 item.circuit_schrabidium.name=高性能电路 +item.circuit_star.name=星控制 电路板 +item.circuit_star.desc=目前无效,因为它缺少操作系统。 +item.circuit_star_component.chipset.name=星控制 芯片组 +item.circuit_star_component.cpu.name=星控制 CPU +item.circuit_star_component.ram.name=星控制 RAM +item.circuit_star_piece.board_blank.name=SC-印刷电路板 +item.circuit_star_piece.board_transistor.name=SC-晶体管 +item.circuit_star_piece.bridge_bios.name=SC-BIOS芯片 +item.circuit_star_piece.bridge_bus.name=SC-总线 +item.circuit_star_piece.bridge_chipset.name=SC-芯片组 +item.circuit_star_piece.bridge_cmos.name=SC-CMOS存储器 +item.circuit_star_piece.bridge_io.name=SC-IO芯片 +item.circuit_star_piece.bridge_north.name=SC-北桥 +item.circuit_star_piece.bridge_south.name=SC-南桥 +item.circuit_star_piece.cpu_cache.name=SC-CPU缓存 +item.circuit_star_piece.cpu_clock.name=SC-CPU时钟 +item.circuit_star_piece.cpu_ext.name=SC-砷半导体外延片 +item.circuit_star_piece.cpu_logic.name=SC-算术逻辑单元 +item.circuit_star_piece.cpu_register.name=SC-CPU寄存器 +item.circuit_star_piece.cpu_socket.name=SC-CPU插槽 +item.circuit_star_piece.mem_socket.name=SC-存储插座 +item.circuit_star_piece.mem_16k_a.name=SC-16k内存条插槽 A +item.circuit_star_piece.mem_16k_b.name=SC-16k内存条插槽 B +item.circuit_star_piece.mem_16k_c.name=SC-16k内存条插槽 C +item.circuit_star_piece.mem_16k_d.name=SC-16k内存条插槽 D item.circuit_tantalium.name=电容板 item.circuit_tantalium_raw.name=电容板组件 item.circuit_targeting_tier1.name=军用级电路板[1级] @@ -1064,6 +1294,7 @@ item.circuit_targeting_tier4.name=军用级电路板[4级] item.circuit_targeting_tier5.name=军用级电路板[5级] item.circuit_targeting_tier6.name=军用级电路板[6级] item.cladding_desh.name=Desh覆层 +item.cladding_ghiorsium.name=石墨覆层 item.cladding_iron.name=铁覆层 item.cladding_lead.name=铅覆层 item.cladding_obsidian.name=黑曜石覆层 @@ -1140,7 +1371,9 @@ item.coin_radiation.name=辐射硬币 item.coin_siege.name=围城硬币 item.coin_ufo.name=UFO硬币 item.coin_worm.name=机械蠕虫硬币 -item.coke.name=焦炭 +item.coke.coal.name=煤焦炭 +item.coke.lignite.name=褐煤焦炭 +item.coke.petroleum.name=石油焦炭 item.coltan_tool.name=钶钽铁矿指针 item.combine_scrap.name=CMB钢废料 item.component_emitter.name=发射器组件 @@ -1153,6 +1386,8 @@ item.crucible.name=裁决剑 item.crystal_aluminium.name=铝晶体 item.crystal_beryllium.name=铍晶体 item.crystal_charred.name=烧焦的水晶 +item.crystal_charred.desc=优质硅酸盐,轻微灼烧。 +item.crystal_charred.desc.P11=也是一个真正的号角。奇怪吧? item.crystal_coal.name=煤晶体 item.crystal_cobalt.name=钴晶体 item.crystal_copper.name=铜晶体 @@ -1162,12 +1397,14 @@ item.crystal_energy.name=能量晶体 item.crystal_fluorite.name=氟晶体 item.crystal_gold.name=金晶体 item.crystal_horn.name=水晶角 +item.crystal_horn.desc=不是真正的号角。 +item.crystal_horn.desc.P11=真正的号角。 item.crystal_iron.name=铁晶体 item.crystal_lead.name=铅晶体 item.crystal_lapis.name=青金石晶体 item.crystal_lithium.name=锂晶体 item.crystal_niter.name=硝石晶体 -item.crystal_osmiridium.name=锇晶体 +item.crystal_osmiridium.name=铱锇晶体 item.crystal_phosphorus.name=磷晶体 item.crystal_plutonium.name=钚晶体 item.crystal_rare.name=稀土晶体 @@ -1182,10 +1419,12 @@ item.crystal_trixite.name=赛瑞克晶体 item.crystal_tungsten.name=钨晶体 item.crystal_uranium.name=铀晶体 item.crystal_xen.name=人造X晶体 +item.crt_display.name=阴极射线管 item.cube_power.name=电子块 item.custom_amat.name=自定义核弹-反物质棒 item.custom_dirty.name=自定义核弹-核废料棒 item.custom_fall.name=自定义核弹-掉落升级 +item.custom_fall.desc=这就是你一一一直在等待的$使炸弹在激活时下落 item.custom_hydro.name=自定义核弹-氢棒 item.custom_kit.name=自定义核弹 套件 item.custom_nuke.name=自定义核弹-铀棒 @@ -1218,6 +1457,10 @@ item.detonator_laser.name=激光起爆器 item.detonator_multi.name=多发起爆器 item.deuterium_filter.name=氘过滤器 item.diamond_gavel.name=钻石槌 +item.dieselsuit_boots.name=柴油动力高跟鞋 +item.dieselsuit_helmet.name=柴油动力头戴式环境传感器 +item.dieselsuit_legs.name=柴油动力腿部伺服系统 +item.dieselsuit_plate.name=柴油动力控制器 item.digamma_diagnostic.name=玩家F-迪伽马辐射自检器 item.dns_boots.name=DNT双聚中子态素高科技全环境作战服靴子 item.dns_legs.name=DNT双聚中子态素高科技全环境作战服护腿 @@ -1230,12 +1473,16 @@ item.dnt_plate.name=双聚态中子素 胸甲 item.door_bunker.name=仓门 item.door_metal.name=金属门 item.door_office.name=办公室门 +item.dosimeter.name=剂量计 item.drill_titanium.name=钛钻头 item.drax.name=采掘钻 item.drax_mk2.name=强化型采掘钻 item.drax_mk3.name=Sa326采掘钻 item.ducttape.name=胶带 item.dust.name=灰尘 +item.dust.desc=我讨厌灰尘! +item.dust.desc.P11=又一小撮灰尘! +item.dust_tiny.name=一小撮灰尘 item.dynosphere_base.name=空白动力球 item.dynosphere_desh.name=Desh动力球 item.dynosphere_desh_charged.name=Desh动力球[带电] @@ -1255,6 +1502,7 @@ item.elec_shovel.name=螺旋钻 item.elec_sword.name=电棍 item.energy_core.name=临时能源核心 item.entanglement_kit.name=纠缠部件 +item.entanglement_kit.desc=传送机制作零件$通过$铍增强型资源扫描仪实现尺寸转换。 item.euphemium_boots.name=Ep靴子 item.euphemium_helmet.name=Ep头盔 item.euphemium_kit.name=Ep工具箱 @@ -1277,10 +1525,14 @@ item.fins_small_steel.name=小型钢栅格翼 item.fins_tri_steel.name=大型钢翼 item.five_htp.name=5-羟色胺药丸 item.flame_conspiracy.name=阴谋论 +item.flame_conspiracy.desc=钢梁不能熔化喷气燃料! item.flame_opinion.name=个人观点 +item.flame_opinion.desc=呃,我喜欢... item.flame_politics.name=政治话题 +item.flame_politics.desc=唐老鸭将会修建一堵墙! item.flame_pony.name=卡通小马画 -item.fleija_core.name=F.L.E.I.J.A.铀235装药 +item.flame_pony.desc=黄马胜于蓝马,这是不争的事实! +item.fleija_core.name=F.L.E.I.J.A.铀-235装药 item.fleija_igniter.name=脉冲点火器 item.fleija_kit.name=F.L.E.I.J.A. 套件 item.fleija_propellant.name=Sa326炸药 @@ -1293,6 +1545,9 @@ item.fluid_identifier.info=流体标识码用于: item.fluid_identifier.usage0=在流体管道上单击右键,为该管道指定运输的流体。 item.fluid_identifier.usage1=按住Shift键并流体管道上单击右键以指定相邻管道 item.fluid_identifier.usage2=最大范围为64格管道。 +item.fluid_identifier_multi.name=多类型流体识别码 +item.fluid_identifier_multi.info=通用流体识别码: +item.fluid_identifier_multi.info2=次要类型: item.fluid_tank_empty.name=空通用流体罐 item.fluid_tank_full.name=通用流体罐: item.fluid_tank_lead_empty.name=空危险品罐 @@ -1344,7 +1599,10 @@ item.gas_mask_mono.name=防一氧化碳面罩 item.gas_mask_olde.name=皮革防毒面具 item.gas_petroleum.name=石油气罐 item.geiger_counter.name=手持盖革计数器 +item.gem_alexandrite.name=亚历山大变石 item.gem_tantalium.name=钽晶体 +item.gem_tantalium.desc=“钽” +item.gem_tantalium.desc.P11=又名钽。 item.gem_volcanic.name=火山宝石 item.generator_front.name=发电机前部 item.generator_steel.name=发电机主体 @@ -1378,6 +1636,7 @@ item.grenade_if_spark.name=IF-S-手榴弹 item.grenade_if_sticky.name=IF-粘性手榴弹 item.grenade_if_toxic.name=IF-毒物手榴弹 item.grenade_kit.name=手榴弹 套件 +item.grenade_kyiv.name=基辅特供 item.grenade_lemon.name=可燃柠檬 item.grenade_mirv.name=MIRV型破片手榴弹 item.grenade_mk2.name=Mk2手榴弹“菠萝大使” @@ -1404,9 +1663,9 @@ item.gun_bolt_action.name=栓动式霰弹枪[原版] item.gun_bolt_action_ammo.name=12x74 独头弹 item.gun_bolt_action_green.name=栓动式霰弹枪[绿色] item.gun_bolt_action_saturnite.name=土星来复枪 -item.gun_bolter.name=Bolter -item.gun_bolter_digamma.name=迪伽马Bolter -item.gun_calamity.name=灾难 +item.gun_bolter.name=爆弹枪 +item.gun_bolter_digamma.name=迪伽马爆弹枪 +item.gun_calamity.name=希特勒的电锯 item.gun_calamity_ammo.name=.50BMG子弹 item.gun_calamity_dual.name=马鞍枪 item.gun_cryolator.name=冻结者 @@ -1416,6 +1675,7 @@ item.gun_darter.name=飞镖枪 item.gun_deagle.name=大手枪 item.gun_defabricator.name=毁灭者 item.gun_defabricator_ammo.name=毁灭者能量电池 +item.gun_detonator.name=激光引爆器 item.gun_emp.name=EMP射线 item.gun_emp_ammo.name=能量电池 item.gun_euthanasia.name=安乐死 @@ -1490,9 +1750,11 @@ item.gun_sauer.name=斯坦-索尔的猎枪 item.gun_skystinger.name=毒刺-The One Sky item.gun_spark.name=Spark Plug item.gun_spark_ammo.name=电磁弹 +item.gun_spas12.name=SPAS-12霰弹枪 item.gun_stinger.name=FIM-92毒刺导弹 item.gun_stinger_ammo.name=毒刺导弹 item.gun_super_shotgun.name="超级"猎枪 +item.gun_super_shotgun.desc=超级烂! item.gun_supershotgun.name=超级猎枪 item.gun_thompson.name=汤姆森冲锋枪 item.gun_uboinik.name=Uboinik @@ -1506,6 +1768,7 @@ item.gun_xvl1456.name=XVL1456陶子加农炮原型机 item.gun_xvl1456_ammo.name=贫化铀235子弹 item.gun_zomg.name=奇点能湮灭射线“ZOMG炮” item.hand_drill.name=手钻 +item.hand_drill_desh.name=Desh手钻 item.hazmat_boots.name=防辐射靴 item.hazmat_boots_grey.name=高性能防辐射靴 item.hazmat_boots_red.name=高级防辐射靴 @@ -1537,13 +1800,17 @@ item.hev_boots.name=HEV MarkIV 靴子 item.hev_plate.name=HEV MarkIV 胸甲 item.hev_helmet.name=HEV MarkIV 头盔 item.hev_legs.name=HEV MarkIV 护腿 +item.holotape_damaged.name=损坏的全息卡带 +item.holotape_image.name=全息卡带 item.horseshoe_magnet.name=马蹄形磁铁 item.hull_big_aluminium.name=大型铝壳 item.hull_big_steel.name=大型钢壳 item.hull_big_titanium.name=大型钛壳 item.hull_small_aluminium.name=小型铝壳 +item.hull_small_aluminium.desc=可插入钻孔石墨中 item.hull_small_steel.name=小型钢壳 item.igniter.name=点火器 +item.igniter.desc=(鼠标右键点击原型)$这是一个绿色金属手柄,带有$亮红色按钮和一个小盖子$在底部,缩写N.E.刻着美元。不管N.E.是谁,他对绿色的色调很有品味。 item.industrial_magnet.name=工业磁铁 item.inf_antimatter.name=无限反物质罐 item.inf_antischrabidium.name=无限反Sa326罐 @@ -1561,17 +1828,21 @@ item.ingot_am_mix.name=反应堆级镅锭 item.ingot_am241.name=镅-241锭 item.ingot_am242.name=镅-242锭 item.ingot_americium_fuel.name=镅燃料锭 +item.ingot_arsenic.name=砷锭 item.ingot_asbestos.name=石棉板 +item.ingot_asbestos.desc=§o\“充满了生命、自我怀疑和石棉。这是空气带来的。\”§r item.ingot_au198.name=金-198锭 item.ingot_australium.name=奥斯锭 item.ingot_bakelite.name=电木锭 item.ingot_beryllium.name=铍锭 item.ingot_bismuth.name=铋锭 item.ingot_boron.name=硼锭 +item.ingot_c4.name=一块C-4 item.ingot_chainsteel.name=重链钢 item.ingot_co60.name=钴-60锭 item.ingot_cobalt.name=钴锭 item.ingot_combine_steel.name=CMB钢锭 +item.ingot_combine_steel.desc=*在此处插入民事保护参考* item.ingot_copper.name=工业级铜 item.ingot_daffergon.name=达夫贡锭 item.ingot_desh.name=Desh锭 @@ -1579,10 +1850,16 @@ item.ingot_dineutronium.name=双聚中子态素锭 item.ingot_dura_steel.name=高速钢锭 item.ingot_electronium.name=电素锭 item.ingot_euphemium.name=Ep锭 +item.ingot_euphemium.desc=一个非常特殊但又奇怪的元素。 item.ingot_fiberglass.name=玻璃纤维 +item.ingot_fiberglass.desc=纤维含量高,玻璃含量高。身体需要的一切。 +item.ingot_gh336.name=Gh336锭 +item.ingot_gh336.desc=??的同事。 item.ingot_graphite.name=石墨锭 item.ingot_hes.name=高浓度Sa326燃料锭 item.ingot_lanthanium.name=半稳定镧锭 +item.ingot_lanthanium.desc=“镧” +item.ingot_lanthanium.desc.P11=实际上就是镧,无论怎么说。 item.ingot_lead.name=铅锭 item.ingot_les.name=低浓度Sa326燃料锭 item.ingot_magnetized_tungsten.name=磁化钨锭 @@ -1590,43 +1867,51 @@ item.ingot_meteorite.name=陨石锭 item.ingot_meteorite_forged.name=锻造陨石锭 item.ingot_mox_fuel.name=MOX燃料锭 item.ingot_neptunium.name=镎锭 +item.ingot_neptunium.desc=那是我最喜欢的! +item.ingot_neptunium.desc.P11=哇,吓人! item.ingot_neptunium_fuel.name=白磷锭 item.ingot_niobium.name=铌锭 -item.ingot_osmiridium.name=锇锭 +item.ingot_osmiridium.name=铱锇锭 +item.ingot_pb209.name=铅-209锭 item.ingot_phosphorus.name=白磷锭 item.ingot_plutonium.name=钚锭 item.ingot_plutonium_fuel.name=钚燃料锭 item.ingot_polonium.name=钋锭 item.ingot_polymer.name=聚合物锭 item.ingot_pu_mix.name=反应堆级钚锭 -item.ingot_pu238.name=钚238锭 -item.ingot_pu239.name=钚239锭 -item.ingot_pu240.name=钚240锭 +item.ingot_pu238.name=钚-238锭 +item.ingot_pu239.name=钚-239锭 +item.ingot_pu240.name=钚-240锭 item.ingot_pu241.name=钚-241锭 item.ingot_ra226.name=镭-226锭 item.ingot_red_copper.name=紫铜 item.ingot_reiium.name=雷恩锭 +item.ingot_rubber.name=橡胶锭 item.ingot_saturnite.name=土星锭 item.ingot_schrabidate.name=Sa酸铁锭 item.ingot_schrabidium.name=Sa326锭 item.ingot_schrabidium_fuel.name=Sa326燃料锭 item.ingot_schraranium.name=低丰度Sa326锭 +item.ingot_schraranium.desc=在Sa326嬗变器中由铀制成 item.ingot_semtex.name=塞姆汀塑胶炸药块 item.ingot_smore.name=S'more 锭 item.ingot_solinium.name=Sa327锭 -item.ingot_starmetal.name=§9星辉锭§r +item.ingot_sr90.name=锶-90锭 +item.ingot_starmetal.name=§9星辉锭§r item.ingot_steel.name=钢锭 item.ingot_steel_dusted.name=粉末钢锭 item.ingot_tantalium.name=钽锭 +item.ingot_tantalium.desc=“钽” +item.ingot_tantalium.desc.P11=又名钽。 item.ingot_tcalloy.name=锝-钢合金锭 item.ingot_technetium.name=锝-99锭 -item.ingot_th232.name=钍232锭 +item.ingot_th232.name=钍-232锭 item.ingot_thorium_fuel.name=钍燃料锭 item.ingot_titanium.name=钛锭 item.ingot_tungsten.name=钨锭 -item.ingot_u233.name=铀233锭 -item.ingot_u235.name=铀235锭 -item.ingot_u238.name=铀238锭 +item.ingot_u233.name=铀-233锭 +item.ingot_u235.name=铀-235锭 +item.ingot_u238.name=铀-238锭 item.ingot_u238m2.name=亚稳铀238-2锭 item.ingot_unobtainium.name=难得素锭 item.ingot_uranium.name=铀锭 @@ -1641,6 +1926,7 @@ item.insert_doxium.name=掺砷Doxium插板 item.insert_du.name=贫铀插板 item.insert_era.name=反应装甲插板 item.insert_esapi.name=ESAPI插板 +item.insert_ghiorsium.name=Gh插板 item.insert_kevlar.name=凯夫拉插板 item.insert_sapi.name=SAPI插板 item.insert_polonium.name=钋插板 @@ -1665,6 +1951,19 @@ item.key.name=钥匙 item.key_fake.name=伪造钥匙 item.key_kit.name=钥匙仿制套件 item.key_red.name=红色钥匙 +item.key_red.desc=探索另一边。 +item.key_red.desc.P11=§4e§r +item.kit_toolbox.name=工具箱 +item.kit_toolbox_empty.name=空工具箱 +item.laser_crystal_bismuth.desc=铋-钐-铀-钍晶体基质 +item.laser_crystal_bismuth.name=铋-钐-铀-钍激光晶体 +item.laser_crystal_cmb.desc=反Sa326被镶嵌在CMB-Sa326合金晶格 +item.laser_crystal_cmb.name=CMB-Sa326反物质激光晶体 +item.laser_crystal_co2.desc=二氧化碳被包裹在结晶的Desh中 +item.laser_crystal_co2.name=CO2-Desh激光晶体 +item.laser_crystal_digamma.name=Digamma激光晶体 +item.laser_crystal_dnt.desc=双聚态中子-Spark费米子超晶体 +item.laser_crystal_dnt.name=Spark激光晶体 item.lead_gavel.name=铅槌 item.lemon.name="柠檬" item.letter.name=快捷邮件 @@ -1697,6 +1996,7 @@ item.mask_piss.name=战壕面具 item.mask_rag.name=粗糙防护面罩 item.matchstick.name=火柴 item.mech_key.name=大号银钥匙 +item.mech_key.desc=它充满力量。 item.mechanism_launcher_1.name=发射机构 item.mechanism_launcher_2.name=先进发射机构 item.mechanism_revolver_1.name=转轮机构 @@ -1763,16 +2063,26 @@ item.missile_rain.name=炸弹雨 item.missile_schrabidium.name=Sa326导弹 item.missile_shuttle.name=万金罗宾航天飞机 item.missile_skin_camo.name=导弹外壳:迷彩 +item.missile_skin_color.desc=我再也找不到我的导弹了! item.missile_skin_desert.name=导弹外壳:沙漠迷彩 +item.missile_skin_desert.desc=看起来像沙子,尝起来像金属。 item.missile_skin_flames.name=导弹外壳:火焰 +item.missile_skin_flames.desc=不同凡响的! item.missile_skin_manly_pink.name=导弹外壳:猛男粉 +item.missile_skin_manly_pink.desc=粉色,最有男子气概的颜色。 item.missile_skin_metal.name=导弹外壳:全金属外壳 +item.missile_skin_metal.desc=金属板和金属螺栓,用金属加固。 item.missile_skin_orange_insulation.name=导弹外壳:橙色绝缘 +item.missile_skin_orange_insulation.desc=不是橙汁瓶$不要试图喝里面的东西。 item.missile_skin_sleek.name=导弹外壳:IF-R&D +item.missile_skin_sleek.desc=V字形很酷! item.missile_skin_soviet_glory.name=导弹外壳:苏联荣耀 +item.missile_skin_soviet_glory.desc=услуга перевода недоступна item.missile_skin_soviet_stank.name=导弹外壳:苏维埃不朽 +item.missile_skin_soviet_stank.desc=这个真的很有60年代的味道。 item.missile_soyuz.name=联盟-FG运载火箭 item.missile_soyuz_lander.name=联盟号轨道舱 +item.missile_soyuz_lander.desc=劣质着陆器! item.missile_strong.name=强化型高爆导弹 item.missile_taint.name=污染导弹 item.missile_volcano.name=构造导弹 @@ -1827,9 +2137,9 @@ item.mp_fuselage_10_solid_sleek.name=10号弹体[固体燃料] item.mp_fuselage_10_solid_soviet_glory.name=10号弹体[固体燃料] item.mp_fuselage_10_xenon.name=10号弹体[氙] item.mp_fuselage_10_xenon_bhole.name=10号弹体[氙] -item.mp_fuselage_15_20_kerosene.name=15号/20 弹体[煤油] -item.mp_fuselage_15_20_kerosene_magnusson.name=15号/20 弹体[煤油] -item.mp_fuselage_15_20_solid.name=15号/20 弹体[固体燃料] +item.mp_fuselage_15_20_kerosene.name=15/20号弹体[煤油] +item.mp_fuselage_15_20_kerosene_magnusson.name=15/20号弹体[煤油] +item.mp_fuselage_15_20_solid.name=15/20号弹体[固体燃料] item.mp_fuselage_15_balefire.name=15号弹体[野火燃料] item.mp_fuselage_15_hydrogen.name=15号弹体[液氢] item.mp_fuselage_15_hydrogen_cathedral.name=15号弹体[液氢] @@ -1931,10 +2241,12 @@ item.nuclear_waste_short_depleted_tiny.name=小撮腐化的短半衰期核废料 item.nuclear_waste_vitrified.name=玻璃化核废料 item.nuclear_waste_vitrified_tiny.name=小撮玻璃化核废料 item.nugget.name=鸡块 +item.nugget_actinium.name=锕-227粒 item.nugget_am_mix.name=反应堆级镅粒 item.nugget_am241.name=镅-241粒 item.nugget_am242.name=镅-242粒 item.nugget_americium_fuel.name=镅燃料粒 +item.nugget_arsenic.name=砷粒 item.nugget_au198.name=金-198粒 item.nugget_australium.name=奥斯粒 item.nugget_australium_greater.name=富集奥斯粒 @@ -1942,38 +2254,48 @@ item.nugget_australium_lesser.name=贫化奥斯粒 item.nugget_beryllium.name=铍粒 item.nugget_bismuth.name=铋粒 item.nugget_co60.name=钴-60粒 +item.nugget_cobalt.name=钴粒 item.nugget_daffergon.name=达夫贡粒 item.nugget_desh.name=Desh粒 item.nugget_dineutronium.name=双聚中子态素粒 item.nugget_euphemium.name=Ep粒 +item.nugget_euphemium.desc=一小块粉红色的金属$它的属性仍然未知,请小心处理。 +item.nugget_gh336.name=Gh336粒 +item.nugget_gh336.desc=??的同事。 item.nugget_hes.name=高浓度Sa326燃料粒 item.nugget_lead.name=铅粒 item.nugget_les.name=低浓度Sa326燃料粒 +item.nugget_mercury_tiny.name=一小滴水银 item.nugget_mercury.name=一滴水银 item.nugget_mox_fuel.name=MOX燃料粒 +item.nugget_mox_fuel.desc=摩西说:§l逃税。§r item.nugget_neptunium.name=镎粒 item.nugget_neptunium_fuel.name=镎燃料粒 -item.nugget_osmiridium.name=锇粒 +item.nugget_osmiridium.name=铱锇粒 +item.nugget_pb209.name=铅-209粒 item.nugget_plutonium.name=钚粒 item.nugget_plutonium_fuel.name=钚燃料粒 item.nugget_polonium.name=钋粒 item.nugget_pu_mix.name=反应堆级钚粒 -item.nugget_pu238.name=钚238粒 -item.nugget_pu239.name=钚239粒 -item.nugget_pu240.name=钚240粒 +item.nugget_pu238.name=钚-238粒 +item.nugget_pu239.name=钚-239粒 +item.nugget_pu240.name=钚-240粒 item.nugget_pu241.name=钚-241粒 item.nugget_ra226.name=镭-226粒 item.nugget_reiium.name=魏丹粒 item.nugget_schrabidium.name=Sa326粒 item.nugget_schrabidium_fuel.name=Sa326燃料粒 item.nugget_solinium.name=Sa327粒 +item.nugget_sr90.name=锶-90粒 item.nugget_tantalium.name=钽粒 +item.nugget_tantalium.desc=“钽” +item.nugget_tantalium.desc.P11=又名钽。 item.nugget_technetium.name=锝-99粒 item.nugget_th232.name=钍232粒 item.nugget_thorium_fuel.name=钍燃料粒 -item.nugget_u233.name=铀233粒 -item.nugget_u235.name=铀235粒 -item.nugget_u238.name=铀238粒 +item.nugget_u233.name=铀-233粒 +item.nugget_u235.name=铀-235粒 +item.nugget_u238.name=铀-238粒 item.nugget_unobtainium.name=难得素粒 item.nugget_uranium.name=铀粒 item.nugget_uranium_fuel.name=铀燃料粒 @@ -1991,8 +2313,11 @@ item.oil_detector.desc2=探测仪只会发现大片油田 item.oil_detector.bullseye=正下方发现油田! item.oil_detector.detected=附近存在油田 item.oil_detector.noOil=未发现油田 -item.oil_tar.name=煤焦油 +item.oil_tar.coal.name=煤焦油 +item.oil_tar.crude.name=焦油 +item.oil_tar.crack.name=裂化焦油 item.overfuse.name=奇异螺丝刀 +item.overfuse.desc=说啥? item.oxy_mask.name=氧气面罩 item.paa_boots.name=PaA "好鞋" item.paa_legs.name=PaA加固护腿 @@ -2008,6 +2333,9 @@ item.pancake.name=用废金属、螺栓和宝石粉做成的薄饼 item.part_beryllium.name=铍粉盒 item.part_carbon.name=碳粉盒 item.part_copper.name=铜粉盒 +item.part_generic.piston_electric.name=电动活塞 +item.part_generic.piston_hydraulic.name=液压活塞 +item.part_generic.piston_pneumatic.name=气动活塞 item.part_lithium.name=锂粉盒 item.part_plutonium.name=钚粉盒 item.particle_aelectron.name=正电子胶囊 @@ -2021,11 +2349,12 @@ item.particle_empty.name=空粒子胶囊 item.particle_higgs.name=希格斯玻色子胶囊 item.particle_hydrogen.name=氢离子胶囊 item.particle_lead.name=铅离子胶囊 -item.particle_lutece.name=Lutece准粒子 +item.particle_lutece.name=Lutece镥准粒子胶囊 item.particle_muon.name=μ介子胶囊 item.particle_sparkticle.name=Spark粒子胶囊 item.particle_strange.name=奇夸克胶囊 item.particle_tachyon.name=超光速粒子密封胶囊 +item.parts_legendary.name=传奇零件 item.peas.name=豌豆 item.pedestal_steel.name=钢底座 item.pellet_advanced.name=高级Watz性能增强剂 @@ -2033,14 +2362,16 @@ item.pellet_antimatter.name=反物质团 item.pellet_beryllium.name=铍慢化靶丸 item.pellet_buckshot.name=铅弹丸 item.pellet_canister.name=榴霰弹弹丸 -item.pellet_charged.name=电离粒子 +item.pellet_charged.name=电离粒子 item.pellet_chlorophyte.name=叶绿弹丸 item.pellet_claws.name=金属利爪 item.pellet_cluster.name=爆炸弹丸 +item.pellet_cluster.desc=用于多用途炸弹:$增加了一些额外的爆炸力! item.pellet_coal.name=致密煤 item.pellet_coolant.name=冷却液组 item.pellet_flechette.name=箭霰弹 item.pellet_gas.name=毒气筒 +item.pellet_gas.desc=用于多用途炸弹:$*咳嗽*请停止! item.pellet_hes.name=HES Watz靶丸 item.pellet_lead.name=铅反射靶丸 item.pellet_les.name=LES Watz靶丸 @@ -2049,26 +2380,59 @@ item.pellet_mes.name=MES Watz靶丸 item.pellet_meteorite.name=陨石弹丸 item.pellet_neptunium.name=镎Watz靶丸 item.pellet_rtg.name=钚238放射性同位素燃料靶丸 +item.pellet_rtg.desc=无限能量的RTG靶丸!(差不多) item.pellet_rtg_actinium.name=锕放射性同位素燃料靶丸 +item.pellet_rtg_actinium.desc= item.pellet_rtg_americium.name=镅-241放射性同位素燃料靶丸 +item.pellet_rtg_americium.desc=稀有可靠,好的老镅! item.pellet_rtg_berkelium.name=锫放射性同位素燃料靶丸 +item.pellet_rtg_berkelium.desc= +item.pellet_rtg_cobalt.name=钴-60放射性同位素燃料靶丸 +item.pellet_rtg_cobalt.desc=不是最好的RTG,但对伽马辐射很好! +item.pellet_rtg_depleted.bismuth.name=枯竭铋放射性同位素燃料靶丸 +item.pellet_rtg_depleted.lead.name=枯竭铅放射性同位素燃料靶丸 +item.pellet_rtg_depleted.neptunium.name=枯竭镎放射性同位素燃料靶丸 +item.pellet_rtg_depleted.mercury.name=枯竭汞放射性同位素燃料靶丸 +item.pellet_rtg_depleted.nickel.name=枯竭镍放射性同位素燃料靶丸 +item.pellet_rtg_depleted.zirconium.name=枯竭锆放射性同位素燃料靶丸 +item.pellet_rtg_lead.name=铅-209 放射性同位素燃料靶丸 +item.pellet_rtg_lead.desc=接触会导致立即死亡。 item.pellet_rtg_gold.name=金-198放射性同位素燃料靶丸 +item.pellet_rtg_gold.desc=由稀有的、高度不稳定的金同位素制成。 item.pellet_rtg_polonium.name=钋210放射性同位素燃料靶丸 +item.pellet_rtg_polonium.desc=更多粉末状RTG靶丸,由最好的钋制成! item.pellet_rtg_strontium.name=锶-90放射性同位素燃料靶丸 +item.pellet_rtg_strontium.desc= +item.pellet_rtg_radium.name=镭-226放射性同位素燃料靶丸 +item.pellet_rtg_radium.desc=伟大的启动靶丸,来自全天然镭! item.pellet_rtg_weak.name=贫铀放射性同位素燃料靶丸 +item.pellet_rtg_weak.desc=更便宜更弱的靶丸,含有更多的铀238! item.pellet_schrabidium.name=纯Sa326Watz靶丸 item.photo_panel.name=光伏板 item.pile_rod_boron.name=芝加哥反应堆 控制棒 +item.pile_rod_boron.desc=§9[中子吸收器]$§E单击以切换 +item.pile_rod_detector.name=芝加哥反应堆控制/探测棒 +item.pile_rod_detector.desc=§9[中子探测器/吸收器]$§e使用拆弹器增加/减少中子通量限值$§e使用螺丝刀检查中子通量 +item.pile_rod_lithium.name=芝加哥反应堆锂燃料棒 +item.pile_rod_lithium.desc=§a[可增殖燃料棒]$§e使用手钻检查棒芯 item.pile_rod_plutonium.name=芝加哥反应堆 钚棒 -item.pile_rod_source.name=芝加哥反应堆 Ra226Be中子源 +item.pile_rod_plutonium.desc=§d[中子源棒] +item.pile_rod_pu239.name=芝加哥反应堆增殖铀棒 +item.pile_rod_pu239.desc=§a[可反应核燃料]$§e富含钚-239 +item.pile_rod_source.name=芝加哥反应堆 镭226-铍中子源 +item.pile_rod_source.desc=§d[中子源棒] item.pile_rod_uranium.name=芝加哥反应堆 铀棒 +item.pile_rod_uranium.desc=§a[可反应核燃料]$§e使用手钻取堆芯样本 item.pill_iodine.name=碘丸 item.pin.name=发夹 +item.pin.desc=“*未修改*撬开标准锁的成功率约为10%。 item.pipes_steel.name=钢管 item.pipes_steel.desc=为了避免合成冲突,所以造价如此高昂 item.pirfenidone.name=吡咯菲酮 item.piston_selenium.name=星型发动机活塞 item.plan_c.name=C计划 +item.plant_item.rope.name=麻绳 +item.plant_item.tobacco.name=烟叶 item.plate_advanced_alloy.name=高级合金板 item.plate_aluminium.name=铝板 item.plate_armor_ajr.name=铁皮装甲板 @@ -2077,12 +2441,21 @@ item.plate_armor_fau.name=Fau装甲板 item.plate_armor_hev.name=反应装甲板 item.plate_armor_lunar.name=月球镀层 item.plate_armor_titanium.name=钛装甲板 +item.plate_bismuth.name=铋复合板 +item.plate_bismuth.desc=伙计们,这是铋的炼金术符号,我发誓。 item.plate_combine_steel.name=CMB钢板 item.plate_copper.name=铜板 item.plate_dalekanium.name=愤怒的金属 item.plate_desh.name=Desh复合板 item.plate_dineutronium.name=双聚中子态素复合板 item.plate_euphemium.name=Ep复合板 +item.plate_fuel_mox.name=MOX 板状燃料 +item.plate_fuel_pu238be.name=钚238-铍 板状燃料 +item.plate_fuel_pu239.name=高浓度钚-239 板状燃料 +item.plate_fuel_ra226be.name=镭226-铍 板状燃料 +item.plate_fuel_sa326.name=高浓度Sa326 板状燃料 +item.plate_fuel_u233.name=高浓度铀-233 板状燃料 +item.plate_fuel_u235.name=高浓度铀-235 板状燃料 item.plate_gold.name=金板 item.plate_iron.name=铁板 item.plate_kevlar.name=凯夫拉陶瓷复合材料 @@ -2100,12 +2473,15 @@ item.powder_actinium_tiny.name=小撮锕粉 item.powder_advanced_alloy.name=高级合金粉 item.powder_aluminium.name=铝粉 item.powder_asbestos.name=石棉粉 +item.powder_asbestos.desc=§o\"Sniffffffff- MHHHHHHMHHHHHHHHH\"§r item.powder_astatine.name=砹粉 item.powder_at209.name=砹-209粉 item.powder_au198.name=金-198粉 item.powder_australium.name=奥斯粉 +item.powder_bakelite.name=电木粉 item.powder_balefire.name=热核灰烬 item.powder_beryllium.name=铍粉 +item.powder_borax.name=硼砂 item.powder_boron.name=硼粉 item.powder_boron_tiny.name=小撮硼粉 item.powder_bromine.name=溴粉 @@ -2134,12 +2510,14 @@ item.powder_dineutronium.name=双聚中子态素粉 item.powder_dura_steel.name=高速钢粉 item.powder_emerald.name=绿宝石粉 item.powder_euphemium.name=Ep粉 +item.powder_euphemium.desc=粉红色$尝起来像草莓。 item.powder_fire.name=火焰粉 +item.powder_fire.desc=用于多用途炸弹:燃烧弹很有趣! item.powder_gold.name=金粉 item.powder_i131.name=碘-131粉 item.powder_i131_tiny.name=小撮碘-131粉 item.powder_ice.name=冷冻粉 -item.powder_impure_osmiridium.name=不纯锇粉 +item.powder_impure_osmiridium.name=不纯铱锇粉 item.powder_iodine.name=碘粉 item.powder_iron.name=铁粉 item.powder_lanthanium.name=镧粉 @@ -2163,6 +2541,7 @@ item.powder_paleogenite.name=古近纪岩石粉末 item.powder_paleogenite_tiny.name=小撮古近纪岩石粉末 item.powder_plutonium.name=钚粉 item.powder_poison.name=剧毒粉 +item.powder_poison.desc=用于多用途炸弹:警告:有毒! item.powder_polonium.name=钋粉 item.powder_polymer.name=聚合物粉 item.powder_power.name=能量粉 @@ -2174,10 +2553,14 @@ item.powder_schrabidate.name=Sa酸铁粉 item.powder_schrabidium.name=Sa326粉 item.powder_semtex_mix.name=塞姆汀塑胶炸药混合物 item.powder_spark_mix.name=Spark闪闪奥术混合物 +item.powder_sr90.name=锶-90粉 +item.powder_sr90_tiny.name=小撮锶-90粉末 item.powder_steel.name=钢粉 item.powder_steel_tiny.name=小撮钢粉 item.powder_strontium.name=锶粉 item.powder_tantalium.name=钽粉 +item.powder_tantalium.desc=“钽” +item.powder_tantalium.desc.P11=又名钽。 item.powder_tcalloy.name=锝-钢粉 item.powder_tektite.name=熔融石粉 item.powder_tennessine.name=Ts粉 @@ -2193,6 +2576,7 @@ item.powder_xe135.name=氙-135粉 item.powder_xe135_tiny.name=小撮氙-135粉 item.powder_yellowcake.name=黄饼 item.powder_zirconium.name=锆粉 +item.power_net_tool.name=电缆网络分析工具 item.primer_357.name=.357马格南底火[x24] item.primer_44.name=.44马格南底火[x24] item.primer_50.name=大口径底火[x12] @@ -2213,6 +2597,7 @@ item.rbmk_fuel_balefire.name=RBMK反应堆野火燃料棒 item.rbmk_fuel_balefire_gold.name=RBMK反应堆激活态金-198燃料棒 item.rbmk_fuel_drx.name=§cRBMK反应堆F迪伽马粒子燃料棒§r item.rbmk_fuel_empty.name=空 RBMK反应堆燃料棒 +item.rbmk_fuel_flashlead.name=RBMK反应堆闪光铅燃料棒 item.rbmk_fuel_hea241.name=HEA-241 RBMK反应堆高浓缩度镅-241燃料棒 item.rbmk_fuel_hea242.name=HEA-242 RBMK反应堆高浓缩度镅-242燃料棒 item.rbmk_fuel_heaus.name=HEAus RBMK反应堆高浓缩度奥斯燃料棒 @@ -2239,12 +2624,13 @@ item.rbmk_fuel_thmeu.name=ThMEU RBMK反应堆中浓缩度铀-235导向钍燃料 item.rbmk_fuel_ueu.name=NU RBMK反应堆未浓缩铀燃料棒 item.rbmk_fuel_zfb_am_mix.name=ZFB 燃料级镅RBMK反应堆燃料棒 item.rbmk_fuel_zfb_bismuth.name=ZFB 铋RBMK反应堆燃料棒 -item.rbmk_fuel_zfb_pu241.name=ZFB Pu-241RBMK反应堆燃料棒 +item.rbmk_fuel_zfb_pu241.name=ZFB 钚-241RBMK反应堆燃料棒 item.rbmk_lid.name=RBMK反应堆覆盖层 item.rbmk_lid_glass.name=RBMK反应堆玻璃覆盖层 item.rbmk_pellet_balefire.name=野火燃料芯块 item.rbmk_pellet_balefire_gold.name=激活态金-198燃料芯块 item.rbmk_pellet_drx.name=§cF迪伽马粒子燃料芯块§r +item.rbmk_pellet_flashlead.name=闪光铅燃料芯块 item.rbmk_pellet_hea241.name=HEA-241 高浓缩度镅-241料芯块 item.rbmk_pellet_hea242.name=HEA-242 高浓缩度镅-242燃料芯块 item.rbmk_pellet_heaus.name=HEAus 高浓缩度奥斯燃料芯块 @@ -2295,6 +2681,60 @@ item.robes_helmet.name=休闲兜帽 item.robes_legs.name=休闲裤 item.robes_plate.name=休闲毛衣 item.rocket_fuel.name=固体燃料[火箭推进剂] +item.rod_empty.name=空燃料棒 +item.rod.lithium.name=锂棒 +item.rod.tritium.name=氚棒 +item.rod.co.name=钴棒 +item.rod.co60.name=钴-60棒 +item.rod.ra226.name=镭-226棒 +item.rod.ac227.name=锕-227棒 +item.rod.th232.name=钍-232棒 +item.rod.thf.name=钍燃料棒 +item.rod.u235.name=铀-235棒 +item.rod.np237.name=镎-237棒 +item.rod.u238.name=铀-238棒 +item.rod.pu238.name=钚-238棒 +item.rod.pu239.name=钚-239棒 +item.rod.rgp.name=反应堆级钚棒 +item.rod.waste.name=核废料棒 +item.rod.lead.name=铅棒 +item.rod.uranium.name=铀棒 +item.rod_dual_empty.name=空双联燃料棒 +item.rod_dual.lithium.name=双联锂棒 +item.rod_dual.tritium.name=氚双棒 +item.rod_dual.co.name=双联钴棒 +item.rod_dual.co60.name=双联钴-60棒 +item.rod_dual.ra226.name=双联镭-226棒 +item.rod_dual.ac227.name=双联锕-227棒 +item.rod_dual.th232.name=双联钍-232棒 +item.rod_dual.thf.name=双联钍燃料棒 +item.rod_dual.u235.name=双联铀-235棒 +item.rod_dual.np237.name=双联镎-237棒 +item.rod_dual.u238.name=双联铀-238棒 +item.rod_dual.pu238.name=双联钚-238棒 +item.rod_dual.pu239.name=双联钚-239棒 +item.rod_dual.rgp.name=双联反应堆级钚棒 +item.rod_dual.waste.name=双联核废料棒 +item.rod_dual.lead.name=双联铅棒 +item.rod_dual.uranium.name=双联铀棒 +item.rod_quad_empty.name=空四联燃料棒 +item.rod_quad.lithium.name=四联锂棒 +item.rod_quad.tritium.name=四联氚棒 +item.rod_quad.co.name=四联钴棒 +item.rod_quad.co60.name=四联钴-60棒 +item.rod_quad.ra226.name=四联镭-226棒 +item.rod_quad.ac227.name=四联锕-227棒 +item.rod_quad.th232.name=四联钍-232棒 +item.rod_quad.thf.name=四联钍燃料棒 +item.rod_quad.u235.name=四联铀-235棒 +item.rod_quad.np237.name=四联镎-237棒 +item.rod_quad.u238.name=四联铀-238棒 +item.rod_quad.pu238.name=四联钚-238棒 +item.rod_quad.pu239.name=四联钚-239棒 +item.rod_quad.rgp.name=四联反应堆级钚棒 +item.rod_quad.waste.name=四联核废料棒 +item.rod_quad.lead.name=四联铅棒 +item.rod_quad.uranium.name=四联铀棒 item.rod_australium.name=奥斯棒 item.rod_balefire.name=野火燃料棒 item.rod_balefire_blazing.name=炽热的野火燃料棒 @@ -2303,7 +2743,6 @@ item.rod_daffergon.name=达夫贡棒 item.rod_dual_balefire.name=双联野火燃料棒 item.rod_dual_balefire_blazing.name=炽热的双联野火燃料棒 item.rod_dual_coolant.name=双联燃料棒[冷却液] -item.rod_dual_empty.name=空双联燃料棒 item.rod_dual_lead.name=双联铅棒 item.rod_dual_lithium.name=双联锂棒 item.rod_dual_mox_fuel.name=核反应堆 双联MOX燃料棒 @@ -2313,26 +2752,25 @@ item.rod_dual_plutonium.name=双联钚棒 item.rod_dual_plutonium_fuel.name=核反应堆 双联钚燃料棒 item.rod_dual_plutonium_fuel_depleted.name=核反应堆 双联枯竭钚燃料棒 item.rod_dual_polonium.name=双联钋棒 -item.rod_dual_pu238.name=双联钚238燃料棒 -item.rod_dual_pu239.name=双联钚239燃料棒 -item.rod_dual_pu240.name=双联钚240燃料棒 +item.rod_dual_pu238.name=双联钚-238燃料棒 +item.rod_dual_pu239.name=双联钚-239燃料棒 +item.rod_dual_pu240.name=双联钚-240燃料棒 item.rod_dual_schrabidium.name=双联Sa326燃料棒 item.rod_dual_schrabidium_fuel.name=核反应堆 双联Sa326燃料棒 item.rod_dual_schrabidium_fuel_depleted.name=双联枯竭Sa326燃料棒 item.rod_dual_solinium.name=双联Sa327燃料棒 -item.rod_dual_th232.name=双联钍232燃料棒 +item.rod_dual_th232.name=双联钍-232燃料棒 item.rod_dual_thorium_fuel.name=双联钍燃料棒 item.rod_dual_thorium_fuel_depleted.name=双联枯竭钍燃料棒 item.rod_dual_tritium.name=双联氚燃料棒 -item.rod_dual_u233.name=双联铀233燃料棒 -item.rod_dual_u235.name=双联铀235燃料棒 -item.rod_dual_u238.name=双联铀238燃料棒 +item.rod_dual_u233.name=双联铀-233燃料棒 +item.rod_dual_u235.name=双联铀-235燃料棒 +item.rod_dual_u238.name=双联铀-238燃料棒 item.rod_dual_uranium.name=双联铀棒 item.rod_dual_uranium_fuel.name=核反应堆 双联铀燃料棒 item.rod_dual_uranium_fuel_depleted.name=核反应堆 双联枯竭铀燃料棒 item.rod_dual_waste.name=双联核废料棒 item.rod_dual_water.name=双联燃料棒[水] -item.rod_empty.name=空燃料棒 item.rod_euphemium.name=Ep棒 item.rod_lead.name=铅棒 item.rod_lithium.name=锂棒 @@ -2344,13 +2782,12 @@ item.rod_plutonium.name=钚棒 item.rod_plutonium_fuel.name=核反应堆 钚燃料棒 item.rod_plutonium_fuel_depleted.name=核反应堆 枯竭钚燃料棒 item.rod_polonium.name=钋棒 -item.rod_pu238.name=钚238燃料棒 -item.rod_pu239.name=钚239燃料棒 -item.rod_pu240.name=钚240燃料棒 +item.rod_pu238.name=钚-238燃料棒 +item.rod_pu239.name=钚-239燃料棒 +item.rod_pu240.name=钚-240燃料棒 item.rod_quad_balefire.name=四联野火燃料棒 item.rod_quad_balefire_blazing.name=炽热的四联野火燃料棒 item.rod_quad_coolant.name=四联燃料棒[冷却液] -item.rod_quad_empty.name=空四联燃料棒 item.rod_quad_euphemium.name=枯竭的四联Sa326燃料棒 item.rod_quad_lead.name=四联铅棒 item.rod_quad_lithium.name=四联锂棒 @@ -2361,20 +2798,20 @@ item.rod_quad_plutonium.name=四联钚棒 item.rod_quad_plutonium_fuel.name=四联钚燃料棒 item.rod_quad_plutonium_fuel_depleted.name=四联枯竭钚燃料棒 item.rod_quad_polonium.name=四联钋棒 -item.rod_quad_pu238.name=四联钚238燃料棒 -item.rod_quad_pu239.name=四联钚239燃料棒 -item.rod_quad_pu240.name=四联钚240燃料棒 +item.rod_quad_pu238.name=四联钚-238燃料棒 +item.rod_quad_pu239.name=四联钚-239燃料棒 +item.rod_quad_pu240.name=四联钚-240燃料棒 item.rod_quad_schrabidium.name=四联Sa326燃料棒 item.rod_quad_schrabidium_fuel.name=核反应堆 四联Sa326燃料棒 item.rod_quad_schrabidium_fuel_depleted.name=核反应堆 四联枯竭Sa326燃料棒 item.rod_quad_solinium.name=四联Sa327燃料棒 -item.rod_quad_th232.name=四联钍232燃料棒 +item.rod_quad_th232.name=四联钍-232燃料棒 item.rod_quad_thorium_fuel.name=核反应堆 四联钍燃料棒 item.rod_quad_thorium_fuel_depleted.name=四联枯竭钍燃料棒 item.rod_quad_tritium.name=四联氚燃料棒 -item.rod_quad_u233.name=四联铀233燃料棒 -item.rod_quad_u235.name=四联铀235燃料棒 -item.rod_quad_u238.name=四联铀238燃料棒 +item.rod_quad_u233.name=四联铀-233燃料棒 +item.rod_quad_u235.name=四联铀-235燃料棒 +item.rod_quad_u238.name=四联铀-238燃料棒 item.rod_quad_uranium.name=四联铀棒 item.rod_quad_uranium_fuel.name=核反应堆 四联铀燃料棒 item.rod_quad_uranium_fuel_depleted.name=四联枯竭铀燃料棒 @@ -2385,13 +2822,13 @@ item.rod_schrabidium.name=Sa326燃料棒 item.rod_schrabidium_fuel.name=Sa326燃料棒 item.rod_schrabidium_fuel_depleted.name=核反应堆 枯竭Sa326燃料棒 item.rod_solinium.name=Sa327燃料棒 -item.rod_th232.name=钍232燃料棒 +item.rod_th232.name=钍-232燃料棒 item.rod_thorium_fuel.name=钍燃料棒 item.rod_thorium_fuel_depleted.name=核反应堆 枯竭钍燃料棒 item.rod_tritium.name=氚燃料棒 -item.rod_u233.name=铀233燃料棒 -item.rod_u235.name=铀235燃料棒 -item.rod_u238.name=铀238燃料棒 +item.rod_u233.name=铀-233燃料棒 +item.rod_u235.name=铀-235燃料棒 +item.rod_u238.name=铀-238燃料棒 item.rod_unobtainium.name=难得素棒 item.rod_uranium.name=铀棒 item.rod_uranium_fuel.name=核反应堆 铀燃料棒 @@ -2421,13 +2858,19 @@ item.rod_zirnox_u233_fuel_depleted.name=锆诺克斯 枯竭铀-233燃料棒 item.rod_zirnox_u235_fuel_depleted.name=锆诺克斯 枯竭铀-235燃料棒 item.rod_zirnox_les_fuel_depleted.name=锆诺克斯 枯竭LES低浓度Sa326燃料棒 item.rotor_steel.name=大型钢转子 +item.rpa_boots.name=动力装甲 靴子 +item.rpa_helmet.name=动力装甲 头盔 +item.rpa_legs.name=动力护甲 护腿 +item.rpa_plate.name=动力装甲 胸甲 item.rtg_unit.name=放射性同位素单元 +item.rubber_gloves.name=厚橡胶手套 item.rune_blank.name=空白催化剂基质 item.rune_dagaz.name=平衡催化剂基质 item.rune_hagalaz.name=粗催化剂基质 item.rune_isa.name=冷却催化剂基质 item.rune_jera.name=增殖催化剂基质 item.rune_thurisaz.name=添加剂催化剂基质 +item.safety_fuse.name=安全保险丝 item.sat_base.name=卫星基座 item.sat_chip.name=卫星ID芯片 item.sat_coord.name=卫星指示器 @@ -2460,7 +2903,11 @@ item.schrabidium_shovel.name=Sa326锹 item.schrabidium_sword.name=Sa326剑 item.scrap.name=废料 item.scrap_nuclear.name=放射性废料 +item.scrap_oil.name=油性废料 +item.scrap_plastic.name=塑料废料 item.screwdriver.name=螺丝刀 +item.screwdriver.desc=可以用来代替保险丝…… +item.screwdriver_desh.name=Desh螺丝刀 item.scrumpy.name=一瓶烈性苹果酒 item.security_boots.name=防护靴子 item.security_helmet.name=防护头盔 @@ -2486,11 +2933,14 @@ item.siox.name=SiOX抗癌药物 item.siren_track.name=警报声轨 item.smashing_hammer.name=粉碎锤 item.solid_fuel.name=固体燃料 +item.solid_fuel_presto.name=Presto固体燃料 +item.solid_fuel_presto_triplet.name=增强Presto固体燃料 item.solinium_core.name=半稳定Sa327核心 item.solinium_igniter.name=Sa327脉冲点火器 item.solinium_kit.name=蔚蓝洗礼套件 item.solinium_propellant.name=Sa327压缩装药 item.sopsign.name=Sop标志战斧 +item.spawn_duck.name=Golden Egg item.spawn_ufo.name=火星入侵者飞船 item.spawn_worm.name=机械蠕虫 item.sphere_steel.name=钢球 @@ -2539,6 +2989,10 @@ item.starmetal_shovel.name=星辉锹 item.starmetal_sword.name=星辉剑 item.static_sandwich.name=TV三明治 item.stealth_boy.name=隐形装置 +item.steamsuit_boots.name=蒸汽动力靴子 +item.steamsuit_helmet.name=蒸汽动力呼吸器头盔 +item.steamsuit_legs.name=蒸汽动力护腿 +item.steamsuit_plate.name=蒸汽动力胸甲 item.steel_axe.name=钢斧 item.steel_boots.name=钢靴子 item.steel_helmet.name=钢头盔 @@ -2548,6 +3002,10 @@ item.steel_pickaxe.name=钢镐 item.steel_plate.name=钢胸甲 item.steel_shovel.name=钢锹 item.steel_sword.name=钢剑 +item.stick_c4.name=C-4炸药棒 +item.stick_dynamite.name=炸药棒 +item.stick_semtex.name=塞姆汀塑胶炸药棒 +item.stick_tnt.name=TNT棒 item.stopsign.name=停车标志战斧 item.sulfur.name=硫粉 item.survey_scanner.name=勘测扫描仪 @@ -2609,6 +3067,7 @@ item.titanium_sword.name=钛剑 item.toothpicks.name=牙签 item.trinitite.name=玻璃石 item.tritium_deuterium_cake.name=氚氘饼 +item.tritium_deuterium_cake.desc=不是真正的蛋糕,而是很棒的$聚变燃料! item.tsar_core.name=沙皇炸弹核心 item.tsar_kit.name=沙皇炸弹 套件 item.turbine_titanium.name=钛汽轮转子 @@ -2627,6 +3086,7 @@ item.turret_tau_ammo.name=陶子炮塔铀弹药 item.twinkie.name=小蛋糕 item.ullapool_caber.name=阿勒浦长木杆 item.undefined.name=形态未定义物质 +item.upgrade_5g.name=5G辐射发射器升级 item.upgrade_afterburn_1.name=一级粉色机器升级 item.upgrade_afterburn_2.name=二级粉色机器升级 item.upgrade_afterburn_3.name=三级粉色机器升级 @@ -2635,9 +3095,13 @@ item.upgrade_crystallizer.name=采矿激光升级-自动结晶 item.upgrade_effect_1.name=一级绿色机器升级 item.upgrade_effect_2.name=二级绿色机器升级 item.upgrade_effect_3.name=三级绿色机器升级 +item.upgrade_ejector_1.name=Ejection Speed Upgrade Mk.I +item.upgrade_ejector_2.name=Ejection Speed Upgrade Mk.II +item.upgrade_ejector_3.name=Ejection Speed Upgrade Mk.III item.upgrade_fortune_1.name=一级紫色机器升级 item.upgrade_fortune_2.name=二级紫色机器升级 item.upgrade_fortune_3.name=三级紫色机器升级 +item.upgrade_gc_speed.name=气体离心机超频升级 item.upgrade_health.name=粉色力场发生器升级 item.upgrade_nullifier.name=采矿激光升级-自动销毁 item.upgrade_overdrive_1.name=一级超速传动机器升级 @@ -2653,6 +3117,9 @@ item.upgrade_smelter.name=采矿激光升级-自动熔炼 item.upgrade_speed_1.name=一级红色机器升级 item.upgrade_speed_2.name=二级红色机器升级 item.upgrade_speed_3.name=三级红色机器升级 +item.upgrade_stack_1.name=堆栈弹出升级Mk.I +item.upgrade_stack_2.name=堆栈弹出升级Mk.II +item.upgrade_stack_3.name=堆栈弹出升级Mk.III item.upgrade_template.name=机器升级模板 item.v1.name=V1 item.volcanic_pickaxe.name=熔岩镐 @@ -2678,22 +3145,22 @@ item.warhead_thermo_endo.name=吸热弹头 item.warhead_thermo_exo.name=放热弹头 item.warhead_volcano.name=构造弹头 item.waste_mox.name=枯竭MOX燃料 -item.waste_mox_hot.name=枯竭MOX燃料[热] item.waste_natural_uranium.name=枯竭天然铀燃料 -item.waste_natural_uranium_hot.name=枯竭天然铀燃料[热] +item.waste_plate_mox.name=枯竭MOX 板状燃料 +item.waste_plate_pu238be.name=枯竭钚238-铍 板状燃料 +item.waste_plate_pu239.name=枯竭高浓度钚-239 板状燃料 +item.waste_plate_ra226be.name=枯竭镭226-铍 板状燃料 +item.waste_plate_sa326.name=枯竭高浓度Sa326 板状燃料 +item.waste_plate_u233.name=枯竭高浓度铀-233 板状燃料 +item.waste_plate_u235.name=枯竭高浓度铀-235 板状燃料 item.waste_plutonium.name=枯竭钚燃料 -item.waste_plutonium_hot.name=枯竭钚燃料[热] item.waste_schrabidium.name=枯竭Sa326燃料 -item.waste_schrabidium_hot.name=枯竭Sa326燃料[热] item.waste_thorium.name=枯竭钍燃料 -item.waste_thorium_hot.name=枯竭钍燃料[热] item.waste_u235.name=枯竭铀-235燃料 -item.waste_u235_hot.name=枯竭铀-235燃料[热] item.waste_u233.name=枯竭铀-233燃料 -item.waste_u233_hot.name=枯竭铀-233燃料[热] item.waste_uranium.name=枯竭铀燃料 -item.waste_uranium_hot.name=枯竭铀燃料[热] item.watch.name=破旧怀表 +item.watch.desc=一块蓝色的小怀表$玻璃上有一些裂缝,还有一些碎片不见了$指针定格在了2点34分。 item.weapon_bat.name=板球棒 item.weapon_bat_nail.name=板上钉钉 item.weapon_golf_club.name=黑手党快乐杆 @@ -2730,6 +3197,7 @@ itemGroup.tabTemplate=HBM 模板 itemGroup.tabTest=HBM的核科技mod测试项[S166、Bismarck、nukesteve联合汉化] itemGroup.tabWeapon=HBM 武器和炮塔 potion.hbm_bang=! ! ! +potion.hbm_death=Heavy Mutation potion.hbm_lead=铅中毒 potion.hbm_mutation=变异 potion.hbm_phosphorus=磷烧伤 @@ -2759,6 +3227,7 @@ rbmk.rod.depletion=燃料消耗: %s rbmk.rod.xenon=氙元素堆积程度: %s rbmk.rod.coreTemp=核心温度: %s rbmk.rod.skinTemp=表面温度: %s / %s +soundCategory.ntmMachines=NTM机器 tile.absorber.name=辐射吸收器 tile.absorber_green.name=高级辐射吸收器 tile.absorber_pink.name=精英辐射吸收器 @@ -2775,6 +3244,7 @@ tile.anvil_iron.name=铁砧 tile.anvil_lead.name=铅砧 tile.anvil_meteorite.name=陨石砧 tile.anvil_murky.name=暗黑砧 +tile.anvil_osmiridium.name=铱锇合金砧 tile.anvil_schrabidate.name=Sa-铁合金砧 tile.anvil_starmetal.name=星辉金属砧 tile.anvil_steel.name=钢砧 @@ -2809,9 +3279,11 @@ tile.block_advanced_alloy.name=高级合金块 tile.block_aluminium.name=铝块 tile.block_asbestos.name=石棉块 tile.block_australium.name=奥斯块 +tile.block_bakelite.name=电木块 tile.block_beryllium.name=铍块 tile.block_bismuth.name=铋块 tile.block_boron.name=硼块 +tile.block_c4.name=C-4块 tile.block_cap_fritz.name=弗里茨瓶盖方块 tile.block_cap_korl.name=Korl瓶盖方块 tile.block_cap_nuka.name=核子可乐瓶盖方块 @@ -2839,11 +3311,14 @@ tile.block_fluorite.name=氟石块 tile.block_foam.name=泡沫 tile.block_insulator.name=绝缘卷 tile.block_graphite.name=石墨块 +tile.block_graphite_detector.name=反应堆中子探测棒 tile.block_graphite_drilled.name=钻孔石墨 tile.block_graphite_fuel.name=反应堆燃料 +tile.block_graphite_lithium.name=反应堆锂燃料 tile.block_graphite_plutonium.name=反应堆燃料(增殖) tile.block_graphite_rod.name=反应堆控制棒 tile.block_graphite_source.name=反应堆中子源 +tile.block_graphite_tritium.name=反应堆锂燃料(增殖) tile.block_lead.name=铅块 tile.block_lanthanium.name=镧块 tile.block_lithium.name=锂块 @@ -2861,14 +3336,16 @@ tile.block_niobium.name=铌块 tile.block_plutonium.name=钚块 tile.block_plutonium_fuel.name=钚燃料块 tile.block_polonium.name=钋块 +tile.block_polymer.name=聚合物块 tile.block_pu_mix.name=反应堆级钚块 -tile.block_pu238.name=钚238块 -tile.block_pu239.name=钚239块 -tile.block_pu240.name=钚240块 +tile.block_pu238.name=钚-238块 +tile.block_pu239.name=钚-239块 +tile.block_pu240.name=钚-240块 tile.block_ra226.name=镭-226块 tile.block_red_copper.name=紫铜块 tile.block_red_phosphorus.name=红磷块 tile.block_reiium.name=雷恩块 +tile.block_rubber.name=橡胶块 tile.block_schrabidate.name=Sa酸铁块 tile.block_schrabidium.name=Sa326块 tile.block_schrabidium_cluster.name=Sa326团 @@ -2889,8 +3366,8 @@ tile.block_trinitite.name=玻璃石块 tile.block_tritium.name=氚单元块 tile.block_tungsten.name=钨块 tile.block_u233.name=铀233块 -tile.block_u235.name=铀U235块 -tile.block_u238.name=铀U238块 +tile.block_u235.name=铀235块 +tile.block_u238.name=铀238块 tile.block_unobtainium.name=难得素块 tile.block_uranium.name=铀块 tile.block_uranium_fuel.name=铀燃料块 @@ -2933,11 +3410,20 @@ tile.brick_light.name=轻质砖块 tile.brick_obsidian.name=黑曜石砖块 tile.broadcaster_pc.name=腐败广播 tile.burning_earth.name=燃烧草地 +tile.c4.name=C-4 +tile.cable_detector.name=红石电源开关 +tile.cable_diode.name=紫铜二极管 tile.cable_switch.name=电源开关 +tile.charge_c4.name=炸药包 +tile.charge_dynamite.name=定时炸弹 +tile.charge_miner.name=定时采矿炸药 +tile.charge_semtex.name=Semtex采矿炸药 +tile.charger.name=充电站 tile.cheater_virus.name=冻结Ep tile.cheater_virus_seed.name=不稳定Ep Schrabide块 tile.chlorine_gas.name=氯气 tile.cluster_aluminium.name=铝矿簇 +tile.cluster_copper.name=铜矿簇 tile.cluster_depth_iron.name=深层铁矿簇 tile.cluster_depth_titanium.name=深层钛矿簇 tile.cluster_depth_tungsten.name=深层钨矿簇 @@ -2966,11 +3452,21 @@ tile.concrete_colored.white.name=白色混凝土 tile.concrete_colored.yellow.name=黄色混凝土 tile.concrete_pillar.name=钢筋混凝土柱 tile.concrete_smooth.name=混凝土 +tile.concrete_super.name=über混凝土 +tile.concrete_super_broken.name=发霉的碎片 +tile.conveyor.name=输送带 +tile.conveyor_chute.name=输送带滑槽 +tile.conveyor_double.name=双轨道输送带 +tile.conveyor_lift.name=垂直输送带 +tile.conveyor_triple.name=三轨道输送带 tile.corium_block.name=堆芯熔融物 +tile.crane_extractor.name=输送带提取器 +tile.crane_inserter.name=输送带导入器 tile.crashed_bomb.name=哑弹 tile.crate.name=补给箱 tile.crate_ammo.name=星辉补给箱 tile.crate_can.name=罐头补给箱 +tile.crate_desh.name=Desh板条箱 tile.crate_iron.name=铁箱 tile.crate_jungle.name=硫砷钢箱 tile.crate_lead.name=危险品补给箱 @@ -2985,6 +3481,7 @@ tile.crystal_virus.name=黑水晶 tile.deco_aluminium.name=铝装饰块 tile.deco_asbestos.name=石棉瓦 tile.deco_beryllium.name=铍装饰块 +tile.deco_emitter.name=Deco发光体 tile.deco_lead.name=铅装饰块 tile.deco_rbmk.name=RBMK装饰块 tile.deco_rbmk_smooth.name=平滑RBMK装饰块 @@ -3039,6 +3536,7 @@ tile.ducrete_smooth.name=高密度贫铀混凝土 tile.dummy_block.name=虚拟方块 tile.dummy_port.name=虚拟方块[电力接口] tile.dungeon_chain.name=金属链 +tile.dynamite.name=炸药 tile.emp_bomb.name=EMP炸弹 tile.factory_advanced_conductor.name=高级工厂电力端口 tile.factory_advanced_core.name=高级工厂核心组件 @@ -3058,6 +3556,7 @@ tile.fireworks.color=颜色: %s tile.flame_war.name=盒中论战 tile.float_bomb.name=悬浮炸弹 tile.fluid_duct.name=通用流体管道 +tile.fluid_duct_solid.name=带涂层的通用流体导管 tile.foam_layer.name=泡沫层 tile.fraction_spacer.name=分馏塔分隔器 tile.frozen_dirt.name=冰冻土 @@ -3148,12 +3647,15 @@ tile.lamp_tritium_green_off.name=绿色氚灯 tile.lamp_tritium_green_on.name=绿色氚灯 tile.launch_pad.name=导弹发射台 tile.launch_table.name=大型发射台 +tile.leaves_layer.name=落叶 tile.lox_barrel.name=液氧桶 tile.machine_amgen.name=环境辐射发电机 tile.machine_arc_furnace_off.name=电弧炉 tile.machine_arc_furnace_on.name=电弧炉 tile.machine_armor_table.name=装甲改装台 tile.machine_assembler.name=装配机 +tile.machine_assemfac.name=装配厂 +tile.machine_autocrafter.name=自动工作台 tile.machine_bat9000.name=巨尻-9000 储罐 tile.machine_battery.name=蓄电池 tile.machine_battery_potato.name=马铃薯电池组 @@ -3163,6 +3665,7 @@ tile.machine_boiler_off.name=锅炉 tile.machine_boiler_on.name=锅炉 tile.machine_catalytic_cracker.name=催化裂化塔 tile.machine_centrifuge.name=离心机 +tile.machine_chemfac.name=Chemical Factory tile.machine_chemplant.name=化工厂 tile.machine_chungus.name=“利维坦”巨型汽轮机 tile.machine_coal_off.name=火力发电机 @@ -3187,6 +3690,7 @@ tile.machine_drill.name=自动采矿钻机 tile.machine_electric_furnace_off.name=电炉 tile.machine_electric_furnace_on.name=电炉 tile.machine_epress.name=电动锻压机 +tile.machine_fel.name=FEL自由电子激光器 tile.machine_fensu.name=FEnSU飞轮储能系统 tile.machine_flare.name=高架火炬 tile.machine_fluidtank.name=储罐 @@ -3199,6 +3703,7 @@ tile.machine_geo.name=地热发电机 tile.machine_industrial_generator.name=工业发电机 tile.machine_keyforge.name=锁匠桌 tile.machine_large_turbine.name=工业汽轮机 +tile.machine_liquefactor.name=工业液化机 tile.machine_lithium_battery.name=锂蓄电池 tile.machine_microwave.name=微波炉 tile.machine_mining_laser.name=采矿激光 @@ -3213,8 +3718,8 @@ tile.machine_puf6_tank.name=六氟化钚储罐 tile.machine_pumpjack.name=石油钻机 tile.machine_radar.name=雷达 tile.machine_radgen.name=辐射能量发电机 +tile.machine_radiolysis.name=放射性同位素热电机和辐射裂解室 tile.machine_reactor.name=增殖反应堆 -tile.machine_reactor_on.name=增殖反应堆 tile.machine_reactor_small.name=核反应堆 tile.machine_refinery.name=炼油厂 tile.machine_reix_mainframe.name=Rei-X主机[开发中] @@ -3236,6 +3741,7 @@ tile.machine_shredder.name=粉碎机 tile.machine_silex.name=激光同位素分离室 tile.machine_siren.name=警报器 tile.machine_solar_boiler.name=太阳能锅炉 +tile.machine_solidifier.name=工业固化机 tile.machine_spp_bottom.name=ZPE电位发生器 [底部] tile.machine_spp_top.name=ZPE电位发生器 [顶部] tile.machine_storage_drum.name=核废料处理桶 @@ -3254,6 +3760,7 @@ tile.machine_waste_drum.name=乏燃料池 tile.machine_well.name=钻油塔 tile.machine_zirnox.name=锆诺克斯核反应堆 tile.marker_structure.name=多方块结构信标 +tile.mass_storage.name=大规模存储单元 tile.meteor_battery.name=星辉静电发生器 tile.meteor_brick.name=陨石砖 tile.meteor_brick_chiseled.name=錾制陨石砖 @@ -3286,6 +3793,7 @@ tile.nuke_tsar.name=沙皇炸弹 tile.oil_duct.name=输油管 tile.oil_duct_solid.name=粗输油管 tile.oil_pipe.name=原油抽取管 +tile.ore_alexandrite.name=亚历山大变石矿 tile.ore_aluminium.name=铝矿石 tile.ore_asbestos.name=石棉矿 tile.ore_australium.name=奥斯矿石 @@ -3299,6 +3807,7 @@ tile.ore_cobalt.name=钴矿石 tile.ore_coltan.name=钶钽铁矿 tile.ore_copper.name=铜矿石 tile.ore_daffergon.name=达夫贡矿石 +tile.ore_depth_borax.name=深层硼砂矿 tile.ore_depth_cinnebar.name=深层朱砂矿石 tile.ore_depth_nether_neodymium.name=深层钕矿石 tile.ore_depth_zirconium.name=深层锆矿石 @@ -3339,6 +3848,7 @@ tile.ore_niter.name=硝石矿石 tile.ore_oil.name=油岩 tile.ore_oil_empty.name=空油岩 tile.ore_oil_sand.name=沥青砂 +tile.ore_random.name=%s Ore tile.ore_rare.name=稀土矿石 tile.ore_reiium.name=雷恩矿石 tile.ore_schrabidium.name=Sa326矿石 @@ -3358,10 +3868,15 @@ tile.pink_log.name=粉色原木 tile.pink_planks.name=粉色木板 tile.pink_slab.name=粉色木半砖 tile.pink_stairs.name=粉色木台阶 +tile.plant_flower.foxglove.name=毛地黄 +tile.plant_flower.nightshade.name=致命茄 +tile.plant_flower.tobacco.name=烟草厂 +tile.plant_flower.weed.name=大麻 tile.plasma.name=等离子 tile.plasma_heater.name=等离子加热器 tile.pole_satellite_receiver.name=卫星天线 tile.pole_top.name=天线顶部 +tile.press_preheater.name=锻压机压力预热器 tile.pribris.name=RBMK石墨式反应堆残骸 tile.pribris_burning.name=燃烧的RBMK反应堆残骸 tile.pribris_digamma.name=发黑的RBMK反应堆残骸 @@ -3370,6 +3885,8 @@ tile.radiobox.name=无线怪物清除箱 tile.radiorec.name=坏掉的收音机 tile.rail_booster.name=高速动力轨道 tile.rail_highspeed.name=高速轨道 +tile.rail_narrow.name=窄轨距轨道 +tile.rail_wood.name=木制轨道 tile.rbmk_absorber.name=RBMK反应堆硼中子吸收器 tile.rbmk_blank.name=RBMK反应堆结构柱 tile.rbmk_boiler.name=RBMK反应堆蒸汽管道 @@ -3379,6 +3896,8 @@ tile.rbmk_control.name=RBMK反应堆控制棒 tile.rbmk_control_auto.name=RBMK反应堆自动控制棒 tile.rbmk_control_mod.name= RBMK反应堆慢化控制棒 tile.rbmk_crane_console.name=RBMK起重机控制台 +tile.rbmk_heater.name=RBMK流体加热器 +tile.rbmk_heatex.name=RBMK换热器 tile.rbmk_loader.name=RBMK反应堆蒸汽导出器 tile.rbmk_moderator.name=RBMK反应堆石墨慢化剂 tile.rbmk_outgasser.name=RBMK反应堆辐照通道 @@ -3399,8 +3918,10 @@ tile.reactor_hatch.name=反应堆端口 tile.reactor_inserter.name=反应堆燃料插入器 tile.red_barrel.name=炸药桶 tile.red_cable.name=紫铜电线 +tile.red_cable_classic.name=紫铜电缆(经典型) tile.red_connector.name=电力连接器 tile.red_pylon.name=电线杆 +tile.red_pylon_large.name=大型输电塔 tile.red_wire_coated.name=密封紫铜电缆 tile.reinforced_brick.name=强化石头 tile.reinforced_ducrete.name=加固高密度贫铀混凝土 @@ -3441,10 +3962,15 @@ tile.sellafield_3.name=灼热的放射性熔融凝固物 tile.sellafield_4.name=地狱般的放射性熔融凝固物 tile.sellafield_core.name=放射性熔融凝固物核心 tile.sellafield_slaked.name=消沉的放射性熔融凝固物 +tile.semtex.name=塞姆汀塑胶炸药 tile.solar_mirror.name=定日镜 tile.soyuz_capsule.name=货物着陆舱 tile.soyuz_launcher.name=联盟号发射平台 tile.spikes.name=地刺 +tile.stalactite.asbestos.name=石棉钟乳石 +tile.stalactite.sulfur.name=含硫钟乳石 +tile.stalagmite.asbestos.name=石棉石笋 +tile.stalagmite.sulfur.name=含硫石笋 tile.steel_beam.name=钢梁 tile.steel_corner.name=钢墙角 tile.steel_grate.name=钢格栅 @@ -3452,10 +3978,13 @@ tile.steel_poles.name=钢杆 tile.steel_roof.name=钢天花顶 tile.steel_scaffold.name=钢脚手架 tile.steel_wall.name=钢墙 +tile.stone_cracked.name=破碎的石头 tile.stone_depth.name=深层岩石 tile.stone_depth_nether.name=下界深层岩石 tile.stone_gneiss.name=石墨页岩 tile.stone_porous.name=多孔石 +tile.stone_resource.asbestos.name=温石棉 +tile.stone_resource.sulfur.name=硫磺石 tile.struct_iter_core.name=聚变反应堆核心组件 tile.struct_launcher.name=发射台部件 tile.struct_launcher_core.name=紧凑型发射台核心组件 @@ -3463,6 +3992,7 @@ tile.struct_launcher_core_large.name=发射台核心组件 tile.struct_plasma_core.name=等离子加热器核心组件 tile.struct_scaffold.name=发射台骨架 tile.struct_soyuz_core.name=联盟号发射器核心组件 +tile.substation.name=变电站 tile.taint.name=腐质 tile.taint_barrel.name=IMP残渣桶 tile.tape_recorder.name=录音机 @@ -3474,7 +4004,9 @@ tile.therm_exo.name=放热炸弹 tile.tile_lab.name=实验室瓷砖 tile.tile_lab_broken.name=破损实验室瓷砖 tile.tile_lab_cracked.name=开裂实验室瓷砖 +tile.tnt_ntm.name=货真价实的TNT tile.toxic_block.name=绿色软泥 +tile.transition_seal.name=巨型安全门 tile.turret_cheapo.name=奇普-加特林哨兵 tile.turret_chekhov.name=重机枪炮塔“契诃夫的枪” tile.turret_cwis.name=Mk-15“密集阵”近防系统 @@ -3516,9 +4048,9 @@ tile.watz_element.name=Watz反应室 tile.watz_end.name=Watz反应堆稳定元件 tile.watz_hatch.name=Watz反应堆端口 tile.yellow_barrel.name=核废料桶 +tile.zirnox_destroyed.name=损毁的ZINROX trait.asbestos=石棉 trait.blinding=致盲 -trait.breeding=可在增殖反应堆中工作 %s 次 trait.coal=煤尘 trait.digamma=迪伽马辐射 trait.drop=掉落物危险 @@ -3578,11 +4110,24 @@ tool.ability.recursion=连锁挖矿 tool.ability.shredder=自动粉碎 tool.ability.silktouch=精准采集 tool.ability.smelter=自动熔炼 +wavelengths.name.ir=红外线 +wavelengths.name.visible=可见光 +wavelengths.name.uv=紫外线 +wavelengths.name.gamma=伽马射线 +wavelengths.name.drx=迪伽玛 +wavelengths.waveRange.ir=780nm-1mm +wavelengths.waveRange.visible=400nm-780nm +wavelengths.waveRange.uv=100nm-400nm +wavelengths.waveRange.gamma=<100pm +wavelengths.waveRange.drx=1916169普朗克长度 weapon.ability.beheader=斩首 +weapon.ability.bobble=收藏家之运 weapon.ability.chainsaw=痛苦面"锯" weapon.ability.fire=燃烧 weapon.ability.radiation=辐射 weapon.ability.phosphorus=白磷刀刃 weapon.ability.stun=震撼 weapon.ability.vampire=吸血 +hadron.error=错误! +container.reactor=增殖反应堆 death.attack.subAtomic=%1$s 的原子被 %2$s 摧毁 \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/machines/furnace_iron.obj b/src/main/resources/assets/hbm/models/machines/furnace_iron.obj new file mode 100644 index 000000000..5fe9f036e --- /dev/null +++ b/src/main/resources/assets/hbm/models/machines/furnace_iron.obj @@ -0,0 +1,608 @@ +# Blender v2.79 (sub 0) OBJ File: 'furnace_iron.blend' +# www.blender.org +o On +v -0.500000 0.125000 0.937500 +v 0.500000 0.125000 0.937500 +v -0.500000 0.125000 0.687500 +v 0.500000 0.125000 0.687500 +v -0.500000 0.562500 0.937500 +v -0.437500 0.625000 0.937500 +v 0.437500 0.625000 0.937500 +v 0.500000 0.562500 0.937500 +v -0.437500 0.625000 0.687500 +v -0.500000 0.562500 0.687500 +v 0.500000 0.562500 0.687500 +v 0.437500 0.625000 0.687500 +vt 0.955128 0.500000 +vt 0.955128 0.602941 +vt 0.948718 0.617647 +vt 0.852564 0.500000 +vt 0.826923 0.602941 +vt 0.826923 0.500000 +vt 0.980769 0.500000 +vt 0.980769 0.602941 +vt 0.858974 0.617647 +vt 0.948718 0.676471 +vt 0.858974 0.676471 +vt 0.826923 0.617647 +vt 0.852564 0.602941 +vt 0.852564 0.617647 +vt 0.955128 0.617647 +vt 0.980769 0.617647 +vn 0.0000 0.0000 1.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.7071 -0.7071 0.0000 +vn -0.7071 -0.7071 0.0000 +s off +f 4/1/1 11/2/1 12/3/1 +f 3/4/2 5/5/2 1/6/2 +f 11/2/3 2/7/3 8/8/3 +f 9/9/4 7/10/4 6/11/4 +f 6/12/5 10/13/5 9/14/5 +f 12/15/6 8/8/6 7/16/6 +f 12/3/1 9/9/1 4/1/1 +f 9/9/1 10/13/1 3/4/1 +f 4/1/1 9/9/1 3/4/1 +f 3/4/2 10/13/2 5/5/2 +f 11/2/3 4/1/3 2/7/3 +f 9/9/4 12/3/4 7/10/4 +f 6/12/5 5/5/5 10/13/5 +f 12/15/6 11/2/6 8/8/6 +o Off +v -0.500000 0.125000 0.937500 +v 0.500000 0.125000 0.937500 +v -0.500000 0.125000 0.687500 +v 0.500000 0.125000 0.687500 +v -0.500000 0.562500 0.937500 +v -0.437500 0.625000 0.937500 +v 0.437500 0.625000 0.937500 +v 0.500000 0.562500 0.937500 +v -0.437500 0.625000 0.687500 +v -0.500000 0.562500 0.687500 +v 0.500000 0.562500 0.687500 +v 0.437500 0.625000 0.687500 +vt 0.955128 0.323529 +vt 0.955128 0.426471 +vt 0.948718 0.441176 +vt 0.852564 0.323529 +vt 0.826923 0.426471 +vt 0.826923 0.323529 +vt 0.980769 0.323529 +vt 0.980769 0.426471 +vt 0.858974 0.441176 +vt 0.948718 0.500000 +vt 0.858974 0.500000 +vt 0.826923 0.441176 +vt 0.852564 0.426471 +vt 0.852564 0.441176 +vt 0.955128 0.441176 +vt 0.980769 0.441176 +vn 0.0000 0.0000 1.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.7071 -0.7071 0.0000 +vn -0.7071 -0.7071 0.0000 +s off +f 16/17/7 23/18/7 24/19/7 +f 15/20/8 17/21/8 13/22/8 +f 23/18/9 14/23/9 20/24/9 +f 21/25/10 19/26/10 18/27/10 +f 18/28/11 22/29/11 21/30/11 +f 24/31/12 20/24/12 19/32/12 +f 24/19/7 21/25/7 16/17/7 +f 21/25/7 22/29/7 15/20/7 +f 16/17/7 21/25/7 15/20/7 +f 15/20/8 22/29/8 17/21/8 +f 23/18/9 16/17/9 14/23/9 +f 21/25/10 24/19/10 19/26/10 +f 18/28/11 17/21/11 22/29/11 +f 24/31/12 23/18/12 20/24/12 +o Main +v -1.000000 0.000000 1.000000 +v 1.000000 0.000000 1.000000 +v -1.000000 0.000000 -1.000000 +v 1.000000 0.000000 -1.000000 +v -1.000000 0.125000 1.000000 +v 1.000000 0.125000 1.000000 +v -1.000000 0.125000 -1.000000 +v 1.000000 0.125000 -1.000000 +v -0.937500 0.125000 0.937500 +v 0.937500 0.125000 0.937500 +v -0.937500 0.125000 -0.937500 +v 0.937500 0.125000 -0.937500 +v -0.937500 1.250000 -0.937500 +v -0.937500 1.250000 0.937500 +v 0.937500 1.250000 0.937500 +v 0.937500 1.250000 -0.937500 +v -0.437500 1.500000 -0.937500 +v -0.437500 1.500000 0.937500 +v 0.437500 1.500000 0.937500 +v 0.437500 1.500000 -0.937500 +v -0.500000 0.125000 0.937500 +v 0.500000 0.125000 0.937500 +v -0.500000 0.125000 0.687500 +v 0.500000 0.125000 0.687500 +v -0.437500 0.625000 0.812500 +v -0.312500 0.625000 0.812500 +v -0.500000 0.562500 0.937500 +v -0.437500 0.625000 0.937500 +v -0.312500 0.125000 0.812500 +v 0.437500 0.625000 0.937500 +v 0.500000 0.562500 0.937500 +v -0.437500 0.125000 0.812500 +v 0.875000 2.000000 -0.187500 +v 0.875000 2.000000 0.187500 +v 0.500000 2.000000 0.187500 +v 0.500000 2.000000 -0.187500 +v 0.875000 1.250000 -0.187500 +v 0.500000 1.250000 -0.187500 +v 0.875000 1.250000 0.187500 +v 0.500000 1.250000 0.187500 +v 0.500000 1.250000 -0.312500 +v 0.875000 1.250000 -0.312500 +v 0.500000 1.250000 -0.687500 +v 0.875000 1.250000 -0.687500 +v 0.500000 2.000000 -0.687500 +v 0.500000 2.000000 -0.312500 +v 0.875000 2.000000 -0.312500 +v 0.875000 2.000000 -0.687500 +v -0.312500 1.500000 -0.187500 +v 0.312500 1.500000 -0.187500 +v -0.312500 1.500000 -0.812500 +v 0.312500 1.500000 -0.812500 +v -0.312500 1.625000 -0.812500 +v -0.312500 1.625000 -0.187500 +v 0.312500 1.625000 -0.187500 +v 0.312500 1.625000 -0.812500 +v -0.312500 1.500000 0.812500 +v 0.312500 1.500000 0.812500 +v -0.312500 1.500000 0.187500 +v 0.312500 1.500000 0.187500 +v -0.312500 1.625000 0.187500 +v -0.312500 1.625000 0.812500 +v 0.312500 1.625000 0.812500 +v 0.312500 1.625000 0.187500 +v -0.500000 1.250000 -0.750000 +v -0.625000 1.250000 -0.750000 +v -0.500000 1.500000 -0.750000 +v -0.625000 1.500000 -0.750000 +v -0.500000 1.250000 0.750000 +v -0.625000 1.250000 0.750000 +v -0.500000 1.500000 0.750000 +v -0.625000 1.500000 0.750000 +v -0.500000 1.250000 -0.625000 +v -0.625000 1.250000 -0.625000 +v -0.500000 1.250000 0.625000 +v -0.625000 1.250000 0.625000 +v -0.500000 1.625000 -0.625000 +v -0.500000 1.625000 0.625000 +v -0.625000 1.625000 0.625000 +v -0.625000 1.625000 -0.625000 +v -0.500000 1.500000 -0.625000 +v -0.625000 1.500000 -0.625000 +v -0.500000 1.500000 0.625000 +v -0.625000 1.500000 0.625000 +v -0.875000 1.500000 0.625000 +v -0.750000 1.500000 0.625000 +v -0.875000 1.500000 -0.625000 +v -0.750000 1.500000 -0.625000 +v -0.875000 1.625000 -0.625000 +v -0.875000 1.625000 0.625000 +v -0.750000 1.625000 0.625000 +v -0.750000 1.625000 -0.625000 +v -0.875000 1.250000 0.625000 +v -0.750000 1.250000 0.625000 +v -0.875000 1.250000 -0.625000 +v -0.750000 1.250000 -0.625000 +v -0.875000 1.500000 0.750000 +v -0.750000 1.500000 0.750000 +v -0.875000 1.250000 0.750000 +v -0.750000 1.250000 0.750000 +v -0.875000 1.500000 -0.750000 +v -0.750000 1.500000 -0.750000 +v -0.875000 1.250000 -0.750000 +v -0.750000 1.250000 -0.750000 +v -0.375000 0.875000 0.937500 +v 0.375000 0.875000 0.937500 +v -0.375000 1.125000 0.937500 +v 0.375000 1.125000 0.937500 +v -0.375000 1.125000 0.812500 +v -0.375000 0.875000 0.812500 +v 0.375000 0.875000 0.812500 +v 0.375000 1.125000 0.812500 +v -0.187500 0.625000 0.812500 +v -0.062500 0.625000 0.812500 +v -0.062500 0.125000 0.812500 +v -0.187500 0.125000 0.812500 +v 0.062500 0.625000 0.812500 +v 0.187500 0.625000 0.812500 +v 0.187500 0.125000 0.812500 +v 0.062500 0.125000 0.812500 +v 0.312500 0.625000 0.812500 +v 0.437500 0.625000 0.812500 +v 0.437500 0.125000 0.812500 +v 0.312500 0.125000 0.812500 +vt 0.012821 -0.000000 +vt 0.217949 0.470588 +vt 0.012821 0.470588 +vt 0.217949 0.970588 +vt 0.211538 0.514706 +vt 0.217949 0.500000 +vt 0.230769 0.970588 +vt 0.230769 0.500000 +vt -0.000000 0.500000 +vt 0.012821 0.970588 +vt -0.000000 0.970588 +vt 0.012821 1.000000 +vt 0.217949 1.000000 +vt 0.012821 0.500000 +vt 0.019231 0.955882 +vt 0.211538 0.955882 +vt 0.615385 0.764706 +vt 0.564103 0.323529 +vt 0.615385 0.323529 +vt 0.807692 -0.000000 +vt 0.615385 0.264706 +vt 0.615385 -0.000000 +vt 0.423077 -0.000000 +vt 0.230769 0.264706 +vt 0.230769 -0.000000 +vt 0.474359 0.764706 +vt 0.474359 0.323529 +vt 0.423077 0.323529 +vt 0.423077 0.764706 +vt 1.000000 -0.000000 +vt 0.948718 0.323529 +vt 0.557692 0.176471 +vt 0.474359 0.117647 +vt 0.564103 0.117647 +vt 0.166667 0.573529 +vt 0.064103 0.514706 +vt 0.166667 0.514706 +vt 0.570513 0.102941 +vt 0.467949 0.102941 +vt 0.423077 0.264706 +vt 0.307692 0.264706 +vt 0.269231 0.441176 +vt 0.269231 0.264706 +vt 0.384615 0.264706 +vt 0.346154 0.441176 +vt 0.346154 0.264706 +vt 0.230769 0.441176 +vt 0.230769 0.264706 +vt 0.307692 0.441176 +vt 0.269231 0.529412 +vt 0.307692 0.441176 +vt 0.269231 0.529412 +vt 0.269231 0.441176 +vt 0.346154 0.264706 +vt 0.307692 0.264706 +vt 0.269231 0.264706 +vt 0.230769 0.441176 +vt 0.230769 0.264706 +vt 0.384615 0.264706 +vt 0.346154 0.441176 +vt 0.743590 0.411765 +vt 0.679487 0.558824 +vt 0.679487 0.411765 +vt 0.743590 0.411765 +vt 0.679487 0.558824 +vt 0.679487 0.411765 +vt 0.666667 0.411765 +vt 0.666667 0.558824 +vt 0.679487 0.588235 +vt 0.743590 0.558824 +vt 0.743590 0.588235 +vt 0.743590 0.382353 +vt 0.679487 0.382353 +vt 0.756410 0.558824 +vt 0.756410 0.411765 +vt 0.666667 0.411765 +vt 0.666667 0.558824 +vt 0.679487 0.588235 +vt 0.743590 0.558824 +vt 0.743590 0.588235 +vt 0.743590 0.382353 +vt 0.679487 0.382353 +vt 0.756410 0.558824 +vt 0.756410 0.411765 +vt 0.653846 0.647059 +vt 0.641026 0.676471 +vt 0.641026 0.647059 +vt 0.634615 0.661765 +vt 0.660256 0.661765 +vt 0.653846 0.676471 +vt 0.641026 0.735294 +vt 0.653846 0.735294 +vt 0.666667 0.735294 +vt 0.666667 0.676471 +vt 0.628205 0.676471 +vt 0.628205 0.735294 +vt 0.641026 0.352941 +vt 0.653846 0.323529 +vt 0.653846 0.352941 +vt 0.634615 0.338235 +vt 0.641026 0.323529 +vt 0.660256 0.338235 +vt 0.653846 0.264706 +vt 0.641026 0.264706 +vt 0.628205 0.264706 +vt 0.628205 0.323529 +vt 0.666667 0.323529 +vt 0.666667 0.264706 +vt 0.628205 0.352941 +vt 0.628205 0.647059 +vt 0.666667 0.647059 +vt 0.666667 0.352941 +vt 0.615385 0.735294 +vt 0.615385 0.676471 +vt 0.615385 0.323529 +vt 0.615385 0.352941 +vt 0.628205 0.647059 +vt 0.615385 0.352941 +vt 0.628205 0.352941 +vt 0.653846 0.352941 +vt 0.641026 0.647059 +vt 0.641026 0.352941 +vt 0.615385 0.323529 +vt 0.628205 0.264706 +vt 0.628205 0.323529 +vt 0.628205 0.676471 +vt 0.615385 0.735294 +vt 0.615385 0.676471 +vt 0.666667 0.647059 +vt 0.666667 0.352941 +vt 0.666667 0.323529 +vt 0.653846 0.264706 +vt 0.666667 0.264706 +vt 0.641026 0.323529 +vt 0.641026 0.264706 +vt 0.653846 0.323529 +vt 0.660256 0.338235 +vt 0.634615 0.338235 +vt 0.641026 0.735294 +vt 0.628205 0.735294 +vt 0.666667 0.735294 +vt 0.653846 0.676471 +vt 0.666667 0.676471 +vt 0.653846 0.735294 +vt 0.660256 0.661765 +vt 0.653846 0.647059 +vt 0.641026 0.676471 +vt 0.634615 0.661765 +vt 0.769231 0.352941 +vt 0.756410 0.294118 +vt 0.769231 0.294118 +vt 0.557692 0.235294 +vt 0.480769 0.176471 +vt 0.480769 0.235294 +vt 0.679487 0.352941 +vt 0.679487 0.294118 +vt 0.666667 0.294118 +vt 0.666667 0.352941 +vt 0.679487 0.382353 +vt 0.756410 0.352941 +vt 0.756410 0.382353 +vt 0.756410 0.264706 +vt 0.679487 0.264706 +vt 0.320513 0.441176 +vt 0.307692 0.558824 +vt 0.307692 0.441176 +vt 0.333333 0.441176 +vt 0.320513 0.558824 +vt 0.320513 0.441176 +vt 0.346154 0.441176 +vt 0.333333 0.558824 +vt 0.333333 0.441176 +vt 0.358974 0.441176 +vt 0.346154 0.558824 +vt 0.346154 0.441176 +vt 0.217949 0.000000 +vt 0.019231 0.514706 +vt 0.564103 0.764706 +vt 0.807692 0.264706 +vt 1.000000 0.264706 +vt 0.858974 0.323529 +vt 0.064103 0.573529 +vt 0.570513 -0.000000 +vt 0.467949 -0.000000 +vt 0.384615 0.441176 +vt 0.307692 0.529412 +vt 0.307692 0.529412 +vt 0.384615 0.441176 +vt 0.615385 0.264706 +vt 0.615385 0.647059 +vt 0.615385 0.647059 +vt 0.615385 0.264706 +vt 0.320513 0.558824 +vt 0.333333 0.558824 +vt 0.346154 0.558824 +vt 0.358974 0.558824 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 0.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 +s off +f 27/33/13 26/34/13 25/35/13 +f 32/36/14 34/37/14 30/38/14 +f 28/39/15 30/38/15 26/40/15 +f 25/41/16 31/42/16 27/43/16 +f 27/44/17 32/36/17 28/45/17 +f 26/34/18 29/46/18 25/35/18 +f 29/46/14 35/47/14 31/42/14 +f 31/42/14 36/48/14 32/36/14 +f 40/49/19 43/50/19 39/51/19 +f 36/52/15 39/53/15 34/54/15 +f 33/55/16 37/56/16 35/57/16 +f 43/50/14 41/58/14 42/59/14 +f 38/60/20 41/58/20 37/61/20 +f 36/52/17 35/62/17 41/63/17 +f 130/64/18 52/65/18 54/66/18 +f 48/67/14 45/68/14 46/69/14 +f 30/38/14 46/69/14 45/68/14 +f 55/70/18 34/54/18 39/53/18 +f 33/55/18 51/71/18 38/72/18 +f 63/73/18 59/74/18 64/75/18 +f 62/76/17 57/77/17 61/78/17 +f 64/75/16 60/79/16 62/80/16 +f 61/78/15 58/81/15 63/73/15 +f 58/81/14 60/82/14 59/74/14 +f 71/83/14 69/84/14 70/85/14 +f 68/86/15 71/83/15 66/87/15 +f 65/88/16 69/89/16 67/90/16 +f 67/91/17 72/92/17 68/86/17 +f 66/87/18 70/85/18 65/88/18 +f 87/93/14 85/94/14 86/95/14 +f 79/96/14 77/97/14 78/98/14 +f 73/99/16 77/97/16 75/100/16 +f 75/101/17 80/102/17 76/103/17 +f 74/104/18 78/98/18 73/105/18 +f 76/106/15 79/96/15 74/107/15 +f 81/108/16 85/94/16 83/109/16 +f 83/110/17 88/111/17 84/112/17 +f 82/113/18 86/95/18 81/114/18 +f 84/115/15 87/93/15 82/116/15 +f 101/117/21 92/118/21 104/119/21 +f 104/119/16 92/118/16 106/120/16 +f 105/121/15 91/122/15 101/117/15 +f 90/123/17 91/122/17 89/124/17 +f 97/125/15 91/122/15 105/126/15 +f 106/127/16 90/123/16 98/128/16 +f 103/129/22 95/130/22 102/131/22 +f 108/132/16 96/133/16 103/129/16 +f 102/131/15 95/130/15 107/134/15 +f 93/135/18 96/133/18 94/136/18 +f 100/137/16 96/133/16 108/138/16 +f 107/139/15 93/135/15 99/140/15 +f 108/141/16 104/119/16 106/142/16 +f 105/143/15 102/131/15 107/144/15 +f 106/127/18 97/145/18 105/146/18 +f 107/147/17 100/137/17 108/138/17 +f 102/131/14 104/119/14 103/129/14 +f 106/142/13 107/148/13 108/141/13 +f 111/149/13 110/150/13 109/151/13 +f 115/152/14 113/153/14 114/154/14 +f 110/155/17 117/156/17 109/157/17 +f 111/158/18 120/159/18 112/160/18 +f 112/161/15 115/152/15 110/162/15 +f 109/151/16 113/153/16 111/149/16 +f 110/163/15 124/164/15 118/165/15 +f 117/156/16 121/166/16 109/157/16 +f 124/164/18 121/166/18 123/167/18 +f 115/152/15 122/168/15 110/169/15 +f 109/170/16 121/166/16 114/154/16 +f 114/154/22 122/168/22 115/152/22 +f 111/158/16 127/171/16 119/172/16 +f 120/173/15 126/174/15 112/175/15 +f 127/171/17 126/174/17 128/176/17 +f 112/177/15 126/174/15 116/178/15 +f 113/153/16 125/179/16 111/180/16 +f 116/178/21 125/179/21 113/153/21 +f 132/181/16 135/182/16 130/183/16 +f 42/59/18 132/184/18 43/50/18 +f 129/185/18 131/186/18 38/72/18 +f 39/53/18 130/64/18 55/70/18 +f 135/182/18 133/187/18 134/188/18 +f 129/189/15 133/187/15 131/190/15 +f 131/191/13 136/192/13 132/193/13 +f 130/194/14 134/188/14 129/195/14 +f 53/196/18 49/197/18 56/198/18 +f 139/199/18 137/200/18 140/201/18 +f 143/202/18 141/203/18 144/204/18 +f 147/205/18 145/206/18 148/207/18 +f 27/33/13 28/208/13 26/34/13 +f 32/36/14 36/48/14 34/37/14 +f 28/39/15 32/36/15 30/38/15 +f 25/41/16 29/46/16 31/42/16 +f 27/44/17 31/42/17 32/36/17 +f 26/34/18 30/38/18 29/46/18 +f 29/46/14 33/209/14 35/47/14 +f 31/42/14 35/47/14 36/48/14 +f 40/49/19 44/210/19 43/50/19 +f 36/52/15 40/211/15 39/53/15 +f 33/55/16 38/72/16 37/56/16 +f 43/50/14 44/210/14 41/58/14 +f 38/60/20 42/59/20 41/58/20 +f 35/62/17 37/212/17 41/63/17 +f 41/63/17 44/213/17 36/52/17 +f 44/213/17 40/211/17 36/52/17 +f 130/64/18 129/185/18 52/65/18 +f 48/67/14 47/214/14 45/68/14 +f 33/209/14 29/46/14 45/68/14 +f 29/46/14 30/38/14 45/68/14 +f 30/38/14 34/37/14 46/69/14 +f 55/70/18 46/215/18 34/54/18 +f 33/55/18 45/216/18 51/71/18 +f 63/73/18 58/81/18 59/74/18 +f 62/76/17 60/217/17 57/77/17 +f 64/75/16 59/74/16 60/79/16 +f 61/78/15 57/77/15 58/81/15 +f 58/81/14 57/218/14 60/82/14 +f 71/83/14 72/219/14 69/84/14 +f 68/86/15 72/92/15 71/83/15 +f 65/88/16 70/85/16 69/89/16 +f 67/91/17 69/220/17 72/92/17 +f 66/87/18 71/83/18 70/85/18 +f 87/93/14 88/111/14 85/94/14 +f 79/96/14 80/102/14 77/97/14 +f 73/99/16 78/98/16 77/97/16 +f 75/101/17 77/97/17 80/102/17 +f 74/104/18 79/96/18 78/98/18 +f 76/106/15 80/102/15 79/96/15 +f 81/108/16 86/95/16 85/94/16 +f 83/110/17 85/94/17 88/111/17 +f 82/113/18 87/93/18 86/95/18 +f 84/115/15 88/111/15 87/93/15 +f 101/117/21 91/122/21 92/118/21 +f 90/123/17 92/118/17 91/122/17 +f 97/125/15 89/124/15 91/122/15 +f 106/127/16 92/118/16 90/123/16 +f 103/129/22 96/133/22 95/130/22 +f 93/135/18 95/130/18 96/133/18 +f 100/137/16 94/136/16 96/133/16 +f 107/139/15 95/130/15 93/135/15 +f 108/141/16 103/129/16 104/119/16 +f 105/143/15 101/117/15 102/131/15 +f 106/127/18 98/128/18 97/145/18 +f 107/147/17 99/221/17 100/137/17 +f 102/131/14 101/117/14 104/119/14 +f 106/142/13 105/222/13 107/148/13 +f 111/149/13 112/223/13 110/150/13 +f 115/152/14 116/178/14 113/153/14 +f 110/155/17 118/224/17 117/156/17 +f 111/158/18 119/172/18 120/159/18 +f 112/161/15 116/178/15 115/152/15 +f 109/151/16 114/154/16 113/153/16 +f 110/163/15 122/168/15 124/164/15 +f 117/156/16 123/167/16 121/166/16 +f 124/164/18 122/168/18 121/166/18 +f 114/154/22 121/166/22 122/168/22 +f 111/158/16 125/179/16 127/171/16 +f 120/173/15 128/176/15 126/174/15 +f 127/171/17 125/179/17 126/174/17 +f 116/178/21 126/174/21 125/179/21 +f 132/181/16 136/192/16 135/182/16 +f 42/59/18 131/186/18 132/184/18 +f 131/186/18 42/59/18 38/72/18 +f 38/72/18 51/71/18 129/185/18 +f 51/71/18 52/65/18 129/185/18 +f 39/53/18 43/50/18 132/184/18 +f 132/184/18 130/64/18 39/53/18 +f 130/64/18 54/66/18 55/70/18 +f 135/182/18 136/192/18 133/187/18 +f 129/189/15 134/188/15 133/187/15 +f 131/191/13 133/187/13 136/192/13 +f 130/194/14 135/182/14 134/188/14 +f 53/196/18 50/225/18 49/197/18 +f 139/199/18 138/226/18 137/200/18 +f 143/202/18 142/227/18 141/203/18 +f 147/205/18 146/228/18 145/206/18 diff --git a/src/main/resources/assets/hbm/textures/gui/machine/gui_furnace_iron.png b/src/main/resources/assets/hbm/textures/gui/machine/gui_furnace_iron.png deleted file mode 100644 index 8be91d48597eb9b6107c72b4332ca2fe6b62b17f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1997 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 D7@Lyo literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/machines/furnace_iron.png b/src/main/resources/assets/hbm/textures/models/machines/furnace_iron.png index ab2c6f558d288540349d99b657d11107d179bb70..6621939c0e858e9e882ce61ea69e8f4ce482af5f 100644 GIT binary patch delta 4040 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 From 34d72b4f8062dd4363973a6d70d2f853486be41f Mon Sep 17 00:00:00 2001 From: Boblet Date: Wed, 15 Jun 2022 16:54:45 +0200 Subject: [PATCH 68/80] iron furnace, some universal code for solid fuels --- .../java/com/hbm/handler/FuelHandler.java | 11 +-- .../container/ContainerFurnaceIron.java | 4 + .../com/hbm/inventory/gui/GUIFurnaceIron.java | 23 +++++ .../java/com/hbm/module/ModuleBurnTime.java | 97 +++++++++++++++++++ .../machine/TileEntityFurnaceIron.java | 66 ++++++++++++- .../machine/TileEntityMachineIGenerator.java | 5 - 6 files changed, 193 insertions(+), 13 deletions(-) create mode 100644 src/main/java/com/hbm/module/ModuleBurnTime.java diff --git a/src/main/java/com/hbm/handler/FuelHandler.java b/src/main/java/com/hbm/handler/FuelHandler.java index c7ca18eae..be29e2440 100644 --- a/src/main/java/com/hbm/handler/FuelHandler.java +++ b/src/main/java/com/hbm/handler/FuelHandler.java @@ -14,12 +14,11 @@ public class FuelHandler implements IFuelHandler { int single = 200; - if(fuel.getItem().equals(ModItems.solid_fuel)) - return single * 16; - if(fuel.getItem().equals(ModItems.solid_fuel_presto)) - return single * 40; - if(fuel.getItem().equals(ModItems.solid_fuel_presto_triplet)) - return single * 200; + if(fuel.getItem().equals(ModItems.solid_fuel)) return single * 16; + if(fuel.getItem().equals(ModItems.solid_fuel_presto)) return single * 40; + if(fuel.getItem().equals(ModItems.solid_fuel_presto_triplet)) return single * 200; + if(fuel.getItem().equals(ModItems.rocket_fuel)) return single * 32; + if(fuel.getItem().equals(ModItems.biomass)) return 800; if(fuel.getItem().equals(ModItems.biomass_compressed)) diff --git a/src/main/java/com/hbm/inventory/container/ContainerFurnaceIron.java b/src/main/java/com/hbm/inventory/container/ContainerFurnaceIron.java index 5e51e4c6a..34b9673ad 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerFurnaceIron.java +++ b/src/main/java/com/hbm/inventory/container/ContainerFurnaceIron.java @@ -17,10 +17,14 @@ public class ContainerFurnaceIron extends Container { public ContainerFurnaceIron(InventoryPlayer invPlayer, TileEntityFurnaceIron furnace) { this.furnace = furnace; + //input this.addSlotToContainer(new Slot(furnace, 0, 53, 17)); + //fuel this.addSlotToContainer(new Slot(furnace, 1, 53, 53)); this.addSlotToContainer(new Slot(furnace, 2, 71, 53)); + //output this.addSlotToContainer(new SlotSmelting(invPlayer.player, furnace, 3, 125, 35)); + //upgrade this.addSlotToContainer(new SlotUpgrade(furnace, 4, 17, 35)); for(int i = 0; i < 3; i++) { diff --git a/src/main/java/com/hbm/inventory/gui/GUIFurnaceIron.java b/src/main/java/com/hbm/inventory/gui/GUIFurnaceIron.java index 4bf6f42aa..45b4cb753 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIFurnaceIron.java +++ b/src/main/java/com/hbm/inventory/gui/GUIFurnaceIron.java @@ -1,5 +1,7 @@ package com.hbm.inventory.gui; +import java.util.List; + import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerFurnaceIron; @@ -10,6 +12,7 @@ import net.minecraft.client.Minecraft; import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.client.resources.I18n; import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Slot; import net.minecraft.util.ResourceLocation; public class GUIFurnaceIron extends GuiContainer { @@ -25,6 +28,26 @@ public class GUIFurnaceIron extends GuiContainer { this.ySize = 166; } + @Override + public void drawScreen(int x, int y, float interp) { + super.drawScreen(x, y, interp); + + if(this.mc.thePlayer.inventory.getItemStack() == null) { + for(int i = 1; i < 3; ++i) { + Slot slot = (Slot) this.inventorySlots.inventorySlots.get(i); + + if(!slot.getHasStack()) { + + List bonuses = this.diFurnace.burnModule.getDesc(); + + if(!bonuses.isEmpty()) { + this.func_146283_a(bonuses, x, y); + } + } + } + } + } + @Override protected void drawGuiContainerForegroundLayer(int i, int j) { String name = this.diFurnace.hasCustomInventoryName() ? this.diFurnace.getInventoryName() : I18n.format(this.diFurnace.getInventoryName()); diff --git a/src/main/java/com/hbm/module/ModuleBurnTime.java b/src/main/java/com/hbm/module/ModuleBurnTime.java new file mode 100644 index 000000000..3abb1bc37 --- /dev/null +++ b/src/main/java/com/hbm/module/ModuleBurnTime.java @@ -0,0 +1,97 @@ +package com.hbm.module; + +import java.util.ArrayList; +import java.util.List; + +import com.hbm.items.ModItems; +import com.hbm.util.ItemStackUtil; + +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntityFurnace; +import net.minecraft.util.EnumChatFormatting; + +/** + * A simple module for determining the burn time of a stack with added options to define bonuses + * @author hbm + * + */ +public class ModuleBurnTime { + + private double modLog = 1.0D; + private double modWood = 1.0D; + private double modCoal = 1.0D; + private double modLignite = 1.0D; + private double modCoke = 1.0D; + private double modSolid = 1.0D; + private double modRocket = 1.0D; + + public int getBurnTime(ItemStack stack) { + int fuel = TileEntityFurnace.getItemBurnTime(stack); + + if(fuel == 0) + return 0; + + if(stack.getItem() == ModItems.solid_fuel) return (int) (fuel * modSolid); + if(stack.getItem() == ModItems.solid_fuel_presto) return (int) (fuel * modSolid); + if(stack.getItem() == ModItems.solid_fuel_presto_triplet) return (int) (fuel * modSolid); + + if(stack.getItem() == ModItems.rocket_fuel) return (int) (fuel * modRocket); + + List names = ItemStackUtil.getOreDictNames(stack); + + for(String name : names) { + if(name.contains("Coke")) return (int) (fuel * modCoke); + if(name.contains("Coal")) return (int) (fuel * modCoal); + if(name.contains("Lignite")) return (int) (fuel * modLignite); + if(name.startsWith("log")) return (int) (fuel * modLog); + if(name.contains("Wood")) return (int) (fuel * modWood); + } + + return fuel; + } + + public List getDesc() { + List list = new ArrayList(); + + list.add(EnumChatFormatting.YELLOW + "Burn time bonuses:"); + + addIf(list, "Logs", modLog); + addIf(list, "Wood", modWood); + addIf(list, "Coal", modCoal); + addIf(list, "Lignite", modLignite); + addIf(list, "Coke", modCoke); + addIf(list, "Solid Fuel", modSolid); + addIf(list, "Rocket Fuel", modRocket); + + if(list.size() == 1) + list.clear(); + + return list; + } + + private void addIf(List list, String name, double mod) { + + if(mod != 1.0D) + list.add(EnumChatFormatting.YELLOW + "- " + name + ": " + getPercent(mod)); + } + + private String getPercent(double mod) { + mod -= 1D; + String num = (((int) (mod * 1000)) / 10D) + "%"; + + if(mod < 0) + num = EnumChatFormatting.RED + "-" + num; + else + num = EnumChatFormatting.GREEN + "+" + num; + + return num; + } + + public ModuleBurnTime setLogMod(double mod) { this.modLog = mod; return this; } + public ModuleBurnTime setWoodMod(double mod) { this.modWood = mod; return this; } + public ModuleBurnTime setCoalMod(double mod) { this.modCoal = mod; return this; } + public ModuleBurnTime setLigniteMod(double mod) { this.modLignite = mod; return this; } + public ModuleBurnTime setCokeMod(double mod) { this.modCoke = mod; return this; } + public ModuleBurnTime setSolidMod(double mod) { this.modSolid = mod; return this; } + public ModuleBurnTime setRocketMod(double mod) { this.modRocket = mod; return this; } +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceIron.java b/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceIron.java index e05d31c5c..8772e2647 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceIron.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceIron.java @@ -1,15 +1,19 @@ package com.hbm.tileentity.machine; +import com.hbm.inventory.UpgradeManager; import com.hbm.inventory.container.ContainerFurnaceIron; import com.hbm.inventory.gui.GUIFurnaceIron; +import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; +import com.hbm.module.ModuleBurnTime; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; +import net.minecraft.item.ItemStack; +import net.minecraft.item.crafting.FurnaceRecipes; import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntityFurnace; import net.minecraft.world.World; public class TileEntityFurnaceIron extends TileEntityMachineBase implements IGUIProvider { @@ -17,8 +21,21 @@ public class TileEntityFurnaceIron extends TileEntityMachineBase implements IGUI public int maxBurnTime; public int burnTime; + public int progress; + public int processingTime; + public static final int baseTime = 200; + + public ModuleBurnTime burnModule; + public TileEntityFurnaceIron() { super(5); + + burnModule = new ModuleBurnTime() + .setLigniteMod(1.25) + .setCoalMod(1.25) + .setCokeMod(1.5) + .setSolidMod(2) + .setRocketMod(2); } @Override @@ -31,24 +48,51 @@ public class TileEntityFurnaceIron extends TileEntityMachineBase implements IGUI if(!worldObj.isRemote) { + UpgradeManager.eval(slots, 4, 4); + this.processingTime = baseTime - (100 * Math.min(UpgradeManager.getLevel(UpgradeType.SPEED), 3) / 3); + if(burnTime <= 0) { for(int i = 1; i < 3; i++) { if(slots[i] != null) { - int fuel = TileEntityFurnace.getItemBurnTime(slots[i]); + int fuel = burnModule.getBurnTime(slots[i]); if(fuel > 0) { this.maxBurnTime = this.burnTime = fuel; + slots[i].stackSize--; + + if(slots[i].stackSize == 0) { + slots[i] = slots[i].getItem().getContainerItem(slots[i]); + } + break; } } } } + if(canSmelt()) { + this.progress++; + + if(this.progress > this.processingTime) { + ItemStack result = FurnaceRecipes.smelting().getSmeltingResult(slots[0]); + + if(slots[3] == null) { + slots[3] = result.copy(); + } else { + slots[3].stackSize += result.stackSize; + } + + this.decrStackSize(0, 1); + } + } + NBTTagCompound data = new NBTTagCompound(); data.setInteger("maxBurnTime", this.maxBurnTime); data.setInteger("burnTime", this.burnTime); + data.setInteger("progress", this.progress); + data.setInteger("processingTime", this.processingTime); this.networkPack(data, 50); } } @@ -57,6 +101,24 @@ public class TileEntityFurnaceIron extends TileEntityMachineBase implements IGUI public void networkUnpack(NBTTagCompound nbt) { this.maxBurnTime = nbt.getInteger("maxBurnTime"); this.burnTime = nbt.getInteger("burnTime"); + this.progress = nbt.getInteger("progress"); + this.processingTime = nbt.getInteger("processingTime"); + } + + public boolean canSmelt() { + + if(this.burnTime <= 0) return false; + if(slots[0] == null) return false; + + ItemStack result = FurnaceRecipes.smelting().getSmeltingResult(slots[0]); + + if(result == null) return false; + if(slots[3] == null) return true; + + if(!result.isItemEqual(slots[3])) return false; + if(result.stackSize + slots[3].stackSize > slots[3].getMaxStackSize()) return false; + + return true; } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineIGenerator.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineIGenerator.java index cc517b12f..04191a8f6 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineIGenerator.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineIGenerator.java @@ -1,9 +1,5 @@ package com.hbm.tileentity.machine; -import java.util.Arrays; -import java.util.HashMap; -import java.util.List; - import com.hbm.blocks.BlockDummyable; import com.hbm.interfaces.IFluidAcceptor; import com.hbm.inventory.FluidTank; @@ -11,7 +7,6 @@ import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.types.FluidTypeFlammable; import com.hbm.items.ModItems; -import com.hbm.items.machine.ItemRTGPellet; import com.hbm.lib.Library; import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.util.RTGUtil; From caa6b31b93f8e9afead8ac64d52f896ea9980b65 Mon Sep 17 00:00:00 2001 From: Bob Date: Thu, 16 Jun 2022 22:59:28 +0200 Subject: [PATCH 69/80] finished iron furnace, artillery turret --- src/main/java/com/hbm/blocks/ModBlocks.java | 5 +- .../com/hbm/blocks/machine/FurnaceIron.java | 2 - .../com/hbm/blocks/turret/TurretArty.java | 41 + .../com/hbm/blocks/turret/TurretChekhov.java | 6 +- .../hbm/inventory/gui/GUICraneExtractor.java | 4 - .../com/hbm/inventory/gui/GUIFurnaceIron.java | 18 +- .../com/hbm/inventory/gui/GUITurretArty.java | 45 + .../hbm/inventory/gui/GuiInfoContainer.java | 5 + src/main/java/com/hbm/main/ClientProxy.java | 1 + .../java/com/hbm/main/CraftingManager.java | 1 + .../java/com/hbm/main/ModEventHandler.java | 31 +- .../java/com/hbm/main/ResourceManager.java | 2 + .../java/com/hbm/module/ModuleBurnTime.java | 4 +- .../hbm/render/item/ItemRenderLibrary.java | 12 + .../render/tileentity/RenderFurnaceIron.java | 21 +- .../render/tileentity/RenderTurretArty.java | 43 + .../java/com/hbm/tileentity/TileMappings.java | 1 + .../machine/TileEntityFurnaceIron.java | 87 +- .../turret/TileEntityTurretArty.java | 107 + src/main/resources/assets/hbm/lang/de_DE.lang | 2 + src/main/resources/assets/hbm/lang/en_US.lang | 2 + .../assets/hbm/models/turrets/turret_arty.obj | 4319 +++++++++++++++++ .../textures/gui/weapon/gui_turret_arty.png | Bin 0 -> 4431 bytes .../assets/hbm/textures/items/ammo_arty.png | Bin 0 -> 329 bytes .../hbm/textures/items/ammo_arty_classic.png | Bin 0 -> 316 bytes .../hbm/textures/items/ammo_arty_he.png | Bin 0 -> 358 bytes .../textures/items/ammo_arty_mini_nuke.png | Bin 0 -> 338 bytes .../hbm/textures/items/ammo_arty_nuke.png | Bin 0 -> 328 bytes .../textures/models/machines/furnace_iron.png | Bin 4053 -> 4266 bytes 29 files changed, 4740 insertions(+), 19 deletions(-) create mode 100644 src/main/java/com/hbm/blocks/turret/TurretArty.java create mode 100644 src/main/java/com/hbm/inventory/gui/GUITurretArty.java create mode 100644 src/main/java/com/hbm/render/tileentity/RenderTurretArty.java create mode 100644 src/main/java/com/hbm/tileentity/turret/TileEntityTurretArty.java create mode 100644 src/main/resources/assets/hbm/models/turrets/turret_arty.obj create mode 100644 src/main/resources/assets/hbm/textures/gui/weapon/gui_turret_arty.png create mode 100644 src/main/resources/assets/hbm/textures/items/ammo_arty.png create mode 100644 src/main/resources/assets/hbm/textures/items/ammo_arty_classic.png create mode 100644 src/main/resources/assets/hbm/textures/items/ammo_arty_he.png create mode 100644 src/main/resources/assets/hbm/textures/items/ammo_arty_mini_nuke.png create mode 100644 src/main/resources/assets/hbm/textures/items/ammo_arty_nuke.png diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index d2ba3334b..f6e6a1e25 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -1098,6 +1098,7 @@ public class ModBlocks { public static final int guiID_fritz = 122; public static Block turret_brandon; public static final int guiID_brandon = 122; + public static Block turret_arty; public static Block rbmk_rod; public static Block rbmk_rod_mod; @@ -1787,7 +1788,7 @@ public class ModBlocks { semtex = new BlockSemtex().setBlockName("semtex").setStepSound(Block.soundTypeGrass).setCreativeTab(MainRegistry.nukeTab).setHardness(0.0F).setBlockTextureName(RefStrings.MODID + ":semtex"); c4 = new BlockC4().setBlockName("c4").setStepSound(Block.soundTypeGrass).setCreativeTab(MainRegistry.nukeTab).setHardness(0.0F).setBlockTextureName(RefStrings.MODID + ":c4"); - furnace_iron = new FurnaceIron().setBlockName("furnace_iron").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); + furnace_iron = new FurnaceIron().setBlockName("furnace_iron").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_aluminium"); machine_difurnace_off = new MachineDiFurnace(false).setBlockName("machine_difurnace_off").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); machine_difurnace_on = new MachineDiFurnace(true).setBlockName("machine_difurnace_on").setHardness(5.0F).setLightLevel(1.0F).setResistance(10.0F); @@ -2081,6 +2082,7 @@ public class ModBlocks { turret_maxwell = new TurretMaxwell(Material.iron).setBlockName("turret_maxwell").setHardness(5.0F).setResistance(600.0F).setCreativeTab(MainRegistry.weaponTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); turret_fritz = new TurretFritz(Material.iron).setBlockName("turret_fritz").setHardness(5.0F).setResistance(600.0F).setCreativeTab(MainRegistry.weaponTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); turret_brandon = new TurretBrandon(Material.iron).setBlockName("turret_brandon").setHardness(5.0F).setResistance(600.0F).setCreativeTab(MainRegistry.weaponTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + turret_arty = new TurretArty(Material.iron).setBlockName("turret_arty").setHardness(5.0F).setResistance(600.0F).setCreativeTab(MainRegistry.weaponTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); rbmk_rod = new RBMKRod(false).setBlockName("rbmk_rod").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_element"); rbmk_rod_mod = new RBMKRod(true).setBlockName("rbmk_rod_mod").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_element_mod"); @@ -2836,6 +2838,7 @@ public class ModBlocks { GameRegistry.registerBlock(turret_maxwell, turret_maxwell.getUnlocalizedName()); GameRegistry.registerBlock(turret_fritz, turret_fritz.getUnlocalizedName()); GameRegistry.registerBlock(turret_brandon, turret_brandon.getUnlocalizedName()); + GameRegistry.registerBlock(turret_arty, turret_arty.getUnlocalizedName()); //Wall-mounted Explosives GameRegistry.registerBlock(charge_dynamite, ItemBlockBase.class, charge_dynamite.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/machine/FurnaceIron.java b/src/main/java/com/hbm/blocks/machine/FurnaceIron.java index 9a6e143fb..608963f7c 100644 --- a/src/main/java/com/hbm/blocks/machine/FurnaceIron.java +++ b/src/main/java/com/hbm/blocks/machine/FurnaceIron.java @@ -1,11 +1,9 @@ package com.hbm.blocks.machine; import com.hbm.blocks.BlockDummyable; -import com.hbm.main.MainRegistry; import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.TileEntityFurnaceIron; -import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; diff --git a/src/main/java/com/hbm/blocks/turret/TurretArty.java b/src/main/java/com/hbm/blocks/turret/TurretArty.java new file mode 100644 index 000000000..b23775fa1 --- /dev/null +++ b/src/main/java/com/hbm/blocks/turret/TurretArty.java @@ -0,0 +1,41 @@ +package com.hbm.blocks.turret; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.tileentity.TileEntityProxyCombo; +import com.hbm.tileentity.turret.TileEntityTurretArty; + +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; + +public class TurretArty extends BlockDummyable { + + public TurretArty(Material mat) { + super(mat); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + + if(meta >= 12) + return new TileEntityTurretArty(); + + return new TileEntityProxyCombo(true, true, false); + } + + @Override + public int[] getDimensions() { + return new int[] { 1, 0, 2, 1, 2, 1 }; + } + + @Override + public int getOffset() { + return 1; + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + return this.standardOpenBehavior(world, x, y, z, player, 0); + } +} diff --git a/src/main/java/com/hbm/blocks/turret/TurretChekhov.java b/src/main/java/com/hbm/blocks/turret/TurretChekhov.java index d4b80e9b6..3ccb43269 100644 --- a/src/main/java/com/hbm/blocks/turret/TurretChekhov.java +++ b/src/main/java/com/hbm/blocks/turret/TurretChekhov.java @@ -25,7 +25,11 @@ public class TurretChekhov extends BlockDummyable { if(meta >= 12) return new TileEntityTurretChekhov(); - return new TileEntityProxyCombo(true, true, false); + + if(meta >= 6) + return new TileEntityProxyCombo(true, true, false); + + return null; } @Override diff --git a/src/main/java/com/hbm/inventory/gui/GUICraneExtractor.java b/src/main/java/com/hbm/inventory/gui/GUICraneExtractor.java index ab99a9e40..ea927d377 100644 --- a/src/main/java/com/hbm/inventory/gui/GUICraneExtractor.java +++ b/src/main/java/com/hbm/inventory/gui/GUICraneExtractor.java @@ -88,8 +88,4 @@ public class GUICraneExtractor extends GuiInfoContainer { drawTexturedModalRect(guiLeft + 139, guiTop + 47, 176, 0, 3, 6); } } - - protected boolean isMouseOverSlot(Slot slot, int x, int y) { - return this.func_146978_c(slot.xDisplayPosition, slot.yDisplayPosition, 16, 16, x, y); - } } diff --git a/src/main/java/com/hbm/inventory/gui/GUIFurnaceIron.java b/src/main/java/com/hbm/inventory/gui/GUIFurnaceIron.java index 45b4cb753..282b3268e 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIFurnaceIron.java +++ b/src/main/java/com/hbm/inventory/gui/GUIFurnaceIron.java @@ -9,13 +9,12 @@ import com.hbm.lib.RefStrings; import com.hbm.tileentity.machine.TileEntityFurnaceIron; import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.client.resources.I18n; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Slot; import net.minecraft.util.ResourceLocation; -public class GUIFurnaceIron extends GuiContainer { +public class GUIFurnaceIron extends GuiInfoContainer { private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/processing/gui_furnace_iron.png"); private TileEntityFurnaceIron diFurnace; @@ -33,10 +32,11 @@ public class GUIFurnaceIron extends GuiContainer { super.drawScreen(x, y, interp); if(this.mc.thePlayer.inventory.getItemStack() == null) { + for(int i = 1; i < 3; ++i) { Slot slot = (Slot) this.inventorySlots.inventorySlots.get(i); - if(!slot.getHasStack()) { + if(this.isMouseOverSlot(slot, x, y) && !slot.getHasStack()) { List bonuses = this.diFurnace.burnModule.getDesc(); @@ -46,6 +46,9 @@ public class GUIFurnaceIron extends GuiContainer { } } } + + this.drawCustomInfoStat(x, y, guiLeft + 52, guiTop + 35, 71, 7, x, y, new String[] { (diFurnace.progress * 100 / Math.max(diFurnace.processingTime, 1)) + "%" }); + this.drawCustomInfoStat(x, y, guiLeft + 52, guiTop + 44, 71, 7, x, y, new String[] { (diFurnace.burnTime / 20) + "s" }); } @Override @@ -61,5 +64,14 @@ public class GUIFurnaceIron extends GuiContainer { GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); Minecraft.getMinecraft().getTextureManager().bindTexture(texture); drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + + int i = diFurnace.progress * 70 / Math.max(diFurnace.processingTime, 1); + drawTexturedModalRect(guiLeft + 53, guiTop + 36, 176, 18, i, 5); + + int j = diFurnace.burnTime * 70 / Math.max(diFurnace.maxBurnTime, 1); + drawTexturedModalRect(guiLeft + 53, guiTop + 45, 176, 23, j, 5); + + if(diFurnace.canSmelt()) + drawTexturedModalRect(guiLeft + 70, guiTop + 16, 176, 0, 18, 18); } } diff --git a/src/main/java/com/hbm/inventory/gui/GUITurretArty.java b/src/main/java/com/hbm/inventory/gui/GUITurretArty.java new file mode 100644 index 000000000..0b6425f4b --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GUITurretArty.java @@ -0,0 +1,45 @@ +package com.hbm.inventory.gui; + +import com.hbm.lib.RefStrings; +import com.hbm.packet.AuxButtonPacket; +import com.hbm.packet.PacketDispatcher; +import com.hbm.tileentity.turret.TileEntityTurretArty; +import com.hbm.tileentity.turret.TileEntityTurretBaseNT; + +import net.minecraft.client.audio.PositionedSoundRecord; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.util.ResourceLocation; + +public class GUITurretArty extends GUITurretBase { + + private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/weapon/gui_turret_arty.png"); + + public GUITurretArty(InventoryPlayer invPlayer, TileEntityTurretBaseNT tedf) { + super(invPlayer, tedf); + } + + @Override + protected void mouseClicked(int x, int y, int i) { + super.mouseClicked(x, y, i); + + if(guiLeft + 151 <= x && guiLeft + 151 + 18 > x && guiTop + 16 < y && guiTop + 16 + 18 >= y) { + + mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); + PacketDispatcher.wrapper.sendToServer(new AuxButtonPacket(turret.xCoord, turret.yCoord, turret.zCoord, 0, 5)); + return; + } + } + + @Override + protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int mX, int mY) { + super.drawGuiContainerBackgroundLayer(p_146976_1_, mX, mY); + + if(((TileEntityTurretArty)turret).directMode) + drawTexturedModalRect(guiLeft + 151, guiTop + 16, 210, 0, 18, 18); + } + + @Override + protected ResourceLocation getTexture() { + return texture; + } +} diff --git a/src/main/java/com/hbm/inventory/gui/GuiInfoContainer.java b/src/main/java/com/hbm/inventory/gui/GuiInfoContainer.java index 01f234849..3c5311d39 100644 --- a/src/main/java/com/hbm/inventory/gui/GuiInfoContainer.java +++ b/src/main/java/com/hbm/inventory/gui/GuiInfoContainer.java @@ -16,6 +16,7 @@ import net.minecraft.client.Minecraft; import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.client.renderer.Tessellator; import net.minecraft.inventory.Container; +import net.minecraft.inventory.Slot; import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.MathHelper; import net.minecraft.util.ResourceLocation; @@ -92,6 +93,10 @@ public abstract class GuiInfoContainer extends GuiContainer { } } + protected boolean isMouseOverSlot(Slot slot, int x, int y) { + return this.func_146978_c(slot.xDisplayPosition, slot.yDisplayPosition, 16, 16, x, y); + } + /** * Seven segment style displays for GUIs, tried to be as adaptable as possible. Still has some bugs that need to be ironed out but it works for the most part. * @author UFFR diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index fb48f1a07..c5f5a931b 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -189,6 +189,7 @@ public class ClientProxy extends ServerProxy { ClientRegistry.bindTileEntitySpecialRenderer(TileEntityTurretMaxwell.class, new RenderTurretMaxwell()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityTurretFritz.class, new RenderTurretFritz()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityTurretBrandon.class, new RenderTurretBrandon()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityTurretArty.class, new RenderTurretArty()); //mines ClientRegistry.bindTileEntitySpecialRenderer(TileEntityLandmine.class, new RenderLandmine()); //cel prime diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index 5990c9698..42eb1f629 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -289,6 +289,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.anvil_murky, 1), new Object[] { "UUU", "UAU", "UUU", 'U', ModItems.undefined, 'A', ModBlocks.anvil_steel }); addRecipeAuto(new ItemStack(ModBlocks.machine_fraction_tower), new Object[] { "SHS", "SGS", "SHS", 'S', STEEL.plate(), 'H', ModItems.hull_big_steel, 'G', ModBlocks.steel_grate }); addRecipeAuto(new ItemStack(ModBlocks.fraction_spacer), new Object[] { "BHB", 'H', ModItems.hull_big_steel, 'B', Blocks.iron_bars }); + addRecipeAuto(new ItemStack(ModBlocks.furnace_iron), new Object[] { "III", "IFI", "BBB", 'I', IRON.ingot(), 'F', Blocks.furnace, 'B', Blocks.stonebrick }); addRecipeAuto(new ItemStack(ModBlocks.muffler, 1), new Object[] { "III", "IWI", "III", 'I', ModItems.plate_polymer, 'W', Blocks.wool }); diff --git a/src/main/java/com/hbm/main/ModEventHandler.java b/src/main/java/com/hbm/main/ModEventHandler.java index 62014fee6..eaad629a1 100644 --- a/src/main/java/com/hbm/main/ModEventHandler.java +++ b/src/main/java/com/hbm/main/ModEventHandler.java @@ -4,7 +4,6 @@ import java.lang.reflect.Field; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.util.ArrayList; -import java.util.HashSet; import java.util.Iterator; import java.util.List; import java.util.Map; @@ -46,6 +45,7 @@ import com.hbm.items.armor.IDamageHandler; import com.hbm.items.armor.ItemArmorMod; import com.hbm.items.armor.ItemModRevive; import com.hbm.items.armor.ItemModShackles; +import com.hbm.items.tool.ItemGuideBook.BookType; import com.hbm.items.weapon.ItemGunBase; import com.hbm.lib.Library; import com.hbm.lib.ModDamageSource; @@ -63,8 +63,6 @@ import com.hbm.util.EntityDamageUtil; import com.hbm.world.WorldProviderNTM; import com.hbm.world.generator.TimedGenerator; -import cpw.mods.fml.common.event.FMLMissingMappingsEvent; -import cpw.mods.fml.common.event.FMLMissingMappingsEvent.MissingMapping; import cpw.mods.fml.common.eventhandler.Event.Result; import cpw.mods.fml.common.eventhandler.EventPriority; import cpw.mods.fml.common.eventhandler.SubscribeEvent; @@ -73,7 +71,6 @@ import cpw.mods.fml.common.gameevent.TickEvent; import cpw.mods.fml.common.gameevent.TickEvent.Phase; import cpw.mods.fml.common.gameevent.TickEvent.WorldTickEvent; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; -import cpw.mods.fml.common.registry.GameRegistry; import cpw.mods.fml.relauncher.ReflectionHelper; import net.minecraft.block.Block; import net.minecraft.block.BlockBush; @@ -183,6 +180,12 @@ public class ModEventHandler { if(MobConfig.enableDucks && event.player instanceof EntityPlayerMP && !event.player.getEntityData().getCompoundTag(EntityPlayer.PERSISTED_NBT_TAG).getBoolean("hasDucked")) PacketDispatcher.wrapper.sendTo(new PlayerInformPacket("Press O to Duck!", MainRegistry.proxy.ID_DUCK, 30_000), (EntityPlayerMP) event.player); + + if(event.player instanceof EntityPlayerMP && !event.player.getEntityData().getCompoundTag(EntityPlayer.PERSISTED_NBT_TAG).getBoolean("hasGuide")) { + event.player.inventory.addItemStackToInventory(new ItemStack(ModItems.book_guide, 1, BookType.STARTER.ordinal())); + event.player.inventoryContainer.detectAndSendChanges(); + event.player.getEntityData().getCompoundTag(EntityPlayer.PERSISTED_NBT_TAG).setBoolean("hasGuide", true); + } } } @@ -1512,4 +1515,24 @@ public class ModEventHandler { } } } + + @SubscribeEvent + public void filterBrokenEntity(EntityJoinWorldEvent event) { + + Entity entity = event.entity; + Entity[] parts = entity.getParts(); + + //MainRegistry.logger.error("Trying to spawn entity " + entity.getClass().getCanonicalName()); + + if(parts != null) { + + for(int i = 0; i < parts.length; i++) { + if(parts[i] == null) { + MainRegistry.logger.error("Prevented spawning of multipart entity " + entity.getClass().getCanonicalName() + " due to parts being null!"); + event.setCanceled(true); + return; + } + } + } + } } diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index aced6c96a..63b42b856 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -51,6 +51,7 @@ public class ResourceManager { public static final IModelCustom turret_maxwell = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/turrets/turret_microwave.obj")); public static final IModelCustom turret_fritz = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/turrets/turret_fritz.obj")); public static final IModelCustom turret_brandon = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/turrets/turret_brandon.obj")); + public static final IModelCustom turret_arty = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/turrets/turret_arty.obj")); public static final IModelCustom turret_howard_damaged = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/turrets/turret_howard_damaged.obj")); @@ -344,6 +345,7 @@ public class ResourceManager { public static final ResourceLocation turret_maxwell_tex = new ResourceLocation(RefStrings.MODID, "textures/models/turrets/maxwell.png"); public static final ResourceLocation turret_fritz_tex = new ResourceLocation(RefStrings.MODID, "textures/models/turrets/fritz.png"); public static final ResourceLocation turret_brandon_tex = new ResourceLocation(RefStrings.MODID, "textures/models/turrets/brandon.png"); + public static final ResourceLocation turret_arty_tex = new ResourceLocation(RefStrings.MODID, "textures/models/turrets/arty.png"); public static final ResourceLocation turret_base_rusted= new ResourceLocation(RefStrings.MODID, "textures/models/turrets/rusted/base.png"); diff --git a/src/main/java/com/hbm/module/ModuleBurnTime.java b/src/main/java/com/hbm/module/ModuleBurnTime.java index 3abb1bc37..5d2c8327c 100644 --- a/src/main/java/com/hbm/module/ModuleBurnTime.java +++ b/src/main/java/com/hbm/module/ModuleBurnTime.java @@ -53,7 +53,7 @@ public class ModuleBurnTime { public List getDesc() { List list = new ArrayList(); - list.add(EnumChatFormatting.YELLOW + "Burn time bonuses:"); + list.add(EnumChatFormatting.GOLD + "Burn time bonuses:"); addIf(list, "Logs", modLog); addIf(list, "Wood", modWood); @@ -77,7 +77,7 @@ public class ModuleBurnTime { private String getPercent(double mod) { mod -= 1D; - String num = (((int) (mod * 1000)) / 10D) + "%"; + String num = ((int) (mod * 100)) + "%"; if(mod < 0) num = EnumChatFormatting.RED + "-" + num; diff --git a/src/main/java/com/hbm/render/item/ItemRenderLibrary.java b/src/main/java/com/hbm/render/item/ItemRenderLibrary.java index 21d91dbb3..64254fb6a 100644 --- a/src/main/java/com/hbm/render/item/ItemRenderLibrary.java +++ b/src/main/java/com/hbm/render/item/ItemRenderLibrary.java @@ -1307,6 +1307,18 @@ public class ItemRenderLibrary { } GL11.glShadeModel(GL11.GL_FLAT); }}); + + renderers.put(Item.getItemFromBlock(ModBlocks.furnace_iron), new ItemRenderBase( ) { + public void renderInventory() { + GL11.glTranslated(0, -2, 0); + GL11.glScaled(5, 5, 5); + } + public void renderCommon() { + GL11.glRotated(90, 0, 1, 0); + bindTexture(ResourceManager.furnace_iron_tex); + ResourceManager.furnace_iron.renderPart("Main"); + ResourceManager.furnace_iron.renderPart("Off"); + }}); } private static void bindTexture(ResourceLocation res) { diff --git a/src/main/java/com/hbm/render/tileentity/RenderFurnaceIron.java b/src/main/java/com/hbm/render/tileentity/RenderFurnaceIron.java index ca4c1f6de..58bf50998 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderFurnaceIron.java +++ b/src/main/java/com/hbm/render/tileentity/RenderFurnaceIron.java @@ -4,7 +4,9 @@ import org.lwjgl.opengl.GL11; import com.hbm.blocks.BlockDummyable; import com.hbm.main.ResourceManager; +import com.hbm.tileentity.machine.TileEntityFurnaceIron; +import net.minecraft.client.renderer.OpenGlHelper; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; import net.minecraft.tileentity.TileEntity; @@ -26,9 +28,26 @@ public class RenderFurnaceIron extends TileEntitySpecialRenderer { GL11.glTranslated(-0.5D, 0, -0.5D); + TileEntityFurnaceIron furnace = (TileEntityFurnaceIron) tileEntity; + bindTexture(ResourceManager.furnace_iron_tex); ResourceManager.furnace_iron.renderPart("Main"); - ResourceManager.furnace_iron.renderPart("Off"); + + if(furnace.wasOn) { + GL11.glPushMatrix(); + GL11.glPushAttrib(GL11.GL_LIGHTING_BIT); + + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glDisable(GL11.GL_CULL_FACE); + OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, 240F, 240F); + ResourceManager.furnace_iron.renderPart("On"); + GL11.glEnable(GL11.GL_LIGHTING); + + GL11.glPopAttrib(); + GL11.glPopMatrix(); + } else { + ResourceManager.furnace_iron.renderPart("Off"); + } GL11.glPopMatrix(); } diff --git a/src/main/java/com/hbm/render/tileentity/RenderTurretArty.java b/src/main/java/com/hbm/render/tileentity/RenderTurretArty.java new file mode 100644 index 000000000..b5d6cf13f --- /dev/null +++ b/src/main/java/com/hbm/render/tileentity/RenderTurretArty.java @@ -0,0 +1,43 @@ +package com.hbm.render.tileentity; + +import org.lwjgl.opengl.GL11; + +import com.hbm.main.ResourceManager; +import com.hbm.tileentity.turret.TileEntityTurretArty; + +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.Vec3; + +public class RenderTurretArty extends TileEntitySpecialRenderer { + + @Override + public void renderTileEntityAt(TileEntity te, double x, double y, double z, float interp) { + + TileEntityTurretArty turret = (TileEntityTurretArty)te; + Vec3 pos = turret.getHorizontalOffset(); + + GL11.glPushMatrix(); + GL11.glTranslated(x + pos.xCoord, y, z + pos.zCoord); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glEnable(GL11.GL_CULL_FACE); + GL11.glShadeModel(GL11.GL_SMOOTH); + + bindTexture(ResourceManager.turret_arty_tex); + ResourceManager.turret_arty.renderPart("Base"); + double yaw = -Math.toDegrees(turret.lastRotationYaw + (turret.rotationYaw - turret.lastRotationYaw) * interp) - 90D; + double pitch = Math.toDegrees(turret.lastRotationPitch + (turret.rotationPitch - turret.lastRotationPitch) * interp); + + GL11.glRotated(yaw - 90, 0, 1, 0); + ResourceManager.turret_arty.renderPart("Carriage"); + + GL11.glTranslated(0, 3, 0); + GL11.glRotated(pitch, 1, 0, 0); + GL11.glTranslated(0, -3, 0); + ResourceManager.turret_arty.renderPart("Cannon"); + ResourceManager.turret_arty.renderPart("Barrel"); + + GL11.glShadeModel(GL11.GL_FLAT); + GL11.glPopMatrix(); + } +} diff --git a/src/main/java/com/hbm/tileentity/TileMappings.java b/src/main/java/com/hbm/tileentity/TileMappings.java index 6d4f1ca21..174190c3e 100644 --- a/src/main/java/com/hbm/tileentity/TileMappings.java +++ b/src/main/java/com/hbm/tileentity/TileMappings.java @@ -243,6 +243,7 @@ public class TileMappings { put(TileEntityTurretMaxwell.class, "tileentity_turret_maxwell"); put(TileEntityTurretFritz.class, "tileentity_turret_fritz"); put(TileEntityTurretBrandon.class, "tileentity_turret_brandon"); + put(TileEntityTurretArty.class, "tileentity_turret_arty"); } private static void putMachines() { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceIron.java b/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceIron.java index 8772e2647..a4b79c8e3 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceIron.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceIron.java @@ -3,23 +3,31 @@ package com.hbm.tileentity.machine; import com.hbm.inventory.UpgradeManager; import com.hbm.inventory.container.ContainerFurnaceIron; import com.hbm.inventory.gui.GUIFurnaceIron; +import com.hbm.items.ModItems; import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import com.hbm.module.ModuleBurnTime; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; +import api.hbm.energy.IBatteryItem; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.item.ItemStack; import net.minecraft.item.crafting.FurnaceRecipes; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntityFurnace; +import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; public class TileEntityFurnaceIron extends TileEntityMachineBase implements IGUIProvider { public int maxBurnTime; public int burnTime; + public boolean wasOn = false; public int progress; public int processingTime; @@ -51,12 +59,15 @@ public class TileEntityFurnaceIron extends TileEntityMachineBase implements IGUI UpgradeManager.eval(slots, 4, 4); this.processingTime = baseTime - (100 * Math.min(UpgradeManager.getLevel(UpgradeType.SPEED), 3) / 3); + wasOn = false; + if(burnTime <= 0) { for(int i = 1; i < 3; i++) { if(slots[i] != null) { int fuel = burnModule.getBurnTime(slots[i]); + //int fuel = TileEntityFurnace.getItemBurnTime(slots[i]); if(fuel > 0) { this.maxBurnTime = this.burnTime = fuel; @@ -73,9 +84,15 @@ public class TileEntityFurnaceIron extends TileEntityMachineBase implements IGUI } if(canSmelt()) { + wasOn = true; this.progress++; + this.burnTime--; - if(this.progress > this.processingTime) { + if(this.progress % 15 == 0) { + worldObj.playSoundEffect(xCoord, yCoord, zCoord, "fire.fire", 1.0F, 0.5F + worldObj.rand.nextFloat() * 0.5F); + } + + if(this.progress >= this.processingTime) { ItemStack result = FurnaceRecipes.smelting().getSmeltingResult(slots[0]); if(slots[3] == null) { @@ -85,7 +102,12 @@ public class TileEntityFurnaceIron extends TileEntityMachineBase implements IGUI } this.decrStackSize(0, 1); + + this.progress = 0; + this.markDirty(); } + } else { + this.progress = 0; } NBTTagCompound data = new NBTTagCompound(); @@ -93,7 +115,22 @@ public class TileEntityFurnaceIron extends TileEntityMachineBase implements IGUI data.setInteger("burnTime", this.burnTime); data.setInteger("progress", this.progress); data.setInteger("processingTime", this.processingTime); + data.setBoolean("wasOn", this.wasOn); this.networkPack(data, 50); + } else { + + if(this.progress > 0) { + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - 10); + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + + double offset = this.progress % 2 == 0 ? 1 : 0.5; + worldObj.spawnParticle("smoke", xCoord + 0.5 - dir.offsetX * offset - rot.offsetX * 0.1875, yCoord + 2, zCoord + 0.5 - dir.offsetZ * offset - rot.offsetZ * 0.1875, 0.0, 0.01, 0.0); + + if(this.progress % 5 == 0) { + double rand = worldObj.rand.nextDouble(); + worldObj.spawnParticle("flame", xCoord + 0.5 + dir.offsetX * 0.25 + rot.offsetX * rand, yCoord + 0.25 + worldObj.rand.nextDouble() * 0.25, zCoord + 0.5 + dir.offsetZ * 0.25 + rot.offsetZ * rand, 0.0, 0.0, 0.0); + } + } } } @@ -103,6 +140,7 @@ public class TileEntityFurnaceIron extends TileEntityMachineBase implements IGUI this.burnTime = nbt.getInteger("burnTime"); this.progress = nbt.getInteger("progress"); this.processingTime = nbt.getInteger("processingTime"); + this.wasOn = nbt.getBoolean("wasOn"); } public boolean canSmelt() { @@ -120,6 +158,28 @@ public class TileEntityFurnaceIron extends TileEntityMachineBase implements IGUI return true; } + + @Override + public int[] getAccessibleSlotsFromSide(int meta) { + return new int[] { 0, 1, 2, 3 }; + } + + @Override + public boolean isItemValidForSlot(int i, ItemStack itemStack) { + + if(i == 0) + return FurnaceRecipes.smelting().getSmeltingResult(itemStack) != null; + + if(i < 3) + return burnModule.getBurnTime(itemStack) > 0; + + return false; + } + + @Override + public boolean canExtractItem(int i, ItemStack itemStack, int j) { + return i == 3; + } @Override public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { @@ -130,4 +190,29 @@ public class TileEntityFurnaceIron extends TileEntityMachineBase implements IGUI public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIFurnaceIron(player.inventory, this); } + + AxisAlignedBB bb = null; + + @Override + public AxisAlignedBB getRenderBoundingBox() { + + if(bb == null) { + bb = AxisAlignedBB.getBoundingBox( + xCoord - 1, + yCoord, + zCoord - 1, + xCoord + 2, + yCoord + 3, + zCoord + 2 + ); + } + + return bb; + } + + @Override + @SideOnly(Side.CLIENT) + public double getMaxRenderDistanceSquared() { + return 65536.0D; + } } diff --git a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretArty.java b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretArty.java new file mode 100644 index 000000000..e98934386 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretArty.java @@ -0,0 +1,107 @@ +package com.hbm.tileentity.turret; + +import java.util.ArrayList; +import java.util.List; + +import com.hbm.handler.BulletConfigSyncingUtil; +import com.hbm.handler.BulletConfiguration; +import com.hbm.inventory.container.ContainerTurretBase; +import com.hbm.inventory.gui.GUITurretArty; +import com.hbm.packet.AuxParticlePacketNT; +import com.hbm.packet.PacketDispatcher; +import com.hbm.tileentity.IGUIProvider; + +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.Vec3; +import net.minecraft.world.World; + +public class TileEntityTurretArty extends TileEntityTurretBaseNT implements IGUIProvider { + + public boolean directMode = false; + + static List configs = new ArrayList(); + + static { + configs.add(BulletConfigSyncingUtil.SHELL_NORMAL); + configs.add(BulletConfigSyncingUtil.SHELL_EXPLOSIVE); + configs.add(BulletConfigSyncingUtil.SHELL_AP); + configs.add(BulletConfigSyncingUtil.SHELL_DU); + configs.add(BulletConfigSyncingUtil.SHELL_W9); + } + + @Override + protected List getAmmoList() { + return configs; + } + + @Override + public String getName() { + return "container.turretArty"; + } + + @Override + public long getMaxPower() { + return 100000; + } + + @Override + public double getBarrelLength() { + return 9D; + } + + @Override + public double getAcceptableInaccuracy() { + return 0; + } + + @Override + public double getHeightOffset() { + return 3D; + } + + @Override + public void updateFiringTick() { + + BulletConfiguration conf = this.getFirstConfigLoaded(); + + if(conf != null) { + this.spawnBullet(conf); + this.conusmeAmmo(conf.ammo); + this.worldObj.playSoundEffect(xCoord, yCoord, zCoord, "hbm:turret.jeremy_fire", 4.0F, 1.0F); + Vec3 pos = this.getTurretPos(); + Vec3 vec = Vec3.createVectorHelper(this.getBarrelLength(), 0, 0); + vec.rotateAroundZ((float) -this.rotationPitch); + vec.rotateAroundY((float) -(this.rotationYaw + Math.PI * 0.5)); + + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "vanillaExt"); + data.setString("mode", "largeexplode"); + data.setFloat("size", 0F); + data.setByte("count", (byte)5); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, pos.xCoord + vec.xCoord, pos.yCoord + vec.yCoord, pos.zCoord + vec.zCoord), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50)); + } + } + + @Override + public void handleButtonPacket(int value, int meta) { + if(meta == 5) { + this.directMode = !this.directMode; + } else{ + super.handleButtonPacket(value, meta); + } + } + + @Override + public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new ContainerTurretBase(player.inventory, this); + } + + @Override + public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new GUITurretArty(player.inventory, this); + } +} diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 26c150436..bb61339ef 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -238,6 +238,7 @@ container.factoryTitanium=Einfache Fabrik container.fluidtank=Tank container.forceField=Kraftfeldgenerator container.frackingTower=Hydraulischer Frackingturm +container.furnaceIron=Eiserner Ofen container.fusionMultiblock=Großer Fusionsreaktor container.fusionaryWatzPlant=Fusionares Watzwerk container.gasCentrifuge=Gaszentrifuge @@ -3231,6 +3232,7 @@ tile.frozen_dirt.name=Gefrorene Erde tile.frozen_grass.name=Gefrorenes Gras tile.frozen_log.name=Gefrorener Baumstamm tile.frozen_planks.name=Gefrorene Holzbretter +tile.furnace_iron.name=Eiserner Ofen tile.fusion_center.name=Zentralmagnetstück tile.fusion_conductor.name=Supraleiter-Magnet tile.fusion_core.name=Fusionsreaktorsteuerung diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index bcf9d71b3..3da283cf9 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -414,6 +414,7 @@ container.factoryTitanium=Basic Factory container.fluidtank=Tank container.forceField=Forcefield Emitter container.frackingTower=Hydraulic Fracking Tower +container.furnaceIron=Iron Furnace container.fusionMultiblock=Big Fusion Reactor container.fusionaryWatzPlant=Fusionary Watz Plant container.gasCentrifuge=Gas Centrifuge @@ -3623,6 +3624,7 @@ tile.frozen_dirt.name=Frozen Dirt tile.frozen_grass.name=Frozen Grass tile.frozen_log.name=Frozen Log tile.frozen_planks.name=Frozen Planks +tile.furnace_iron.name=Iron Furnace tile.fusion_center.name=Central Magnet Piece tile.fusion_conductor.name=Superconducting Magnet tile.fusion_core.name=Fusion Reactor Control diff --git a/src/main/resources/assets/hbm/models/turrets/turret_arty.obj b/src/main/resources/assets/hbm/models/turrets/turret_arty.obj new file mode 100644 index 000000000..e84a5dc3d --- /dev/null +++ b/src/main/resources/assets/hbm/models/turrets/turret_arty.obj @@ -0,0 +1,4319 @@ +# Blender v2.79 (sub 0) OBJ File: 'turret_arty.blend' +# www.blender.org +o Carriage +v 0.000000 1.875000 -1.500000 +v -0.574025 1.875000 -1.385819 +v -1.060660 1.875000 -1.060660 +v -1.385819 1.875000 -0.574025 +v -1.500000 1.875000 0.000000 +v -1.385819 1.875000 0.574025 +v -1.060660 1.875000 1.060660 +v -0.574025 1.875000 1.385819 +v 0.000000 1.875000 1.500000 +v 0.574025 1.875000 1.385819 +v 1.060660 1.875000 1.060660 +v 1.385819 1.875000 0.574025 +v 1.500000 1.875000 0.000000 +v 1.385819 1.875000 -0.574025 +v 1.060660 1.875000 -1.060660 +v 0.574024 1.875000 -1.385820 +v 0.000000 2.000000 -1.500000 +v -0.574025 2.000000 -1.385819 +v -1.060660 2.000000 -1.060660 +v -1.385819 2.000000 -0.574025 +v -1.500000 2.000000 0.000000 +v -1.385819 2.000000 0.574025 +v -1.060660 2.000000 1.060660 +v -0.574025 2.000000 1.385819 +v 0.000000 2.000000 1.500000 +v 0.574025 2.000000 1.385819 +v 1.060660 2.000000 1.060660 +v 1.385819 2.000000 0.574025 +v 1.500000 2.000000 0.000000 +v 1.385819 2.000000 -0.574025 +v 1.060660 2.000000 -1.060660 +v 0.574024 2.000000 -1.385820 +v 0.500000 2.500000 0.500000 +v 0.500000 2.500000 -0.500000 +v -1.250000 2.125000 0.750000 +v 1.250000 2.125000 0.750000 +v 0.500000 3.000000 -0.500000 +v -1.250000 2.125000 -0.750000 +v 1.250000 2.125000 -0.750000 +v 1.250000 2.000000 -0.750000 +v -1.250000 2.000000 -0.750000 +v 1.250000 2.000000 0.750000 +v -1.250000 2.000000 0.750000 +v 0.750000 2.000000 -1.250000 +v -0.750000 2.000000 -1.250000 +v 0.750000 2.000000 -0.750000 +v -0.750000 2.000000 -0.750000 +v 0.500000 3.000000 0.500000 +v 0.500000 3.250000 0.433012 +v 0.500000 3.433012 0.250000 +v 0.500000 3.500000 0.000000 +v 0.500000 3.433013 -0.250000 +v 0.500000 3.250000 -0.433012 +v 0.750000 2.125000 -1.250000 +v -0.750000 2.125000 -1.250000 +v 0.750000 2.125000 -0.750000 +v -0.750000 2.125000 -0.750000 +v -0.750000 2.125000 1.250000 +v 0.750000 2.125000 1.250000 +v -0.750000 2.000000 1.250000 +v 0.750000 2.000000 1.250000 +v 0.500000 2.125000 0.500000 +v 0.500000 2.250000 -1.000000 +v 0.750000 2.125000 0.750000 +v -0.750000 2.125000 0.750000 +v 0.750000 2.000000 0.750000 +v -0.750000 2.000000 0.750000 +v 0.500000 2.500000 1.000000 +v 0.500000 2.125000 1.125000 +v 0.500000 2.125000 -1.000000 +v 0.625000 2.500000 0.500000 +v 0.625000 2.500000 -0.500000 +v 0.625000 2.125000 0.500000 +v 0.625000 2.125000 -1.000000 +v 0.625000 3.000000 -0.500000 +v 0.625000 3.000000 0.500000 +v 0.625000 3.250000 0.433012 +v 0.625000 3.433012 0.250000 +v 0.625000 2.250000 -1.000000 +v 0.625000 3.500000 0.000000 +v 0.625000 3.433013 -0.250000 +v 0.625000 3.250000 -0.433012 +v 0.625000 2.500000 1.000000 +v 0.625000 2.125000 1.125000 +v -1.501304 2.250000 0.621861 +v -1.149048 2.250000 1.149048 +v -0.621861 2.250000 1.501304 +v -0.000000 2.250000 1.625000 +v 0.621860 2.250000 1.501305 +v 1.149048 2.250000 1.149049 +v 1.501304 2.250000 0.621861 +v -1.385819 2.250000 0.574025 +v -1.060660 2.250000 1.060660 +v -0.574025 2.250000 1.385819 +v -0.000000 2.250000 1.500000 +v 0.574025 2.250000 1.385819 +v 1.060660 2.250000 1.060660 +v 1.385819 2.250000 0.574025 +v -1.501304 2.750000 0.621861 +v -1.149048 3.000000 1.149048 +v -0.621861 3.000000 1.501304 +v -0.000000 3.000000 1.625000 +v 0.621860 3.000000 1.501305 +v 1.149048 3.000000 1.149049 +v 1.501304 2.750000 0.621861 +v -1.385819 2.750000 0.574025 +v -1.060660 3.000000 1.060660 +v -0.574025 3.000000 1.385819 +v -0.000000 3.000000 1.500000 +v 0.574025 3.000000 1.385819 +v 1.060660 3.000000 1.060660 +v 1.385819 2.750000 0.574025 +v -0.593750 2.281250 1.406250 +v -0.593750 2.468750 1.406250 +v -0.593750 2.281250 0.968750 +v -0.593750 2.468750 0.968750 +v -0.531250 2.281250 1.406250 +v -0.531250 2.468750 1.406250 +v -0.531250 2.281250 0.968750 +v -0.531250 2.468750 0.968750 +v 0.531250 2.281250 1.406250 +v 0.531250 2.468750 1.406250 +v 0.531250 2.281250 0.968750 +v 0.531250 2.468750 0.968750 +v 0.593750 2.281250 1.406250 +v 0.593750 2.468750 1.406250 +v 0.593750 2.281250 0.968750 +v 0.593750 2.468750 0.968750 +v 1.250000 2.062500 0.750000 +v 1.250000 2.062500 -1.000000 +v 1.375000 2.062500 0.750000 +v 1.375000 2.062500 -1.000000 +v 1.250000 2.562500 0.750000 +v 1.250000 2.312500 -1.000000 +v 1.375000 2.562500 0.750000 +v 1.375000 2.312500 -1.000000 +v -1.250000 2.562500 -0.500000 +v 1.250000 2.562500 -0.500000 +v -1.375000 2.562500 -0.500000 +v 1.375000 2.562500 -0.500000 +v -1.250000 2.312500 -1.000000 +v -1.250000 2.562500 0.750000 +v -1.375000 2.312500 -1.000000 +v -1.375000 2.562500 0.750000 +v -1.250000 2.062500 -1.000000 +v -1.250000 2.062500 0.750000 +v -1.375000 2.062500 -1.000000 +v -1.375000 2.062500 0.750000 +v -0.625000 2.500000 0.500000 +v -0.625000 2.500000 -0.500000 +v -0.625000 3.000000 -0.500000 +v -0.625000 3.000000 0.500000 +v -0.625000 3.250000 0.433012 +v -0.625000 3.433012 0.250000 +v -0.625000 3.500000 0.000000 +v -0.625000 3.433013 -0.250000 +v -0.625000 3.250000 -0.433012 +v -0.625000 2.125000 0.500000 +v -0.625000 2.250000 -1.000000 +v -0.625000 2.500000 1.000000 +v -0.625000 2.125000 1.125000 +v -0.625000 2.125000 -1.000000 +v -0.500000 2.500000 0.500000 +v -0.500000 2.500000 -0.500000 +v -0.500000 2.125000 0.500000 +v -0.500000 2.125000 -1.000000 +v -0.500000 3.000000 -0.500000 +v -0.500000 3.000000 0.500000 +v -0.500000 3.250000 0.433012 +v -0.500000 3.433012 0.250000 +v -0.500000 2.250000 -1.000000 +v -0.500000 3.500000 0.000000 +v -0.500000 3.433013 -0.250000 +v -0.500000 3.250000 -0.433012 +v -0.500000 2.500000 1.000000 +v -0.500000 2.125000 1.125000 +v 0.000000 2.000000 -1.500000 +v -0.574025 2.000000 -1.385819 +v -1.060660 2.000000 -1.060660 +v -1.385819 2.000000 -0.574025 +v -1.500000 2.000000 0.000000 +v -1.385819 2.000000 0.574025 +v -1.060660 2.000000 1.060660 +v -0.574025 2.000000 1.385819 +v 0.000000 2.000000 1.500000 +v 0.574025 2.000000 1.385819 +v 1.060660 2.000000 1.060660 +v 1.385819 2.000000 0.574025 +v 1.500000 2.000000 0.000000 +v 1.385819 2.000000 -0.574025 +v 1.060660 2.000000 -1.060660 +v 0.574024 2.000000 -1.385820 +v -1.501304 2.250000 0.621861 +v -1.149048 2.250000 1.149048 +v -0.621861 2.250000 1.501304 +v -0.000000 2.250000 1.625000 +v 0.621860 2.250000 1.501305 +v 1.149048 2.250000 1.149049 +v 1.501304 2.250000 0.621861 +v -1.501304 2.750000 0.621861 +v -1.149048 3.000000 1.149048 +v -0.621861 3.000000 1.501304 +v -0.000000 3.000000 1.625000 +v 0.621860 3.000000 1.501305 +v 1.149048 3.000000 1.149049 +v 1.501304 2.750000 0.621861 +v -1.385819 2.250000 0.574025 +v -1.060660 2.250000 1.060660 +v -0.574025 2.250000 1.385819 +v -0.000000 2.250000 1.500000 +v 0.574025 2.250000 1.385819 +v 1.060660 2.250000 1.060660 +v 1.385819 2.250000 0.574025 +v -1.385819 2.750000 0.574025 +v -1.060660 3.000000 1.060660 +v -0.574025 3.000000 1.385819 +v -0.000000 3.000000 1.500000 +v 0.574025 3.000000 1.385819 +v 1.060660 3.000000 1.060660 +v 1.385819 2.750000 0.574025 +v 0.500000 2.500000 0.500000 +v 0.500000 2.500000 -0.500000 +v 0.500000 3.000000 -0.500000 +v 0.500000 3.000000 0.500000 +v 0.500000 3.250000 0.433012 +v 0.500000 3.433012 0.250000 +v 0.500000 3.500000 0.000000 +v 0.500000 3.433013 -0.250000 +v 0.500000 3.250000 -0.433012 +v 0.625000 2.500000 0.500000 +v 0.625000 2.500000 -0.500000 +v 0.625000 3.000000 -0.500000 +v 0.625000 3.000000 0.500000 +v 0.625000 3.250000 0.433012 +v 0.625000 3.433012 0.250000 +v 0.625000 3.500000 0.000000 +v 0.625000 3.433013 -0.250000 +v 0.625000 3.250000 -0.433012 +v -0.625000 2.500000 0.500000 +v -0.625000 2.500000 -0.500000 +v -0.625000 3.000000 -0.500000 +v -0.625000 3.000000 0.500000 +v -0.625000 3.250000 0.433012 +v -0.625000 3.433012 0.250000 +v -0.625000 3.500000 0.000000 +v -0.625000 3.433013 -0.250000 +v -0.625000 3.250000 -0.433012 +v -0.500000 2.500000 0.500000 +v -0.500000 2.500000 -0.500000 +v -0.500000 3.000000 -0.500000 +v -0.500000 3.000000 0.500000 +v -0.500000 3.250000 0.433012 +v -0.500000 3.433012 0.250000 +v -0.500000 3.500000 0.000000 +v -0.500000 3.433013 -0.250000 +v -0.500000 3.250000 -0.433012 +vt 0.408333 0.670000 +vt 0.308333 0.710000 +vt 0.308333 0.670000 +vt 0.408333 0.500000 +vt 0.308333 0.510000 +vt 0.308333 0.500000 +vt 0.500000 0.610000 +vt 0.466667 0.640000 +vt 0.500000 0.640000 +vt 0.275000 0.710000 +vt 0.308333 0.720000 +vt 0.275000 0.720000 +vt 0.408333 0.720000 +vt 0.408333 0.550000 +vt 0.441667 0.710000 +vt 0.450000 0.670000 +vt 0.450000 0.710000 +vt 0.408333 0.510000 +vt 0.408333 0.710000 +vt 0.441667 0.720000 +vt 0.441667 0.550000 +vt 0.450000 0.510000 +vt 0.450000 0.550000 +vt 0.441667 0.670000 +vt 0.275000 0.550000 +vt 0.275000 0.670000 +vt 0.275000 0.500000 +vt 0.266667 0.710000 +vt 0.266667 0.670000 +vt 0.566667 0.640000 +vt 0.600000 0.620000 +vt 0.600000 0.610000 +vt 0.266667 0.550000 +vt 0.441667 0.510000 +vt 0.266667 0.510000 +vt 0.500000 0.610000 +vt 0.466667 0.640000 +vt 0.458333 0.610000 +vt 0.600000 0.610000 +vt 0.600000 0.620000 +vt 0.566667 0.640000 +vt 0.566667 0.680000 +vt 0.608333 0.660000 +vt 0.608333 0.620000 +vt 0.566667 0.680000 +vt 0.500000 0.640000 +vt 0.450000 0.640000 +vt 0.458333 0.680000 +vt 0.450000 0.680000 +vt 0.608333 0.610000 +vt 0.450000 0.610000 +vt 0.458333 0.640000 +vt 0.516772 0.714549 +vt 0.500210 0.680126 +vt 0.562019 0.700000 +vt 0.566457 0.680126 +vt 0.500210 0.680126 +vt 0.516772 0.714549 +vt 0.858333 0.610000 +vt 0.866667 0.570000 +vt 0.866667 0.610000 +vt 0.608333 0.610000 +vt 0.600000 0.570000 +vt 0.608333 0.570000 +vt 0.650000 0.630000 +vt 0.608333 0.640000 +vt 0.608333 0.630000 +vt 0.691667 0.630000 +vt 0.650000 0.640000 +vt 0.733333 0.630000 +vt 0.691667 0.640000 +vt 0.775000 0.630000 +vt 0.733333 0.640000 +vt 0.816667 0.630000 +vt 0.775000 0.640000 +vt 0.858333 0.630000 +vt 0.816667 0.640000 +vt 0.816667 0.560000 +vt 0.858333 0.570000 +vt 0.816667 0.570000 +vt 0.775000 0.560000 +vt 0.775000 0.570000 +vt 0.733333 0.560000 +vt 0.733333 0.570000 +vt 0.691667 0.560000 +vt 0.691667 0.570000 +vt 0.650000 0.560000 +vt 0.650000 0.570000 +vt 0.608333 0.560000 +vt 0.558333 0.250000 +vt 0.587500 0.265000 +vt 0.558333 0.265000 +vt 0.587500 0.285000 +vt 0.558333 0.270000 +vt 0.587500 0.270000 +vt 0.587500 0.285000 +vt 0.558333 0.270000 +vt 0.587500 0.270000 +vt 0.558333 0.250000 +vt 0.587500 0.265000 +vt 0.558333 0.265000 +vt 0.587500 0.290000 +vt 0.558333 0.285000 +vt 0.587500 0.290000 +vt 0.558333 0.285000 +vt 0.600000 0.510000 +vt 0.483333 0.500000 +vt 0.600000 0.500000 +vt 0.483333 0.560000 +vt 0.566667 0.550000 +vt 0.566667 0.560000 +vt 0.450000 0.550000 +vt 0.483333 0.560000 +vt 0.450000 0.560000 +vt 0.600000 0.530000 +vt 0.566667 0.550000 +vt 0.608333 0.510000 +vt 0.483333 0.600000 +vt 0.566667 0.560000 +vt 0.600000 0.550000 +vt 0.600000 0.560000 +vt 0.600000 0.550000 +vt 0.600000 0.560000 +vt 0.483333 0.600000 +vt 0.608333 0.510000 +vt 0.600000 0.530000 +vt 0.600000 0.510000 +vt 0.450000 0.550000 +vt 0.450000 0.560000 +vt 0.483333 0.500000 +vt 0.600000 0.500000 +vt 0.500000 0.610000 +vt 0.466667 0.640000 +vt 0.500000 0.640000 +vt 0.566667 0.640000 +vt 0.600000 0.620000 +vt 0.600000 0.610000 +vt 0.500000 0.610000 +vt 0.466667 0.640000 +vt 0.458333 0.610000 +vt 0.600000 0.610000 +vt 0.600000 0.620000 +vt 0.566667 0.640000 +vt 0.566667 0.680000 +vt 0.608333 0.660000 +vt 0.608333 0.620000 +vt 0.566667 0.680000 +vt 0.500000 0.640000 +vt 0.450000 0.640000 +vt 0.458333 0.680000 +vt 0.450000 0.680000 +vt 0.608333 0.610000 +vt 0.450000 0.610000 +vt 0.458333 0.640000 +vt 0.516772 0.714549 +vt 0.500210 0.680126 +vt 0.562019 0.700000 +vt 0.566457 0.680126 +vt 0.500210 0.680126 +vt 0.516772 0.714549 +vt 0.825000 0.248422 +vt 0.726315 0.130000 +vt 0.825000 0.011578 +vt 0.466667 0.610000 +vt 0.308333 0.550000 +vt 0.275000 0.510000 +vt 0.441667 0.500000 +vt 0.500000 0.680000 +vt 0.600000 0.660000 +vt 0.500000 0.680000 +vt 0.504648 0.700000 +vt 0.566457 0.680126 +vt 0.549895 0.714549 +vt 0.533333 0.719874 +vt 0.504648 0.700000 +vt 0.533333 0.719874 +vt 0.549895 0.714549 +vt 0.562019 0.700000 +vt 0.600000 0.610000 +vt 0.858333 0.640000 +vt 0.858333 0.560000 +vt 0.587500 0.250000 +vt 0.587500 0.250000 +vt 0.558333 0.290000 +vt 0.558333 0.290000 +vt 0.483333 0.510000 +vt 0.483333 0.550000 +vt 0.483333 0.550000 +vt 0.608333 0.530000 +vt 0.600000 0.580000 +vt 0.600000 0.600000 +vt 0.600000 0.580000 +vt 0.600000 0.600000 +vt 0.608333 0.530000 +vt 0.483333 0.510000 +vt 0.466667 0.610000 +vt 0.500000 0.680000 +vt 0.600000 0.660000 +vt 0.500000 0.680000 +vt 0.504648 0.700000 +vt 0.566457 0.680126 +vt 0.549895 0.714549 +vt 0.533333 0.719874 +vt 0.504648 0.700000 +vt 0.533333 0.719874 +vt 0.549895 0.714549 +vt 0.562019 0.700000 +vt 0.787235 0.239407 +vt 0.755219 0.213737 +vt 0.733827 0.175318 +vt 0.733827 0.084682 +vt 0.755219 0.046263 +vt 0.787235 0.020592 +vt 0.862765 0.020592 +vt 0.894781 0.046263 +vt 0.916173 0.084682 +vt 0.923685 0.130000 +vt 0.916173 0.175318 +vt 0.894781 0.213737 +vt 0.862765 0.239408 +vt 0.741667 0.000000 +vt 0.704167 0.010000 +vt 0.704167 0.000000 +vt 0.441667 0.000000 +vt 0.404167 0.010000 +vt 0.404167 0.000000 +vt 0.779167 0.000000 +vt 0.741667 0.010000 +vt 0.479167 -0.000000 +vt 0.441667 0.010000 +vt 0.816667 0.000000 +vt 0.779167 0.010000 +vt 0.516667 0.000000 +vt 0.479167 0.010000 +vt 0.854167 0.000000 +vt 0.816667 0.010000 +vt 0.554167 0.000000 +vt 0.516667 0.010000 +vt 0.891667 0.000000 +vt 0.854167 0.010000 +vt 0.591667 0.000000 +vt 0.554167 0.010000 +vt 0.929167 0.000000 +vt 0.891667 0.010000 +vt 0.629167 0.000000 +vt 0.591667 0.010000 +vt 0.966667 0.000000 +vt 0.929167 0.010000 +vt 0.666667 0.010000 +vt 0.666667 0.000000 +vt 0.629167 0.010000 +vt 0.366667 0.010000 +vt 0.366667 0.000000 +vt 0.775000 0.570000 +vt 0.733333 0.630000 +vt 0.733333 0.570000 +vt 0.575000 0.680000 +vt 0.566667 0.640000 +vt 0.575000 0.640000 +vt 0.491667 0.720000 +vt 0.500000 0.740000 +vt 0.491667 0.740000 +vt 0.575000 0.700000 +vt 0.566667 0.680000 +vt 0.575000 0.740000 +vt 0.566667 0.720000 +vt 0.575000 0.720000 +vt 0.491667 0.680000 +vt 0.500000 0.700000 +vt 0.491667 0.700000 +vt 0.566667 0.700000 +vt 0.500000 0.720000 +vt 0.491667 0.640000 +vt 0.500000 0.680000 +vt 0.608333 0.520000 +vt 0.650000 0.560000 +vt 0.608333 0.560000 +vt 0.575000 0.700000 +vt 0.566667 0.680000 +vt 0.575000 0.680000 +vt 0.733333 0.500000 +vt 0.775000 0.560000 +vt 0.733333 0.560000 +vt 0.575000 0.740000 +vt 0.566667 0.720000 +vt 0.575000 0.720000 +vt 0.691667 0.500000 +vt 0.691667 0.560000 +vt 0.491667 0.680000 +vt 0.500000 0.700000 +vt 0.491667 0.700000 +vt 0.816667 0.560000 +vt 0.858333 0.520000 +vt 0.858333 0.560000 +vt 0.566667 0.700000 +vt 0.650000 0.500000 +vt 0.775000 0.500000 +vt 0.500000 0.720000 +vt 0.491667 0.720000 +vt 0.491667 0.640000 +vt 0.500000 0.680000 +vt 0.650000 0.570000 +vt 0.608333 0.610000 +vt 0.608333 0.570000 +vt 0.816667 0.570000 +vt 0.775000 0.630000 +vt 0.691667 0.570000 +vt 0.650000 0.630000 +vt 0.858333 0.610000 +vt 0.816667 0.630000 +vt 0.691667 0.630000 +vt 0.500000 0.740000 +vt 0.491667 0.740000 +vt 0.566667 0.640000 +vt 0.575000 0.640000 +vt 0.966667 0.010000 +vt 0.566667 0.740000 +vt 0.500000 0.640000 +vt 0.566667 0.740000 +vt 0.816667 0.500000 +vt 0.500000 0.640000 +vt 0.858333 0.570000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.8944 -0.4472 +vn 0.0000 0.3162 0.9487 +vn 0.3827 0.0000 -0.9239 +vn -0.3827 0.0000 -0.9239 +vn -0.1427 0.9278 -0.3446 +vn 0.2638 0.9278 -0.2638 +vn 0.0000 -1.0000 0.0000 +vn -0.2823 0.9168 -0.2823 +vn 0.1528 0.9168 -0.3689 +vn -0.7071 0.0000 -0.7071 +vn 0.7071 0.0000 0.7071 +vn 0.3827 0.0000 0.9239 +vn -0.9239 0.0000 -0.3827 +vn 0.9239 0.0000 0.3827 +vn -0.9239 0.0000 0.3827 +vn 0.9239 0.0000 -0.3827 +vn -0.7071 0.0000 0.7071 +vn 0.7071 0.0000 -0.7071 +vn -0.3827 0.0000 0.9239 +vn 0.0000 0.1305 -0.9914 +vn 0.0000 0.8660 0.5000 +vn 0.0000 0.5000 -0.8660 +vn 0.0000 0.8660 -0.5000 +vn 0.0000 0.1305 0.9914 +vn 0.0000 0.5000 0.8660 +vn 0.8314 0.0000 -0.5556 +vn -0.8314 0.0000 -0.5556 +vn 0.6861 0.0000 -0.7275 +vn -0.8314 0.0000 0.5556 +vn -0.6877 0.0000 0.7259 +vn 0.8314 0.0000 0.5556 +vn 0.6877 0.0000 0.7259 +vn -0.6861 0.0000 -0.7275 +s off +f 56/1/1 55/2/1 57/3/1 +f 61/4/2 58/5/2 60/6/2 +f 62/7/3 68/8/3 33/9/3 +f 57/10/3 45/11/3 47/12/3 +f 55/2/4 44/13/4 45/11/4 +f 57/3/1 64/14/1 56/1/1 +f 56/15/4 40/16/4 46/17/4 +f 64/14/1 58/5/1 59/18/1 +f 54/19/5 46/20/5 44/13/5 +f 36/21/2 66/22/2 42/23/2 +f 39/24/5 42/23/5 40/16/5 +f 64/14/1 39/24/1 56/1/1 +f 35/25/1 57/3/1 38/26/1 +f 58/5/3 67/27/3 60/6/3 +f 38/26/4 47/28/4 41/29/4 +f 34/30/3 63/31/3 70/32/3 +f 35/25/3 41/29/3 43/33/3 +f 61/4/5 64/34/5 59/18/5 +f 67/35/2 35/25/2 43/33/2 +f 73/36/5 83/37/5 84/38/5 +f 74/39/5 79/40/5 72/41/5 +f 33/9/3 37/42/3 34/30/3 +f 34/43/6 79/40/6 63/44/6 +f 75/45/5 71/46/5 72/41/5 +f 68/47/1 71/48/1 33/49/1 +f 63/44/4 74/39/4 70/50/4 +f 69/51/7 83/52/7 68/47/7 +f 78/53/5 76/54/5 82/55/5 +f 37/56/3 48/57/3 50/58/3 +f 105/59/8 98/60/8 112/61/8 +f 99/62/9 92/63/9 85/64/9 +f 100/65/10 106/66/10 99/67/10 +f 101/68/1 107/69/1 100/65/1 +f 102/70/1 108/71/1 101/68/1 +f 103/72/1 109/73/1 102/70/1 +f 104/74/1 110/75/1 103/72/1 +f 105/76/11 111/77/11 104/74/11 +f 97/78/12 91/79/12 90/80/12 +f 96/81/12 90/80/12 89/82/12 +f 95/83/12 89/82/12 88/84/12 +f 94/85/12 88/84/12 87/86/12 +f 93/87/12 87/86/12 86/88/12 +f 92/89/12 86/88/12 85/64/12 +f 114/90/3 115/91/3 113/92/3 +f 128/93/5 125/94/5 127/95/5 +f 120/96/5 117/97/5 119/98/5 +f 122/99/3 123/100/3 121/101/3 +f 119/98/12 113/92/12 115/91/12 +f 116/102/1 118/103/1 120/96/1 +f 127/95/12 121/101/12 123/100/12 +f 124/104/1 126/105/1 128/93/1 +f 132/106/12 129/107/12 130/108/12 +f 144/109/1 137/110/1 139/111/1 +f 131/112/2 133/113/2 129/114/2 +f 132/106/5 136/115/5 140/116/5 +f 130/117/4 136/115/4 132/106/4 +f 129/118/3 133/113/3 138/119/3 +f 138/119/6 136/120/6 134/121/6 +f 139/111/6 141/122/6 143/123/6 +f 133/113/1 140/116/1 138/119/1 +f 148/124/3 144/109/3 139/111/3 +f 147/125/4 141/126/4 145/127/4 +f 145/127/5 141/126/5 137/110/5 +f 146/128/2 144/109/2 148/129/2 +f 145/127/12 148/130/12 147/131/12 +f 158/132/3 160/133/3 149/134/3 +f 150/135/3 159/136/3 162/137/3 +f 165/138/5 175/139/5 176/140/5 +f 166/141/5 171/142/5 164/143/5 +f 149/134/3 151/144/3 150/135/3 +f 150/145/6 171/142/6 159/146/6 +f 167/147/5 163/148/5 164/143/5 +f 160/149/1 163/150/1 149/151/1 +f 159/146/4 166/141/4 162/152/4 +f 161/153/7 175/154/7 160/149/7 +f 170/155/5 168/156/5 174/157/5 +f 151/158/3 152/159/3 154/160/3 +f 177/161/1 181/162/1 185/163/1 +f 56/1/1 54/19/1 55/2/1 +f 61/4/2 59/18/2 58/5/2 +f 62/7/3 69/164/3 68/8/3 +f 57/10/3 55/2/3 45/11/3 +f 55/2/4 54/19/4 44/13/4 +f 57/3/1 65/165/1 64/14/1 +f 56/15/4 39/24/4 40/16/4 +f 64/14/1 65/165/1 58/5/1 +f 54/19/5 56/15/5 46/20/5 +f 36/21/2 64/34/2 66/22/2 +f 39/24/5 36/21/5 42/23/5 +f 64/14/1 36/21/1 39/24/1 +f 35/25/1 65/165/1 57/3/1 +f 58/5/3 65/166/3 67/27/3 +f 38/26/4 57/10/4 47/28/4 +f 70/32/3 62/7/3 34/30/3 +f 62/7/3 33/9/3 34/30/3 +f 35/25/3 38/26/3 41/29/3 +f 61/4/5 66/167/5 64/34/5 +f 67/35/2 65/166/2 35/25/2 +f 73/36/5 71/46/5 83/37/5 +f 71/46/5 73/36/5 72/41/5 +f 73/36/5 74/39/5 72/41/5 +f 33/9/3 48/168/3 37/42/3 +f 34/43/6 72/169/6 79/40/6 +f 75/45/5 76/170/5 71/46/5 +f 68/47/1 83/52/1 71/48/1 +f 63/44/4 79/40/4 74/39/4 +f 69/51/7 84/38/7 83/52/7 +f 78/53/5 77/171/5 76/54/5 +f 76/54/5 75/172/5 82/55/5 +f 82/55/5 81/173/5 80/174/5 +f 80/174/5 78/53/5 82/55/5 +f 48/57/3 49/175/3 50/58/3 +f 50/58/3 51/176/3 52/177/3 +f 52/177/3 53/178/3 50/58/3 +f 53/178/3 37/56/3 50/58/3 +f 105/59/8 91/79/8 98/60/8 +f 99/62/9 106/179/9 92/63/9 +f 100/65/13 107/69/13 106/66/13 +f 101/68/1 108/71/1 107/69/1 +f 102/70/1 109/73/1 108/71/1 +f 103/72/1 110/75/1 109/73/1 +f 104/74/1 111/77/1 110/75/1 +f 105/76/14 112/180/14 111/77/14 +f 97/78/12 98/181/12 91/79/12 +f 96/81/12 97/78/12 90/80/12 +f 95/83/12 96/81/12 89/82/12 +f 94/85/12 95/83/12 88/84/12 +f 93/87/12 94/85/12 87/86/12 +f 92/89/12 93/87/12 86/88/12 +f 114/90/3 116/182/3 115/91/3 +f 128/93/5 126/105/5 125/94/5 +f 120/96/5 118/103/5 117/97/5 +f 122/99/3 124/183/3 123/100/3 +f 119/98/12 117/97/12 113/92/12 +f 116/102/1 114/184/1 118/103/1 +f 127/95/12 125/94/12 121/101/12 +f 124/104/1 122/185/1 126/105/1 +f 132/106/12 131/186/12 129/107/12 +f 144/109/1 142/187/1 137/110/1 +f 131/112/2 135/188/2 133/113/2 +f 135/188/5 131/186/5 140/116/5 +f 131/186/5 132/106/5 140/116/5 +f 130/117/4 134/189/4 136/115/4 +f 134/190/3 130/191/3 138/119/3 +f 130/191/3 129/118/3 138/119/3 +f 138/119/6 140/116/6 136/120/6 +f 139/111/6 137/110/6 141/122/6 +f 133/113/1 135/188/1 140/116/1 +f 143/192/3 147/193/3 139/111/3 +f 147/193/3 148/124/3 139/111/3 +f 147/125/4 143/194/4 141/126/4 +f 142/187/5 146/195/5 137/110/5 +f 146/195/5 145/127/5 137/110/5 +f 146/128/2 142/187/2 144/109/2 +f 145/127/12 146/195/12 148/130/12 +f 158/132/3 161/196/3 160/133/3 +f 162/137/3 158/132/3 150/135/3 +f 158/132/3 149/134/3 150/135/3 +f 165/138/5 163/148/5 175/139/5 +f 163/148/5 165/138/5 164/143/5 +f 165/138/5 166/141/5 164/143/5 +f 149/134/3 152/197/3 151/144/3 +f 150/145/6 164/198/6 171/142/6 +f 167/147/5 168/199/5 163/148/5 +f 160/149/1 175/154/1 163/150/1 +f 159/146/4 171/142/4 166/141/4 +f 161/153/7 176/140/7 175/154/7 +f 170/155/5 169/200/5 168/156/5 +f 168/156/5 167/201/5 174/157/5 +f 174/157/5 173/202/5 172/203/5 +f 172/203/5 170/155/5 174/157/5 +f 152/159/3 153/204/3 154/160/3 +f 154/160/3 155/205/3 156/206/3 +f 156/206/3 157/207/3 154/160/3 +f 157/207/3 151/158/3 154/160/3 +f 177/161/1 178/208/1 181/162/1 +f 178/208/1 179/209/1 181/162/1 +f 179/209/1 180/210/1 181/162/1 +f 181/162/1 182/211/1 185/163/1 +f 182/211/1 183/212/1 185/163/1 +f 183/212/1 184/213/1 185/163/1 +f 185/163/1 186/214/1 187/215/1 +f 187/215/1 188/216/1 189/217/1 +f 189/217/1 190/218/1 191/219/1 +f 191/219/1 192/220/1 177/161/1 +f 185/163/1 187/215/1 189/217/1 +f 189/217/1 191/219/1 185/163/1 +f 191/219/1 177/161/1 185/163/1 +s 1 +f 3/221/15 18/222/9 2/223/9 +f 11/224/16 26/225/17 10/226/17 +f 4/227/18 19/228/15 3/221/15 +f 12/229/19 27/230/16 11/224/16 +f 5/231/3 20/232/18 4/227/18 +f 13/233/5 28/234/19 12/229/19 +f 6/235/20 21/236/3 5/231/3 +f 14/237/21 29/238/5 13/233/5 +f 7/239/22 22/240/20 6/235/20 +f 15/241/23 30/242/21 14/237/21 +f 8/243/24 23/244/22 7/239/22 +f 16/245/8 31/246/23 15/241/23 +f 9/247/2 24/248/24 8/243/24 +f 2/223/9 17/249/4 1/250/4 +f 1/250/4 32/251/8 16/245/8 +f 10/226/17 25/252/2 9/253/2 +f 197/254/17 203/255/2 196/256/2 +f 241/257/25 249/258/4 240/259/4 +f 244/260/26 254/261/1 245/262/1 +f 247/263/27 250/264/25 241/257/25 +f 245/265/1 255/266/28 246/267/28 +f 242/268/29 252/269/30 243/270/30 +f 246/267/28 256/271/27 247/263/27 +f 243/270/30 253/272/26 244/260/26 +f 239/273/2 251/274/29 242/268/29 +f 214/275/31 208/276/23 207/277/31 +f 229/278/27 232/279/25 223/280/25 +f 217/281/4 211/282/9 210/283/4 +f 227/284/1 237/285/28 228/286/28 +f 216/287/8 210/283/4 209/288/8 +f 224/289/29 234/290/30 225/291/30 +f 212/292/15 220/293/32 213/294/32 +f 228/286/28 238/295/27 229/278/27 +f 215/296/33 209/288/8 208/276/23 +f 218/297/9 212/292/15 211/282/9 +f 225/291/30 235/298/26 226/299/26 +f 221/300/2 233/301/29 224/289/29 +f 194/302/22 200/303/34 193/304/34 +f 198/305/16 204/306/17 197/254/17 +f 195/307/24 201/308/35 194/302/22 +f 198/305/16 206/309/36 205/310/37 +f 196/256/2 202/311/24 195/307/24 +f 226/299/26 236/312/1 227/313/1 +f 223/280/25 231/314/4 222/315/4 +f 3/221/15 19/228/15 18/222/9 +f 11/224/16 27/230/16 26/225/17 +f 4/227/18 20/232/18 19/228/15 +f 12/229/19 28/234/19 27/230/16 +f 5/231/3 21/236/3 20/232/18 +f 13/233/5 29/238/5 28/234/19 +f 6/235/20 22/240/20 21/236/3 +f 14/237/21 30/242/21 29/238/5 +f 7/239/22 23/244/22 22/240/20 +f 15/241/23 31/246/23 30/242/21 +f 8/243/24 24/248/24 23/244/22 +f 16/245/8 32/251/8 31/246/23 +f 9/247/2 25/316/2 24/248/24 +f 2/223/9 18/222/9 17/249/4 +f 1/250/4 17/249/4 32/251/8 +f 10/226/17 26/225/17 25/252/2 +f 197/254/17 204/306/17 203/255/2 +f 241/257/25 250/264/25 249/258/4 +f 244/260/26 253/272/26 254/261/1 +f 247/263/27 256/271/27 250/264/25 +f 245/265/1 254/317/1 255/266/28 +f 242/268/29 251/274/29 252/269/30 +f 246/267/28 255/266/28 256/271/27 +f 243/270/30 252/269/30 253/272/26 +f 239/273/2 248/318/2 251/274/29 +f 214/275/31 215/296/33 208/276/23 +f 229/278/27 238/295/27 232/279/25 +f 217/281/4 218/297/9 211/282/9 +f 227/284/1 236/319/1 237/285/28 +f 216/287/8 217/281/4 210/283/4 +f 224/289/29 233/301/29 234/290/30 +f 212/292/15 219/320/38 220/293/32 +f 228/286/28 237/285/28 238/295/27 +f 215/296/33 216/287/8 209/288/8 +f 218/297/9 219/320/38 212/292/15 +f 225/291/30 234/290/30 235/298/26 +f 221/300/2 230/321/2 233/301/29 +f 194/302/22 201/308/35 200/303/34 +f 198/305/16 205/310/37 204/306/17 +f 195/307/24 202/311/24 201/308/35 +f 198/305/16 199/322/36 206/309/36 +f 196/256/2 203/255/2 202/311/24 +f 226/299/26 235/298/26 236/312/1 +f 223/280/25 232/279/25 231/314/4 +o Cannon +v 0.000000 3.500000 0.500000 +v -0.250000 3.433013 0.500000 +v -0.433013 3.250000 0.500000 +v -0.500000 3.000000 0.500000 +v -0.433013 2.750000 0.500000 +v -0.250000 2.566987 0.500000 +v 0.000000 2.500000 0.500000 +v 0.250000 2.566987 0.500000 +v 0.433013 2.750000 0.500000 +v 0.500000 3.000000 0.500000 +v 0.433013 3.250000 0.500000 +v 0.250000 3.433012 0.500000 +v 0.000000 3.500000 -2.000000 +v -0.250000 3.433013 -2.000000 +v -0.433013 3.250000 -2.000000 +v -0.500000 3.000000 -2.000000 +v -0.433013 2.750000 -2.000000 +v -0.250000 2.566987 -2.000000 +v 0.000000 2.500000 -2.000000 +v 0.250000 2.566987 -2.000000 +v 0.433013 2.750000 -2.000000 +v 0.500000 3.000000 -2.000000 +v 0.433013 3.250000 -2.000000 +v 0.250000 3.433012 -2.000000 +v 0.000000 3.312500 0.750000 +v -0.156250 3.270633 0.750000 +v -0.270633 3.156250 0.750000 +v -0.312500 3.000000 0.750000 +v -0.270633 2.843750 0.750000 +v -0.156250 2.729367 0.750000 +v 0.000000 2.687500 0.750000 +v 0.156250 2.729367 0.750000 +v 0.270633 2.843750 0.750000 +v 0.312500 3.000000 0.750000 +v 0.270633 3.156250 0.750000 +v 0.156250 3.270633 0.750000 +v 0.750000 2.911612 -0.088388 +v 0.750000 3.000000 -0.125000 +v 0.750000 3.000000 -0.062500 +v 1.125000 3.000000 -0.062500 +v 0.750000 2.955806 -0.044194 +v 1.125000 2.955806 -0.044194 +v 0.750000 2.937500 0.000000 +v 1.125000 2.937500 0.000000 +v 0.750000 2.955806 0.044194 +v 1.125000 2.955806 0.044194 +v 0.750000 3.000000 0.062500 +v 1.125000 3.000000 0.062500 +v 0.750000 3.044194 0.044194 +v 1.125000 3.044194 0.044194 +v 0.750000 3.062500 0.000000 +v 1.125000 3.062500 0.000000 +v 0.750000 3.044194 -0.044194 +v 1.125000 3.044194 -0.044194 +v 0.750000 2.875000 0.000000 +v 0.750000 2.911612 0.088388 +v 0.750000 3.000000 0.125000 +v 0.750000 3.088388 0.088388 +v 0.750000 3.125000 0.000000 +v 0.750000 3.088388 -0.088388 +v 0.625000 2.911612 -0.088388 +v 0.625000 3.000000 -0.125000 +v 0.625000 2.875000 0.000000 +v 0.625000 2.911612 0.088388 +v 0.625000 3.000000 0.125000 +v 0.625000 3.088388 0.088388 +v 0.625000 3.125000 0.000000 +v 0.625000 3.088388 -0.088388 +v 0.250000 3.433012 -1.375000 +v 0.433013 3.250000 -1.375000 +v 0.500000 3.000000 -1.375000 +v 0.433013 2.750000 -1.375000 +v 0.250000 2.566987 -1.375000 +v 0.000000 2.500000 -1.375000 +v -0.250000 2.566987 -1.375000 +v -0.433013 2.750000 -1.375000 +v -0.500000 3.000000 -1.375000 +v -0.433013 3.250000 -1.375000 +v -0.250000 3.433013 -1.375000 +v 0.000000 3.500000 -1.375000 +v 0.000000 3.562500 -1.375000 +v -0.281250 3.487139 -1.375000 +v -0.487139 3.281250 -1.375000 +v -0.562500 3.000000 -1.375000 +v -0.487139 2.718750 -1.375000 +v -0.281250 2.512861 -1.375000 +v 0.000000 2.437500 -1.375000 +v 0.281250 2.512861 -1.375000 +v 0.487139 2.718750 -1.375000 +v 0.562500 3.000000 -1.375000 +v 0.487139 3.281250 -1.375000 +v 0.281250 3.487139 -1.375000 +v 0.000000 3.562500 -1.500000 +v -0.281250 3.487139 -1.500000 +v -0.487139 3.281250 -1.500000 +v -0.562500 3.000000 -1.500000 +v -0.487139 2.718750 -1.500000 +v -0.281250 2.512861 -1.500000 +v 0.000000 2.437500 -1.500000 +v 0.281250 2.512861 -1.500000 +v 0.487139 2.718750 -1.500000 +v 0.562500 3.000000 -1.500000 +v 0.487139 3.281250 -1.500000 +v 0.281250 3.487139 -1.500000 +v 0.937500 2.625000 0.750000 +v 0.937500 3.375000 0.250000 +v 0.937500 2.625000 -0.750000 +v 0.937500 3.375000 -0.750000 +v 1.062500 2.625000 0.750000 +v 1.062500 3.375000 0.250000 +v 1.062500 2.625000 -0.750000 +v 1.062500 3.375000 -0.750000 +v 0.937500 2.750000 0.750000 +v 0.375000 2.750000 -1.187500 +v 0.937500 3.250000 0.250000 +v 1.062500 3.250000 0.250000 +v 0.375000 3.250000 -1.187500 +v 1.062500 2.750000 0.750000 +v 0.375000 2.750000 -1.312500 +v 0.375000 3.250000 -1.312500 +v -0.500000 3.625000 0.500000 +v -0.500000 3.750000 0.500000 +v -0.500000 3.625000 -0.750000 +v -0.500000 3.750000 -0.750000 +v 0.500000 3.625000 0.500000 +v 0.500000 3.750000 0.500000 +v 0.500000 3.625000 -0.750000 +v 0.500000 3.750000 -0.750000 +v -0.750000 3.375000 0.500000 +v -0.750000 3.375000 -0.750000 +v 0.750000 3.375000 0.500000 +v 0.750000 3.375000 -0.750000 +v -0.875000 3.375000 0.500000 +v -0.875000 3.375000 -0.750000 +v 0.875000 3.375000 0.500000 +v 0.875000 3.375000 -0.750000 +v -0.750000 2.875000 -0.750000 +v -0.750000 2.875000 0.000000 +v 0.750000 2.875000 0.000000 +v 0.750000 2.875000 -0.750000 +v -0.875000 2.875000 -0.750000 +v -0.875000 2.875000 0.000000 +v 0.875000 2.875000 0.000000 +v 0.875000 2.875000 -0.750000 +v -0.250000 3.625000 -0.500000 +v 0.250000 3.750000 -0.500000 +v 0.250000 3.625000 -0.500000 +v -0.250000 3.750000 -0.500000 +v -0.750000 2.911612 -0.088388 +v -0.750000 3.000000 -0.125000 +v -0.750000 3.000000 -0.062500 +v -1.125000 3.000000 -0.062500 +v -0.750000 2.955806 -0.044194 +v -1.125000 2.955806 -0.044194 +v -0.750000 2.937500 0.000000 +v -1.125000 2.937500 0.000000 +v -0.750000 2.955806 0.044194 +v -1.125000 2.955806 0.044194 +v -0.750000 3.000000 0.062500 +v -1.125000 3.000000 0.062500 +v -0.750000 3.044194 0.044194 +v -1.125000 3.044194 0.044194 +v -0.750000 3.062500 0.000000 +v -1.125000 3.062500 0.000000 +v -0.750000 3.044194 -0.044194 +v -1.125000 3.044194 -0.044194 +v -0.750000 2.875000 0.000000 +v -0.750000 2.911612 0.088388 +v -0.750000 3.000000 0.125000 +v -0.750000 3.088388 0.088388 +v -0.750000 3.125000 0.000000 +v -0.750000 3.088388 -0.088388 +v -0.625000 2.911612 -0.088388 +v -0.625000 3.000000 -0.125000 +v -0.625000 2.875000 0.000000 +v -0.625000 2.911612 0.088388 +v -0.625000 3.000000 0.125000 +v -0.625000 3.088388 0.088388 +v -0.625000 3.125000 0.000000 +v -0.625000 3.088388 -0.088388 +v -0.375000 3.250000 -1.312500 +v -0.375000 2.750000 -1.312500 +v -1.062500 2.750000 0.750000 +v -0.375000 3.250000 -1.187500 +v -1.062500 3.250000 0.250000 +v -0.937500 3.250000 0.250000 +v -0.375000 2.750000 -1.187500 +v -0.937500 2.750000 0.750000 +v -1.062500 3.375000 -0.750000 +v -1.062500 2.625000 -0.750000 +v -1.062500 3.375000 0.250000 +v -1.062500 2.625000 0.750000 +v -0.937500 3.375000 -0.750000 +v -0.937500 2.625000 -0.750000 +v -0.937500 3.375000 0.250000 +v -0.937500 2.625000 0.750000 +v 0.000000 2.562500 -2.000000 +v -0.218750 2.621114 -2.000000 +v -0.378886 2.781250 -2.000000 +v -0.437500 3.000000 -2.000000 +v -0.378886 3.218750 -2.000000 +v -0.218750 3.378886 -2.000000 +v 0.000000 3.437500 -2.000000 +v 0.218750 3.378886 -2.000000 +v 0.378886 3.218750 -2.000000 +v 0.437500 3.000000 -2.000000 +v 0.378886 2.781250 -2.000000 +v 0.218750 2.621114 -2.000000 +v 0.000000 2.562500 -5.500000 +v -0.218750 2.621114 -5.500000 +v -0.378886 2.781250 -5.500000 +v -0.437500 3.000000 -5.500000 +v -0.378886 3.218750 -5.500000 +v -0.218750 3.378886 -5.500000 +v 0.000000 3.437500 -5.500000 +v 0.218750 3.378886 -5.500000 +v 0.378886 3.218750 -5.500000 +v 0.437500 3.000000 -5.500000 +v 0.378886 2.781250 -5.500000 +v 0.218750 2.621114 -5.500000 +v 0.000000 2.687500 -5.625000 +v -0.156250 2.729367 -5.625000 +v -0.270633 2.843750 -5.625000 +v -0.312500 3.000000 -5.625000 +v -0.270633 3.156250 -5.625000 +v -0.156250 3.270633 -5.625000 +v 0.000000 3.312500 -5.625000 +v 0.156250 3.270633 -5.625000 +v 0.270633 3.156250 -5.625000 +v 0.312500 3.000000 -5.625000 +v 0.270633 2.843750 -5.625000 +v 0.156250 2.729367 -5.625000 +v 0.000000 3.375000 -5.593750 +v -0.187500 3.324759 -5.593750 +v -0.324759 3.187500 -5.593750 +v -0.375000 3.000000 -5.593750 +v -0.324759 2.812500 -5.593750 +v -0.187500 2.675241 -5.593750 +v 0.000000 2.625000 -5.593750 +v 0.187500 2.675241 -5.593750 +v 0.324759 2.812500 -5.593750 +v 0.375000 3.000000 -5.593750 +v 0.324760 3.187500 -5.593750 +v 0.187500 3.324759 -5.593750 +v -0.250000 3.625000 0.750000 +v 0.250000 3.750000 0.750000 +v 0.250000 3.625000 0.750000 +v -0.250000 3.750000 0.750000 +v -0.375000 3.625000 0.250000 +v 0.375000 3.625000 0.250000 +v -0.375000 3.625000 0.000000 +v 0.375000 3.625000 0.000000 +v -0.375000 3.500000 0.250000 +v 0.375000 3.500000 0.250000 +v -0.375000 3.500000 0.000000 +v 0.375000 3.500000 0.000000 +v -0.250000 3.375000 0.250000 +v 0.250000 3.375000 0.250000 +v -0.250000 3.375000 0.000000 +v 0.250000 3.375000 0.000000 +v 0.000000 3.625000 0.000000 +v -0.044194 3.606694 0.000000 +v -0.062500 3.562500 0.000000 +v -0.044194 3.518306 0.000000 +v 0.000000 3.500000 0.000000 +v 0.044194 3.518306 0.000000 +v 0.062500 3.562500 0.000000 +v 0.044194 3.606694 0.000000 +v 0.000000 3.625000 -1.750000 +v -0.044194 3.606694 -1.750000 +v -0.062500 3.562500 -1.750000 +v -0.044194 3.518306 -1.750000 +v 0.000000 3.500000 -1.750000 +v 0.044194 3.518306 -1.750000 +v 0.062500 3.562500 -1.750000 +v 0.044194 3.606694 -1.750000 +v 0.044194 3.375000 -1.856694 +v 0.062500 3.375000 -1.812500 +v 0.044194 3.375000 -1.768306 +v -0.044194 3.375000 -1.768306 +v -0.062500 3.375000 -1.812500 +v -0.044194 3.375000 -1.856694 +v 0.000000 3.500000 -1.875000 +v -0.044194 3.500000 -1.856694 +v -0.062500 3.500000 -1.812500 +v -0.044194 3.500000 -1.768306 +v 0.000000 3.375000 -1.750000 +v 0.044194 3.500000 -1.768306 +v 0.062500 3.500000 -1.812500 +v 0.044194 3.500000 -1.856694 +v 0.044194 3.575444 -1.825444 +v 0.062500 3.544194 -1.794194 +v 0.044194 3.512944 -1.762944 +v 0.000000 3.375000 -1.875000 +v -0.044194 3.512944 -1.762944 +v -0.062500 3.544194 -1.794194 +v -0.044194 3.575444 -1.825444 +v 0.000000 3.588388 -1.838388 +v 0.213763 3.587308 0.000000 +v 0.165973 3.585221 0.000000 +v 0.133656 3.549953 0.000000 +v 0.135742 3.502163 0.000000 +v 0.171010 3.469846 0.000000 +v 0.218800 3.471933 0.000000 +v 0.251117 3.507201 0.000000 +v 0.249031 3.554991 0.000000 +v 0.213763 3.587308 -1.500000 +v 0.165973 3.585221 -1.500000 +v 0.133656 3.549953 -1.500000 +v 0.135742 3.502163 -1.500000 +v 0.171010 3.469846 -1.500000 +v 0.218800 3.471933 -1.500000 +v 0.251117 3.507201 -1.500000 +v 0.249031 3.554991 -1.500000 +v 0.169787 3.337270 -1.606694 +v 0.186988 3.331008 -1.562500 +v 0.169787 3.337270 -1.518306 +v 0.086729 3.367500 -1.518306 +v 0.069527 3.373761 -1.562500 +v 0.086729 3.367500 -1.606694 +v 0.171010 3.469846 -1.625000 +v 0.129481 3.484962 -1.606694 +v 0.112279 3.491222 -1.562500 +v 0.129481 3.484962 -1.518306 +v 0.128258 3.352385 -1.500000 +v 0.212539 3.454731 -1.518306 +v 0.229741 3.448470 -1.562500 +v 0.212539 3.454731 -1.606694 +v 0.238343 3.525625 -1.575444 +v 0.244856 3.489999 -1.544194 +v 0.216966 3.466895 -1.512944 +v 0.128258 3.352385 -1.625000 +v 0.133908 3.497125 -1.512944 +v 0.127395 3.532752 -1.544194 +v 0.155284 3.555856 -1.575444 +v 0.201241 3.552904 -1.588388 +v -0.201241 3.552904 -1.588388 +v -0.238342 3.525625 -1.575444 +v -0.244856 3.489999 -1.544194 +v -0.216966 3.466895 -1.512944 +v -0.128257 3.352385 -1.625000 +v -0.133908 3.497125 -1.512944 +v -0.127395 3.532752 -1.544194 +v -0.155285 3.555856 -1.575444 +v -0.129481 3.484962 -1.606694 +v -0.112279 3.491222 -1.562500 +v -0.129481 3.484962 -1.518306 +v -0.128257 3.352385 -1.500000 +v -0.212539 3.454731 -1.518306 +v -0.229741 3.448470 -1.562500 +v -0.212539 3.454731 -1.606694 +v -0.171010 3.469846 -1.625000 +v -0.169786 3.337270 -1.606694 +v -0.186988 3.331008 -1.562500 +v -0.169786 3.337270 -1.518306 +v -0.086729 3.367500 -1.518306 +v -0.069527 3.373761 -1.562500 +v -0.086729 3.367500 -1.606694 +v -0.165973 3.585221 -1.500000 +v -0.133655 3.549953 -1.500000 +v -0.135742 3.502163 -1.500000 +v -0.171010 3.469846 -1.500000 +v -0.218800 3.471933 -1.500000 +v -0.251117 3.507201 -1.500000 +v -0.249031 3.554991 -1.500000 +v -0.213763 3.587308 -1.500000 +v -0.165973 3.585221 0.000000 +v -0.133655 3.549953 0.000000 +v -0.135742 3.502163 0.000000 +v -0.171010 3.469846 0.000000 +v -0.218800 3.471933 0.000000 +v -0.251117 3.507201 0.000000 +v -0.249031 3.554991 0.000000 +v -0.213763 3.587308 0.000000 +v -1.125000 3.000000 -0.062500 +v -1.125000 2.955806 -0.044194 +v -1.125000 2.937500 0.000000 +v -1.125000 2.955806 0.044194 +v -1.125000 3.000000 0.062500 +v -1.125000 3.044194 0.044194 +v -1.125000 3.062500 0.000000 +v -1.125000 3.044194 -0.044194 +v 1.125000 3.000000 -0.062500 +v 1.125000 2.955806 -0.044194 +v 1.125000 2.937500 0.000000 +v 1.125000 2.955806 0.044194 +v 1.125000 3.000000 0.062500 +v 1.125000 3.044194 0.044194 +v 1.125000 3.062500 0.000000 +v 1.125000 3.044194 -0.044194 +v -0.750000 2.911612 -0.088388 +v -0.750000 3.000000 -0.125000 +v -0.750000 3.000000 -0.062500 +v -0.750000 2.955806 -0.044194 +v -0.750000 2.937500 0.000000 +v -0.750000 2.955806 0.044194 +v -0.750000 3.000000 0.062500 +v -0.750000 3.044194 0.044194 +v -0.750000 3.062500 0.000000 +v -0.750000 3.044194 -0.044194 +v -0.750000 2.875000 0.000000 +v -0.750000 2.911612 0.088388 +v -0.750000 3.000000 0.125000 +v -0.750000 3.088388 0.088388 +v -0.750000 3.125000 0.000000 +v -0.750000 3.088388 -0.088388 +v 0.750000 2.911612 -0.088388 +v 0.750000 3.000000 -0.125000 +v 0.750000 3.000000 -0.062500 +v 0.750000 2.955806 -0.044194 +v 0.750000 2.937500 0.000000 +v 0.750000 2.955806 0.044194 +v 0.750000 3.000000 0.062500 +v 0.750000 3.044194 0.044194 +v 0.750000 3.062500 0.000000 +v 0.750000 3.044194 -0.044194 +v 0.750000 2.875000 0.000000 +v 0.750000 2.911612 0.088388 +v 0.750000 3.000000 0.125000 +v 0.750000 3.088388 0.088388 +v 0.750000 3.125000 0.000000 +v 0.750000 3.088388 -0.088388 +v 0.000000 3.500000 -2.000000 +v -0.250000 3.433013 -2.000000 +v -0.433013 3.250000 -2.000000 +v -0.500000 3.000000 -2.000000 +v -0.433013 2.750000 -2.000000 +v -0.250000 2.566987 -2.000000 +v 0.000000 2.500000 -2.000000 +v 0.250000 2.566987 -2.000000 +v 0.433013 2.750000 -2.000000 +v 0.500000 3.000000 -2.000000 +v 0.433013 3.250000 -2.000000 +v 0.250000 3.433012 -2.000000 +v 0.000000 2.562500 -2.000000 +v -0.218750 2.621114 -2.000000 +v -0.378886 2.781250 -2.000000 +v -0.437500 3.000000 -2.000000 +v -0.378886 3.218750 -2.000000 +v -0.218750 3.378886 -2.000000 +v 0.000000 3.437500 -2.000000 +v 0.218750 3.378886 -2.000000 +v 0.378886 3.218750 -2.000000 +v 0.437500 3.000000 -2.000000 +v 0.378886 2.781250 -2.000000 +v 0.218750 2.621114 -2.000000 +v 0.000000 3.500000 -1.500000 +v -0.250000 3.433013 -1.500000 +v -0.433013 3.250000 -1.500000 +v -0.500000 3.000000 -1.500000 +v -0.433013 2.750000 -1.500000 +v -0.250000 2.566987 -1.500000 +v 0.000000 2.500000 -1.500000 +v 0.250000 2.566987 -1.500000 +v 0.433013 2.750000 -1.500000 +v 0.500000 3.000000 -1.500000 +v 0.433013 3.250000 -1.500000 +v 0.250000 3.433012 -1.500000 +v 0.000000 3.562500 -1.500000 +v -0.281250 3.487139 -1.500000 +v -0.487139 3.281250 -1.500000 +v -0.562500 3.000000 -1.500000 +v -0.487139 2.718750 -1.500000 +v -0.281250 2.512861 -1.500000 +v 0.000000 2.437500 -1.500000 +v 0.281250 2.512861 -1.500000 +v 0.487139 2.718750 -1.500000 +v 0.562500 3.000000 -1.500000 +v 0.487139 3.281250 -1.500000 +v 0.281250 3.487139 -1.500000 +v 0.000000 3.562500 -1.375000 +v -0.281250 3.487139 -1.375000 +v -0.487139 3.281250 -1.375000 +v -0.562500 3.000000 -1.375000 +v -0.487139 2.718750 -1.375000 +v -0.281250 2.512861 -1.375000 +v 0.000000 2.437500 -1.375000 +v 0.281250 2.512861 -1.375000 +v 0.487139 2.718750 -1.375000 +v 0.562500 3.000000 -1.375000 +v 0.487139 3.281250 -1.375000 +v 0.281250 3.487139 -1.375000 +v 0.000000 3.500000 0.500000 +v -0.250000 3.433013 0.500000 +v -0.433013 3.250000 0.500000 +v -0.500000 3.000000 0.500000 +v -0.433013 2.750000 0.500000 +v -0.250000 2.566987 0.500000 +v 0.000000 2.500000 0.500000 +v 0.250000 2.566987 0.500000 +v 0.433013 2.750000 0.500000 +v 0.500000 3.000000 0.500000 +v 0.433013 3.250000 0.500000 +v 0.250000 3.433012 0.500000 +v 0.000000 3.312500 0.750000 +v -0.156250 3.270633 0.750000 +v -0.270633 3.156250 0.750000 +v -0.312500 3.000000 0.750000 +v -0.270633 2.843750 0.750000 +v -0.156250 2.729367 0.750000 +v 0.000000 2.687500 0.750000 +v 0.156250 2.729367 0.750000 +v 0.270633 2.843750 0.750000 +v 0.312500 3.000000 0.750000 +v 0.270633 3.156250 0.750000 +v 0.156250 3.270633 0.750000 +vt 0.611298 0.652620 +vt 0.647035 0.652620 +vt 0.629167 0.689759 +vt 0.208333 0.840000 +vt 0.204167 0.860000 +vt 0.204167 0.840000 +vt 0.187500 0.980000 +vt 0.191667 1.000000 +vt 0.187500 1.000000 +vt 0.187500 0.960000 +vt 0.191667 0.980000 +vt 0.187500 0.940000 +vt 0.191667 0.960000 +vt 0.191667 0.920000 +vt 0.191667 0.940000 +vt 0.187500 0.920000 +vt 0.191667 0.900000 +vt 0.187500 0.900000 +vt 0.191667 0.880000 +vt 0.495833 0.030000 +vt 0.500000 0.020000 +vt 0.500000 0.025000 +vt 0.187500 0.880000 +vt 0.191667 0.860000 +vt 0.187500 0.860000 +vt 0.191667 0.840000 +vt 0.191667 0.840000 +vt 0.195833 0.860000 +vt 0.191667 0.860000 +vt 0.195833 0.820000 +vt 0.191667 0.820000 +vt 0.195833 0.800000 +vt 0.191667 0.800000 +vt 0.195833 0.780000 +vt 0.191667 0.780000 +vt 0.195833 0.760000 +vt 0.191667 0.760000 +vt 0.191667 0.980000 +vt 0.195833 1.000000 +vt 0.191667 1.000000 +vt 0.191667 0.960000 +vt 0.195833 0.980000 +vt 0.195833 0.940000 +vt 0.191667 0.940000 +vt 0.195833 0.920000 +vt 0.191667 0.920000 +vt 0.195833 0.900000 +vt 0.191667 0.900000 +vt 0.195833 0.880000 +vt 0.191667 0.880000 +vt 0.841667 0.340000 +vt 0.908333 0.330000 +vt 0.908333 0.390000 +vt 0.908333 0.260000 +vt 0.966667 0.310000 +vt 0.908333 0.320000 +vt 0.841667 0.310000 +vt 0.808333 0.270000 +vt 0.808333 0.260000 +vt 0.841667 0.320000 +vt 0.833333 0.310000 +vt 0.808333 0.250000 +vt 0.908333 0.250000 +vt 0.800000 0.260000 +vt 0.966667 0.260000 +vt 0.800000 0.680000 +vt 0.883333 0.710000 +vt 0.800000 0.710000 +vt 0.808333 0.310000 +vt 0.800000 0.270000 +vt 0.966667 0.320000 +vt 0.966667 0.330000 +vt 0.958333 0.380000 +vt 0.991667 0.610000 +vt 1.000000 0.590000 +vt 1.000000 0.610000 +vt 0.883333 0.820000 +vt 0.800000 0.790000 +vt 0.883333 0.790000 +vt 0.908333 0.670000 +vt 0.991667 0.710000 +vt 0.908333 0.710000 +vt 0.991667 0.590000 +vt 0.908333 0.550000 +vt 0.991667 0.550000 +vt 1.000000 0.510000 +vt 1.000000 0.550000 +vt 0.900000 0.590000 +vt 0.908333 0.590000 +vt 0.900000 0.670000 +vt 0.900000 0.750000 +vt 0.900000 0.710000 +vt 1.000000 0.670000 +vt 0.991667 0.670000 +vt 0.991667 0.510000 +vt 0.941667 0.500000 +vt 0.991667 0.500000 +vt 0.941667 0.750000 +vt 0.991667 0.760000 +vt 0.941667 0.760000 +vt 0.833333 0.860000 +vt 0.800000 0.820000 +vt 1.000000 0.710000 +vt 0.991667 0.750000 +vt 0.900000 0.550000 +vt 0.908333 0.510000 +vt 0.883333 0.680000 +vt 0.833333 0.640000 +vt 0.883333 0.640000 +vt 0.941667 0.510000 +vt 1.000000 0.650000 +vt 0.991667 0.650000 +vt 0.500000 0.080000 +vt 0.495833 0.090000 +vt 0.495833 0.080000 +vt 0.500000 0.040000 +vt 0.495833 0.050000 +vt 0.495833 0.040000 +vt 0.500000 0.060000 +vt 0.495833 0.070000 +vt 0.495833 0.060000 +vt 0.500000 0.010000 +vt 0.495833 0.020000 +vt 0.495833 0.010000 +vt 0.500000 0.050000 +vt 0.500000 0.020000 +vt 0.495833 0.030000 +vt 0.481773 0.019520 +vt 0.479567 0.013128 +vt 0.484893 0.010480 +vt 0.500000 0.035000 +vt 0.500000 0.030000 +vt 0.500000 0.075000 +vt 0.500000 0.070000 +vt 0.958333 0.380000 +vt 0.908333 0.330000 +vt 0.908333 0.390000 +vt 0.966667 0.320000 +vt 0.908333 0.320000 +vt 0.800000 0.270000 +vt 0.808333 0.310000 +vt 0.808333 0.270000 +vt 0.966667 0.260000 +vt 0.908333 0.250000 +vt 0.908333 0.260000 +vt 0.800000 0.260000 +vt 0.808333 0.260000 +vt 0.841667 0.320000 +vt 0.808333 0.250000 +vt 0.833333 0.310000 +vt 0.841667 0.310000 +vt 0.966667 0.310000 +vt 0.841667 0.330000 +vt 0.841667 0.340000 +vt 0.204167 0.820000 +vt 0.208333 0.820000 +vt 0.204167 0.800000 +vt 0.208333 0.800000 +vt 0.204167 0.780000 +vt 0.208333 0.780000 +vt 0.204167 0.760000 +vt 0.208333 0.760000 +vt 0.208333 0.980000 +vt 0.204167 1.000000 +vt 0.204167 0.980000 +vt 0.208333 0.960000 +vt 0.204167 0.960000 +vt 0.204167 0.940000 +vt 0.208333 0.940000 +vt 0.204167 0.920000 +vt 0.208333 0.920000 +vt 0.204167 0.900000 +vt 0.208333 0.900000 +vt 0.204167 0.880000 +vt 0.208333 0.880000 +vt 0.208333 0.860000 +vt 0.883333 0.610000 +vt 0.891667 0.650000 +vt 0.883333 0.650000 +vt 0.783333 0.770000 +vt 0.891667 0.590000 +vt 0.883333 0.590000 +vt 0.891667 0.670000 +vt 0.883333 0.670000 +vt 0.975000 0.610000 +vt 0.975000 0.650000 +vt 0.587500 0.270000 +vt 0.604167 0.260000 +vt 0.604167 0.270000 +vt 0.720833 0.270000 +vt 0.670833 0.270000 +vt 0.679167 0.250000 +vt 0.654167 0.270000 +vt 0.670833 0.260000 +vt 0.587500 0.260000 +vt 0.604167 0.250000 +vt 0.654167 0.260000 +vt 0.670833 0.250000 +vt 0.645833 0.250000 +vt 0.612500 0.250000 +vt 0.479567 0.013128 +vt 0.484893 0.010480 +vt 0.487100 0.016872 +vt 0.495833 0.070000 +vt 0.500000 0.060000 +vt 0.500000 0.065000 +vt 0.500000 0.075000 +vt 0.500000 0.070000 +vt 0.500000 0.045000 +vt 0.495833 0.040000 +vt 0.500000 0.040000 +vt 0.500000 0.085000 +vt 0.495833 0.080000 +vt 0.500000 0.080000 +vt 0.500000 0.035000 +vt 0.500000 0.030000 +vt 0.500000 0.055000 +vt 0.495833 0.050000 +vt 0.500000 0.050000 +vt 0.500000 0.015000 +vt 0.495833 0.010000 +vt 0.500000 0.010000 +vt 0.187500 0.780000 +vt 0.191667 0.760000 +vt 0.191667 0.780000 +vt 0.187500 0.800000 +vt 0.191667 0.800000 +vt 0.187500 0.820000 +vt 0.191667 0.820000 +vt 0.187500 0.840000 +vt 0.618850 0.686442 +vt 0.611298 0.677380 +vt 0.608534 0.665000 +vt 0.618850 0.643558 +vt 0.629167 0.640240 +vt 0.639483 0.643558 +vt 0.649800 0.665000 +vt 0.647035 0.677380 +vt 0.639483 0.686442 +vt 0.495833 0.020000 +vt 0.195833 0.840000 +vt 0.195833 0.960000 +vt 0.808333 0.390000 +vt 0.808333 0.380000 +vt 0.841667 0.330000 +vt 0.966667 0.270000 +vt 0.833333 0.320000 +vt 0.966667 0.250000 +vt 0.800000 0.310000 +vt 0.958333 0.340000 +vt 0.908333 0.750000 +vt 0.883333 0.860000 +vt 1.000000 0.750000 +vt 0.900000 0.510000 +vt 0.500000 0.085000 +vt 0.500000 0.045000 +vt 0.500000 0.065000 +vt 0.500000 0.015000 +vt 0.500000 0.055000 +vt 0.500000 0.025000 +vt 0.487100 0.013128 +vt 0.487100 0.016872 +vt 0.484893 0.019520 +vt 0.479567 0.016872 +vt 0.481773 0.010480 +vt 0.958333 0.340000 +vt 0.966667 0.330000 +vt 0.800000 0.310000 +vt 0.966667 0.250000 +vt 0.833333 0.320000 +vt 0.966667 0.270000 +vt 0.808333 0.380000 +vt 0.808333 0.390000 +vt 0.208333 1.000000 +vt 0.891667 0.610000 +vt 0.866667 0.730000 +vt 0.866667 0.770000 +vt 0.783333 0.730000 +vt 0.712500 0.250000 +vt 0.720833 0.260000 +vt 0.587500 0.250000 +vt 0.654167 0.250000 +vt 0.484893 0.019520 +vt 0.481773 0.019520 +vt 0.479567 0.016872 +vt 0.481773 0.010480 +vt 0.487100 0.013128 +vt 0.495833 0.060000 +vt 0.495833 0.090000 +vt 0.187500 0.760000 +vt 0.020833 0.820000 +vt 0.187500 0.840000 +vt 0.020833 0.840000 +vt 0.020833 0.760000 +vt 0.187500 0.780000 +vt 0.020833 0.780000 +vt 0.020833 0.940000 +vt 0.187500 0.960000 +vt 0.020833 0.960000 +vt 0.187500 0.860000 +vt 0.020833 0.860000 +vt 0.020833 0.900000 +vt 0.187500 0.880000 +vt 0.187500 0.900000 +vt 0.187500 0.800000 +vt 0.020833 0.800000 +vt 0.187500 0.980000 +vt 0.020833 0.980000 +vt 0.020833 0.880000 +vt 0.187500 0.920000 +vt 0.020833 0.920000 +vt 0.187500 0.820000 +vt 0.187500 1.000000 +vt 0.020833 1.000000 +vt 0.187500 0.940000 +vt 0.495833 0.030000 +vt 0.487500 0.040000 +vt 0.487500 0.030000 +vt 0.500000 0.070000 +vt 0.525000 0.075000 +vt 0.500000 0.075000 +vt 0.495833 0.070000 +vt 0.487500 0.080000 +vt 0.487500 0.070000 +vt 0.525000 0.080000 +vt 0.500000 0.085000 +vt 0.500000 0.080000 +vt 0.495833 0.090000 +vt 0.495833 0.080000 +vt 0.525000 0.010000 +vt 0.500000 0.015000 +vt 0.500000 0.010000 +vt 0.495833 0.050000 +vt 0.495833 0.040000 +vt 0.525000 0.020000 +vt 0.500000 0.025000 +vt 0.500000 0.020000 +vt 0.487500 0.060000 +vt 0.495833 0.060000 +vt 0.525000 0.030000 +vt 0.500000 0.035000 +vt 0.500000 0.030000 +vt 0.495833 0.020000 +vt 0.487500 0.010000 +vt 0.495833 0.010000 +vt 0.525000 0.040000 +vt 0.500000 0.045000 +vt 0.500000 0.040000 +vt 0.525000 0.050000 +vt 0.500000 0.055000 +vt 0.500000 0.050000 +vt 0.487500 0.050000 +vt 0.487500 0.020000 +vt 0.525000 0.060000 +vt 0.500000 0.065000 +vt 0.500000 0.060000 +vt 0.195833 0.860000 +vt 0.204167 0.880000 +vt 0.195833 0.880000 +vt 0.195833 0.900000 +vt 0.204167 0.900000 +vt 0.195833 0.920000 +vt 0.204167 0.920000 +vt 0.195833 0.940000 +vt 0.204167 0.940000 +vt 0.195833 0.960000 +vt 0.204167 0.960000 +vt 0.195833 0.980000 +vt 0.204167 0.980000 +vt 0.195833 1.000000 +vt 0.204167 0.760000 +vt 0.195833 0.780000 +vt 0.195833 0.760000 +vt 0.204167 0.780000 +vt 0.195833 0.800000 +vt 0.204167 0.800000 +vt 0.195833 0.820000 +vt 0.204167 0.820000 +vt 0.195833 0.840000 +vt 0.204167 0.840000 +vt 0.495833 0.070000 +vt 0.487500 0.060000 +vt 0.495833 0.060000 +vt 0.500000 0.020000 +vt 0.525000 0.025000 +vt 0.500000 0.025000 +vt 0.495833 0.030000 +vt 0.487500 0.020000 +vt 0.495833 0.020000 +vt 0.500000 0.010000 +vt 0.525000 0.015000 +vt 0.500000 0.015000 +vt 0.495833 0.010000 +vt 0.500000 0.080000 +vt 0.525000 0.085000 +vt 0.500000 0.085000 +vt 0.495833 0.050000 +vt 0.500000 0.075000 +vt 0.525000 0.070000 +vt 0.525000 0.075000 +vt 0.487500 0.040000 +vt 0.495833 0.040000 +vt 0.500000 0.060000 +vt 0.525000 0.065000 +vt 0.500000 0.065000 +vt 0.487500 0.090000 +vt 0.495833 0.080000 +vt 0.495833 0.090000 +vt 0.500000 0.050000 +vt 0.525000 0.055000 +vt 0.500000 0.055000 +vt 0.500000 0.040000 +vt 0.525000 0.045000 +vt 0.500000 0.045000 +vt 0.487500 0.050000 +vt 0.487500 0.080000 +vt 0.500000 0.030000 +vt 0.525000 0.035000 +vt 0.500000 0.035000 +vt 0.208333 0.860000 +vt 0.441667 0.880000 +vt 0.208333 0.880000 +vt 0.208333 0.920000 +vt 0.441667 0.940000 +vt 0.208333 0.940000 +vt 0.208333 0.780000 +vt 0.441667 0.800000 +vt 0.208333 0.800000 +vt 0.208333 0.980000 +vt 0.441667 1.000000 +vt 0.208333 1.000000 +vt 0.208333 0.840000 +vt 0.441667 0.860000 +vt 0.208333 0.900000 +vt 0.441667 0.920000 +vt 0.208333 0.760000 +vt 0.441667 0.780000 +vt 0.208333 0.960000 +vt 0.441667 0.980000 +vt 0.208333 0.820000 +vt 0.441667 0.840000 +vt 0.441667 0.900000 +vt 0.441667 0.960000 +vt 0.441667 0.820000 +vt 0.450000 0.860000 +vt 0.450000 0.865000 +vt 0.450000 0.885000 +vt 0.450000 0.905000 +vt 0.450000 0.925000 +vt 0.450000 0.960000 +vt 0.450000 0.980000 +vt 0.450000 1.000000 +vt 0.450000 0.765000 +vt 0.441667 0.760000 +vt 0.450000 0.785000 +vt 0.450000 0.820000 +vt 0.450000 0.840000 +vt 0.454167 0.845000 +vt 0.450000 0.845000 +vt 0.454167 0.865000 +vt 0.450000 0.880000 +vt 0.454167 0.885000 +vt 0.450000 0.900000 +vt 0.454167 0.920000 +vt 0.454167 0.905000 +vt 0.454167 0.925000 +vt 0.450000 0.940000 +vt 0.454167 0.960000 +vt 0.450000 0.945000 +vt 0.454167 0.945000 +vt 0.454167 0.980000 +vt 0.450000 0.965000 +vt 0.454167 0.965000 +vt 0.454167 1.000000 +vt 0.450000 0.985000 +vt 0.454167 0.985000 +vt 0.454167 0.765000 +vt 0.450000 0.780000 +vt 0.454167 0.785000 +vt 0.450000 0.800000 +vt 0.454167 0.805000 +vt 0.450000 0.805000 +vt 0.454167 0.825000 +vt 0.450000 0.825000 +vt 0.704167 0.280000 +vt 0.587500 0.285000 +vt 0.587500 0.280000 +vt 0.704167 0.270000 +vt 0.587500 0.275000 +vt 0.587500 0.270000 +vt 0.704167 0.300000 +vt 0.587500 0.305000 +vt 0.587500 0.300000 +vt 0.704167 0.290000 +vt 0.587500 0.295000 +vt 0.587500 0.290000 +vt 0.704167 0.285000 +vt 0.704167 0.275000 +vt 0.704167 0.305000 +vt 0.587500 0.310000 +vt 0.704167 0.295000 +vt 0.712500 0.310000 +vt 0.712500 0.305000 +vt 0.716667 0.305000 +vt 0.716667 0.300000 +vt 0.712500 0.295000 +vt 0.712500 0.300000 +vt 0.712500 0.290000 +vt 0.720833 0.295000 +vt 0.720833 0.285000 +vt 0.720833 0.290000 +vt 0.712500 0.285000 +vt 0.716667 0.280000 +vt 0.708333 0.305000 +vt 0.716667 0.275000 +vt 0.712500 0.275000 +vt 0.712500 0.270000 +vt 0.708333 0.275000 +vt 0.712500 0.280000 +vt 0.708333 0.280000 +vt 0.708333 0.300000 +vt 0.720833 0.300000 +vt 0.729167 0.305000 +vt 0.720833 0.305000 +vt 0.729167 0.295000 +vt 0.729167 0.290000 +vt 0.720833 0.275000 +vt 0.729167 0.280000 +vt 0.720833 0.280000 +vt 0.729167 0.300000 +vt 0.729167 0.310000 +vt 0.720833 0.310000 +vt 0.729167 0.285000 +vt 0.720833 0.270000 +vt 0.729167 0.275000 +vt 0.704167 0.280000 +vt 0.604167 0.285000 +vt 0.604167 0.280000 +vt 0.704167 0.270000 +vt 0.604167 0.275000 +vt 0.604167 0.270000 +vt 0.704167 0.300000 +vt 0.604167 0.305000 +vt 0.604167 0.300000 +vt 0.704167 0.290000 +vt 0.604167 0.295000 +vt 0.604167 0.290000 +vt 0.704167 0.285000 +vt 0.704167 0.275000 +vt 0.704167 0.305000 +vt 0.604167 0.310000 +vt 0.704167 0.295000 +vt 0.712500 0.310000 +vt 0.712500 0.305000 +vt 0.716667 0.305000 +vt 0.712500 0.300000 +vt 0.712500 0.295000 +vt 0.716667 0.300000 +vt 0.712500 0.290000 +vt 0.720833 0.295000 +vt 0.720833 0.285000 +vt 0.720833 0.290000 +vt 0.712500 0.285000 +vt 0.716667 0.280000 +vt 0.708333 0.305000 +vt 0.716667 0.275000 +vt 0.712500 0.275000 +vt 0.712500 0.270000 +vt 0.708333 0.275000 +vt 0.712500 0.280000 +vt 0.708333 0.280000 +vt 0.708333 0.300000 +vt 0.720833 0.300000 +vt 0.729167 0.305000 +vt 0.720833 0.305000 +vt 0.729167 0.295000 +vt 0.729167 0.285000 +vt 0.729167 0.290000 +vt 0.720833 0.280000 +vt 0.729167 0.275000 +vt 0.729167 0.280000 +vt 0.729167 0.300000 +vt 0.729167 0.310000 +vt 0.720833 0.310000 +vt 0.720833 0.270000 +vt 0.720833 0.275000 +vt 0.720833 0.270000 +vt 0.729167 0.275000 +vt 0.720833 0.275000 +vt 0.720833 0.285000 +vt 0.729167 0.280000 +vt 0.729167 0.285000 +vt 0.720833 0.310000 +vt 0.729167 0.305000 +vt 0.729167 0.310000 +vt 0.720833 0.300000 +vt 0.729167 0.295000 +vt 0.729167 0.300000 +vt 0.720833 0.280000 +vt 0.720833 0.290000 +vt 0.729167 0.290000 +vt 0.720833 0.295000 +vt 0.720833 0.305000 +vt 0.712500 0.305000 +vt 0.708333 0.300000 +vt 0.712500 0.300000 +vt 0.712500 0.295000 +vt 0.704167 0.295000 +vt 0.712500 0.290000 +vt 0.704167 0.290000 +vt 0.704167 0.285000 +vt 0.712500 0.280000 +vt 0.708333 0.280000 +vt 0.708333 0.275000 +vt 0.716667 0.275000 +vt 0.712500 0.275000 +vt 0.712500 0.270000 +vt 0.708333 0.305000 +vt 0.712500 0.310000 +vt 0.712500 0.285000 +vt 0.716667 0.280000 +vt 0.716667 0.300000 +vt 0.716667 0.305000 +vt 0.604167 0.300000 +vt 0.604167 0.295000 +vt 0.704167 0.305000 +vt 0.604167 0.310000 +vt 0.604167 0.305000 +vt 0.704167 0.275000 +vt 0.604167 0.280000 +vt 0.604167 0.275000 +vt 0.604167 0.290000 +vt 0.604167 0.285000 +vt 0.704167 0.300000 +vt 0.704167 0.270000 +vt 0.604167 0.270000 +vt 0.704167 0.280000 +vt 0.020833 0.840000 +vt 0.000000 0.825000 +vt 0.020833 0.820000 +vt 0.020833 0.780000 +vt -0.000000 0.765000 +vt 0.020833 0.760000 +vt 0.020833 0.960000 +vt -0.000000 0.945000 +vt 0.020833 0.940000 +vt 0.020833 0.860000 +vt 0.000000 0.845000 +vt 0.020833 0.900000 +vt 0.000000 0.885000 +vt 0.020833 0.880000 +vt 0.020833 0.800000 +vt 0.000000 0.785000 +vt -0.000000 0.980000 +vt 0.000000 0.965000 +vt 0.000000 0.880000 +vt -0.000000 0.865000 +vt 0.020833 0.920000 +vt 0.000000 0.905000 +vt 0.000000 0.820000 +vt 0.000000 0.805000 +vt 0.020833 1.000000 +vt -0.000000 0.985000 +vt 0.020833 0.980000 +vt -0.000000 0.925000 +vt 0.187500 0.760000 +vt 0.525000 0.070000 +vt 0.525000 0.085000 +vt 0.487500 0.090000 +vt 0.525000 0.015000 +vt 0.525000 0.025000 +vt 0.525000 0.035000 +vt 0.525000 0.045000 +vt 0.525000 0.055000 +vt 0.525000 0.065000 +vt 0.204167 0.860000 +vt 0.204167 1.000000 +vt 0.487500 0.070000 +vt 0.525000 0.020000 +vt 0.487500 0.030000 +vt 0.525000 0.010000 +vt 0.487500 0.010000 +vt 0.525000 0.080000 +vt 0.500000 0.070000 +vt 0.525000 0.060000 +vt 0.525000 0.050000 +vt 0.525000 0.040000 +vt 0.525000 0.030000 +vt 0.450000 0.920000 +vt 0.454167 0.860000 +vt 0.454167 0.880000 +vt 0.454167 0.900000 +vt 0.454167 0.940000 +vt 0.454167 0.780000 +vt 0.454167 0.800000 +vt 0.454167 0.820000 +vt 0.454167 0.840000 +vt 0.704167 0.310000 +vt 0.729167 0.270000 +vt 0.704167 0.310000 +vt 0.729167 0.270000 +vt 0.729167 0.270000 +vt 0.704167 0.310000 +vt 0.000000 0.840000 +vt -0.000000 0.780000 +vt 0.000000 0.960000 +vt 0.000000 0.860000 +vt 0.000000 0.900000 +vt -0.000000 0.800000 +vt -0.000000 0.920000 +vt -0.000000 1.000000 +vt -0.000000 0.940000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 0.0000 -1.0000 +vn -1.0000 0.0000 -0.0000 +vn 0.6332 0.0000 -0.7740 +vn 1.0000 0.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -0.9762 -0.2169 +vn 0.7071 -0.7071 0.0000 +vn 0.0000 0.7071 0.7071 +vn -0.2169 0.9762 0.0000 +vn -0.6139 0.0000 0.7894 +vn -0.7071 0.0000 -0.7071 +vn -0.7071 -0.7071 0.0000 +vn -0.7071 0.7071 0.0000 +vn 0.7071 0.7071 0.0000 +vn 0.0000 -0.7071 0.7071 +vn 0.7071 0.0000 -0.7071 +vn 0.6139 0.0000 0.7894 +vn 0.0000 0.9762 -0.2169 +vn -0.6332 0.0000 -0.7740 +vn 0.7071 0.0000 0.7071 +vn -0.7071 0.0000 0.7071 +vn -0.2169 -0.9762 0.0000 +vn 0.2169 0.9762 0.0000 +vn 0.2169 -0.9762 0.0000 +vn 0.8660 0.5000 0.0000 +vn 0.5000 -0.8660 0.0000 +vn -0.8660 -0.5000 0.0000 +vn 0.5000 0.8660 0.0000 +vn -0.5000 0.8660 0.0000 +vn 0.8660 -0.5000 0.0000 +vn -0.5000 -0.8660 0.0000 +vn -0.8660 0.5000 0.0000 +vn 0.0000 -0.7071 -0.7071 +vn 0.0000 0.7071 -0.7071 +vn 0.0000 0.9608 -0.2773 +vn -0.9608 0.0000 -0.2773 +vn 0.8320 -0.4804 -0.2773 +vn 0.0000 -0.9608 -0.2773 +vn 0.4804 0.8320 -0.2773 +vn -0.8320 0.4804 -0.2773 +vn 0.4804 -0.8320 -0.2773 +vn -0.4804 -0.8320 -0.2773 +vn 0.8320 0.4804 -0.2773 +vn -0.4804 0.8320 -0.2773 +vn -0.8320 -0.4804 -0.2773 +vn 0.9608 0.0000 -0.2773 +vn 0.3422 0.5927 -0.7291 +vn 0.0000 0.6844 -0.7291 +vn -0.3422 0.5927 -0.7291 +vn -0.5927 0.3422 -0.7291 +vn -0.5927 -0.3422 -0.7291 +vn -0.3422 -0.5927 -0.7291 +vn 0.0000 -0.6844 -0.7291 +vn 0.3422 -0.5927 -0.7291 +vn 0.6844 0.0000 -0.7291 +vn 0.5927 0.3422 -0.7291 +vn 0.3873 0.2236 -0.8944 +vn 0.2236 0.3873 -0.8944 +vn 0.0000 0.4472 -0.8944 +vn -0.3873 0.2236 -0.8944 +vn -0.2236 0.3873 -0.8944 +vn -0.6844 0.0000 -0.7291 +vn -0.3873 -0.2236 -0.8944 +vn -0.4472 0.0000 -0.8944 +vn -0.2236 -0.3873 -0.8944 +vn 0.0000 -0.4472 -0.8944 +vn 0.2236 -0.3873 -0.8944 +vn 0.5927 -0.3422 -0.7291 +vn 0.3873 -0.2236 -0.8944 +vn 0.4472 0.0000 -0.8944 +vn 0.9987 0.0473 -0.0196 +vn -0.9987 0.0473 -0.0196 +vn 0.0000 0.9824 -0.1866 +vn 0.6794 0.7194 -0.1447 +vn 0.7263 -0.6737 0.1363 +vn -0.7263 -0.6737 0.1363 +vn -0.6794 0.7194 -0.1447 +vn -0.7573 -0.4617 0.4617 +vn -0.7263 -0.1363 0.6737 +vn -0.9987 0.0196 -0.0473 +vn -0.6630 0.5293 -0.5293 +vn -0.9955 0.0670 -0.0670 +vn -0.6794 0.1447 -0.7194 +vn 0.6794 0.1447 -0.7194 +vn 0.0000 0.1866 -0.9824 +vn 0.6630 0.5293 -0.5293 +vn 0.9987 0.0196 -0.0473 +vn 0.7263 -0.1363 0.6737 +vn 0.7573 -0.4617 0.4617 +vn 0.9955 0.0670 -0.0670 +vn 0.9546 -0.2971 -0.0196 +vn 0.9063 0.4226 0.0000 +vn 0.9397 -0.3420 0.0000 +vn -0.2418 -0.6644 0.7071 +vn 0.4226 -0.9063 0.0000 +vn -0.3420 -0.9397 0.0000 +vn -0.9223 0.3860 -0.0196 +vn -0.9063 -0.4226 0.0000 +vn -0.9397 0.3420 0.0000 +vn 0.3360 0.9232 -0.1866 +vn -0.4226 0.9063 0.0000 +vn 0.3420 0.9397 0.0000 +vn 0.8844 0.4436 -0.1447 +vn 0.4521 -0.8815 0.1363 +vn -0.9129 -0.3847 0.1363 +vn -0.3924 0.9083 -0.1447 +vn -0.8696 -0.1748 0.4617 +vn -0.7291 0.1203 0.6737 +vn -0.9125 0.4035 -0.0670 +vn -0.4420 0.7242 -0.5293 +vn -0.9318 0.3600 -0.0473 +vn 0.2418 0.6644 -0.7071 +vn -0.5889 0.3684 -0.7194 +vn 0.6879 -0.0963 -0.7194 +vn 0.0638 0.1753 -0.9824 +vn 0.8040 0.2706 -0.5293 +vn 0.9452 -0.3232 -0.0473 +vn 0.6359 -0.3765 0.6737 +vn 0.5538 -0.6929 0.4617 +vn 0.9584 -0.2774 -0.0670 +vn -0.6644 0.2418 0.7071 +vn -0.6644 0.2418 -0.7071 +vn 0.6644 -0.2418 -0.7071 +vn 0.6644 -0.2418 0.7071 +vn 0.2418 -0.6644 0.7071 +vn 0.6644 0.2418 0.7071 +vn 0.7291 0.1203 0.6737 +vn 0.5889 0.3684 -0.7194 +vn 0.9397 0.3420 0.0000 +vn 0.6644 0.2418 -0.7071 +vn -0.6644 -0.2418 0.7071 +vn -0.9452 -0.3232 -0.0473 +vn -0.6644 -0.2418 -0.7071 +vn -0.9397 -0.3420 0.0000 +vn 0.9318 0.3600 -0.0473 +vn -0.0638 0.1753 -0.9824 +vn -0.6879 -0.0963 -0.7194 +vn -0.6359 -0.3765 0.6737 +vn -0.5538 -0.6929 0.4617 +vn -0.9546 -0.2971 -0.0196 +vn -0.9584 -0.2774 -0.0670 +vn -0.8040 0.2706 -0.5293 +vn -0.8844 0.4436 -0.1447 +vn -0.2418 0.6644 -0.7071 +vn -0.3360 0.9232 -0.1866 +vn 0.3924 0.9083 -0.1447 +vn 0.9125 0.4035 -0.0671 +vn 0.9223 0.3860 -0.0196 +vn 0.9129 -0.3847 0.1363 +vn 0.8696 -0.1748 0.4617 +vn -0.4521 -0.8815 0.1363 +vn 0.4420 0.7242 -0.5293 +vn -0.9063 0.4226 0.0000 +vn 0.3420 -0.9397 0.0000 +vn -0.4226 -0.9063 0.0000 +vn 0.9063 -0.4226 0.0000 +vn -0.3420 0.9397 0.0000 +vn 0.4226 0.9063 0.0000 +vn 0.6928 0.4000 0.6000 +vn 0.8000 0.0000 0.6000 +vn 0.4000 -0.6928 0.6000 +vn 0.0000 -0.8000 0.6000 +vn -0.6928 -0.4000 0.6000 +vn -0.8000 0.0000 0.6000 +vn 0.4000 0.6928 0.6000 +vn -0.4000 0.6928 0.6000 +vn 0.0000 0.8000 0.6000 +vn 0.6928 -0.4000 0.6000 +vn -0.4000 -0.6928 0.6000 +vn -0.6928 0.4000 0.6000 +s off +f 285/323/39 289/324/39 281/325/39 +f 713/326/40 726/327/40 725/328/40 +f 684/329/40 691/330/40 685/331/40 +f 683/332/40 692/333/40 684/329/40 +f 682/334/40 693/335/40 683/332/40 +f 682/334/40 695/336/40 694/337/40 +f 681/338/40 696/339/40 695/336/40 +f 680/340/40 697/341/40 696/339/40 +f 648/342/41 650/343/41 649/344/41 +f 679/345/40 698/346/40 697/341/40 +f 690/347/40 699/348/40 698/346/40 +f 326/349/39 738/350/39 325/351/39 +f 736/352/39 326/349/39 327/353/39 +f 735/354/39 327/353/39 328/355/39 +f 734/356/39 328/355/39 329/357/39 +f 733/358/39 329/357/39 330/359/39 +f 331/360/39 733/361/39 330/362/39 +f 332/363/39 732/364/39 331/360/39 +f 730/365/39 332/363/39 333/366/39 +f 729/367/39 333/366/39 334/368/39 +f 728/369/39 334/368/39 335/370/39 +f 727/371/39 335/370/39 336/372/39 +f 325/351/39 727/371/39 336/372/39 +f 371/373/41 364/374/41 363/375/41 +f 367/376/42 376/377/42 368/378/42 +f 372/379/43 374/380/43 365/381/43 +f 366/382/39 371/383/39 372/379/39 +f 367/376/44 361/384/44 363/385/44 +f 364/374/45 366/382/45 368/378/45 +f 374/380/39 361/386/39 365/381/39 +f 363/385/46 375/387/46 367/376/46 +f 385/388/47 379/389/47 377/390/47 +f 372/391/48 369/392/48 374/380/48 +f 364/374/49 376/393/49 373/394/49 +f 364/374/50 370/395/50 363/375/50 +f 402/396/51 383/397/51 403/398/51 +f 388/399/52 381/400/52 383/401/52 +f 378/402/53 390/403/53 389/404/53 +f 384/405/54 391/406/54 392/407/54 +f 392/407/40 383/397/40 384/405/40 +f 392/407/40 396/408/40 388/409/40 +f 381/410/39 391/406/39 382/411/39 +f 389/404/39 377/412/39 378/402/39 +f 389/404/55 394/413/55 385/414/55 +f 379/415/40 390/403/40 380/416/40 +f 400/417/44 395/418/44 396/419/44 +f 398/420/44 393/421/44 394/422/44 +f 388/399/41 395/423/41 387/424/41 +f 390/403/41 398/420/41 389/404/41 +f 386/425/40 397/426/40 390/403/40 +f 387/427/55 399/428/55 391/406/55 +f 386/429/43 394/430/43 393/431/43 +f 392/407/43 399/432/43 400/417/43 +f 380/416/56 401/433/56 379/415/56 +f 404/434/40 403/398/40 401/433/40 +f 666/435/43 673/436/43 663/437/43 +f 670/438/43 677/439/43 676/440/43 +f 672/441/43 664/442/43 678/443/43 +f 667/444/43 674/445/43 673/446/43 +f 671/447/43 678/443/43 677/439/43 +f 668/448/43 675/449/43 674/445/43 +f 645/450/43 643/451/43 641/452/43 +f 670/453/43 675/449/43 669/454/43 +f 666/455/43 664/442/43 665/456/43 +f 443/457/57 449/458/57 450/459/57 +f 449/458/58 437/460/58 445/461/58 +f 444/462/48 441/463/48 439/464/48 +f 438/465/46 450/466/46 446/467/46 +f 452/468/39 439/464/39 448/469/39 +f 447/470/45 449/458/45 445/461/45 +f 452/471/44 446/467/44 450/466/44 +f 442/472/39 447/470/39 441/473/39 +f 441/473/41 447/470/41 445/461/41 +f 437/474/59 446/467/59 445/461/59 +f 449/458/43 451/475/43 442/476/43 +f 713/326/40 724/477/40 712/478/40 +f 712/478/40 723/479/40 711/480/40 +f 711/480/40 722/481/40 710/482/40 +f 710/482/40 721/483/40 709/484/40 +f 708/485/40 721/486/40 720/487/40 +f 707/488/40 720/487/40 719/489/40 +f 707/488/40 718/490/40 706/491/40 +f 706/491/40 717/492/40 705/493/40 +f 705/493/40 716/494/40 704/495/40 +f 704/495/40 715/496/40 703/497/40 +f 714/498/40 715/496/40 726/327/40 +f 503/499/39 504/500/39 501/501/39 +f 381/400/44 503/502/44 377/390/44 +f 382/503/60 503/499/60 381/504/60 +f 501/501/61 378/505/61 377/506/61 +f 382/411/45 402/507/45 404/508/45 +f 507/509/41 509/510/41 505/511/41 +f 507/512/40 508/513/40 516/514/40 +f 506/515/43 512/516/43 508/513/43 +f 511/517/52 513/518/52 509/510/52 +f 510/519/47 516/520/47 512/516/47 +f 514/521/39 505/511/39 513/522/39 +f 635/523/41 637/524/41 631/525/41 +f 659/526/41 654/527/41 653/528/41 +f 652/529/41 659/526/41 653/530/41 +f 655/531/41 662/532/41 656/533/41 +f 651/534/41 658/535/41 652/536/41 +f 656/537/41 648/342/41 649/538/41 +f 654/539/41 661/540/41 655/541/41 +f 650/542/41 657/543/41 651/544/41 +f 686/545/40 691/546/40 702/547/40 +f 687/548/40 702/547/40 701/549/40 +f 688/550/40 701/549/40 700/551/40 +f 689/552/40 700/551/40 699/348/40 +f 281/325/39 282/553/39 285/323/39 +f 282/553/39 283/554/39 285/323/39 +f 283/554/39 284/555/39 285/323/39 +f 285/323/39 286/556/39 289/324/39 +f 286/556/39 287/557/39 289/324/39 +f 287/557/39 288/558/39 289/324/39 +f 289/324/39 290/559/39 291/560/39 +f 291/560/39 292/561/39 289/324/39 +f 292/561/39 281/325/39 289/324/39 +f 713/326/40 714/498/40 726/327/40 +f 684/329/40 692/333/40 691/330/40 +f 683/332/40 693/335/40 692/333/40 +f 682/334/40 694/337/40 693/335/40 +f 682/334/40 681/338/40 695/336/40 +f 681/338/40 680/340/40 696/339/40 +f 680/340/40 679/345/40 697/341/40 +f 648/342/41 647/562/41 650/343/41 +f 679/345/40 690/347/40 698/346/40 +f 690/347/40 689/552/40 699/348/40 +f 326/349/39 737/563/39 738/350/39 +f 736/352/39 737/563/39 326/349/39 +f 735/354/39 736/352/39 327/353/39 +f 734/356/39 735/354/39 328/355/39 +f 733/358/39 734/356/39 329/357/39 +f 331/360/39 732/364/39 733/361/39 +f 332/363/39 731/564/39 732/364/39 +f 730/365/39 731/564/39 332/363/39 +f 729/367/39 730/365/39 333/366/39 +f 728/369/39 729/367/39 334/368/39 +f 727/371/39 728/369/39 335/370/39 +f 325/351/39 738/350/39 727/371/39 +f 363/375/41 361/565/41 371/373/41 +f 361/565/41 369/566/41 371/373/41 +f 371/373/41 362/567/41 364/374/41 +f 367/376/42 375/568/42 376/377/42 +f 365/381/43 367/376/43 372/379/43 +f 367/376/43 368/378/43 372/379/43 +f 368/378/43 366/382/43 372/379/43 +f 366/382/39 362/569/39 371/383/39 +f 367/376/44 365/381/44 361/384/44 +f 364/374/45 362/567/45 366/382/45 +f 374/380/39 369/392/39 361/386/39 +f 363/385/62 370/570/62 375/387/62 +f 385/388/47 386/429/47 379/389/47 +f 372/391/48 371/571/48 369/392/48 +f 364/374/58 368/378/58 376/393/58 +f 364/374/50 373/572/50 370/395/50 +f 402/396/51 384/405/51 383/397/51 +f 388/399/52 387/424/52 381/400/52 +f 378/402/53 380/416/53 390/403/53 +f 384/405/54 382/411/54 391/406/54 +f 392/407/40 388/409/40 383/397/40 +f 392/407/40 400/417/40 396/408/40 +f 381/410/39 387/427/39 391/406/39 +f 389/404/39 385/414/39 377/412/39 +f 389/404/55 398/573/55 394/413/55 +f 379/415/40 386/425/40 390/403/40 +f 400/417/44 399/432/44 395/418/44 +f 398/420/44 397/426/44 393/421/44 +f 388/399/41 396/574/41 395/423/41 +f 390/403/41 397/426/41 398/420/41 +f 386/425/40 393/575/40 397/426/40 +f 387/427/55 395/576/55 399/428/55 +f 386/429/43 385/388/43 394/430/43 +f 392/407/43 391/406/43 399/432/43 +f 380/416/56 404/434/56 401/433/56 +f 404/434/40 402/396/40 403/398/40 +f 666/435/43 667/577/43 673/436/43 +f 670/438/43 671/578/43 677/439/43 +f 672/441/43 665/579/43 664/442/43 +f 667/444/43 668/580/43 674/445/43 +f 671/447/43 672/581/43 678/443/43 +f 668/448/43 669/582/43 675/449/43 +f 641/452/43 640/583/43 639/584/43 +f 639/584/43 646/585/43 645/450/43 +f 645/450/43 644/586/43 643/451/43 +f 643/451/43 642/587/43 641/452/43 +f 641/452/43 639/584/43 645/450/43 +f 670/453/43 676/440/43 675/449/43 +f 666/455/43 663/437/43 664/442/43 +f 443/457/57 440/588/57 449/458/57 +f 449/458/63 440/589/63 437/460/63 +f 444/462/48 442/590/48 441/463/48 +f 438/465/64 443/591/64 450/466/64 +f 452/468/39 444/462/39 439/464/39 +f 447/470/45 451/475/45 449/458/45 +f 452/471/44 448/469/44 446/467/44 +f 442/472/39 451/592/39 447/470/39 +f 445/461/41 446/467/41 441/473/41 +f 446/467/41 448/469/41 441/473/41 +f 448/469/41 439/464/41 441/473/41 +f 437/474/59 438/593/59 446/467/59 +f 444/594/43 452/595/43 442/476/43 +f 452/595/43 450/459/43 442/476/43 +f 450/459/43 449/458/43 442/476/43 +f 713/326/40 725/328/40 724/477/40 +f 712/478/40 724/477/40 723/479/40 +f 711/480/40 723/479/40 722/481/40 +f 710/482/40 722/481/40 721/483/40 +f 708/485/40 709/596/40 721/486/40 +f 707/488/40 708/485/40 720/487/40 +f 707/488/40 719/489/40 718/490/40 +f 706/491/40 718/490/40 717/492/40 +f 705/493/40 717/492/40 716/494/40 +f 704/495/40 716/494/40 715/496/40 +f 714/498/40 703/497/40 715/496/40 +f 503/499/39 502/597/39 504/500/39 +f 377/390/44 379/389/44 401/598/44 +f 403/599/44 383/401/44 381/400/44 +f 377/390/44 401/598/44 403/599/44 +f 503/502/44 501/600/44 377/390/44 +f 403/599/44 381/400/44 377/390/44 +f 382/503/60 502/597/60 503/499/60 +f 501/501/61 504/500/61 378/505/61 +f 380/416/45 378/402/45 404/508/45 +f 378/402/45 504/500/45 382/411/45 +f 404/508/45 378/402/45 382/411/45 +f 504/500/45 502/597/45 382/411/45 +f 382/411/45 384/405/45 402/507/45 +f 507/509/41 511/517/41 509/510/41 +f 508/513/40 512/516/40 516/514/40 +f 516/514/40 515/601/40 507/512/40 +f 515/601/40 511/602/40 507/512/40 +f 506/515/43 510/519/43 512/516/43 +f 511/517/52 515/603/52 513/518/52 +f 510/519/47 514/604/47 516/520/47 +f 514/521/39 510/519/39 506/515/39 +f 506/515/39 505/511/39 514/521/39 +f 505/511/39 509/510/39 513/522/39 +f 631/525/41 632/605/41 633/606/41 +f 633/606/41 634/607/41 635/523/41 +f 635/523/41 636/608/41 637/524/41 +f 637/524/41 638/609/41 631/525/41 +f 631/525/41 633/606/41 635/523/41 +f 659/526/41 660/610/41 654/527/41 +f 652/529/41 658/535/41 659/526/41 +f 655/531/41 661/540/41 662/532/41 +f 651/534/41 657/611/41 658/535/41 +f 656/537/41 662/532/41 648/342/41 +f 654/539/41 660/610/41 661/540/41 +f 650/542/41 647/562/41 657/543/41 +f 686/545/40 685/612/40 691/546/40 +f 687/548/40 686/545/40 702/547/40 +f 688/550/40 687/548/40 701/549/40 +f 689/552/40 688/550/40 700/551/40 +s 1 +f 266/613/43 279/614/65 267/615/65 +f 263/616/44 276/617/66 264/618/66 +f 260/619/41 273/620/67 261/621/67 +f 267/615/65 280/622/68 268/623/68 +f 258/624/69 269/625/45 270/626/69 +f 264/618/66 277/627/70 265/628/70 +f 261/621/67 274/629/71 262/630/71 +f 268/623/68 269/625/45 257/631/45 +f 258/624/69 271/632/72 259/633/72 +f 265/628/70 278/634/43 266/613/43 +f 262/630/71 275/635/44 263/636/44 +f 259/633/72 272/637/41 260/619/41 +f 313/638/39 322/639/48 321/640/39 +f 295/641/40 298/642/73 297/643/73 +f 294/644/40 317/645/73 318/646/40 +f 298/647/73 299/648/44 297/649/73 +f 311/650/44 317/645/73 293/651/73 +f 300/652/44 301/653/55 299/654/44 +f 315/655/45 322/639/48 314/656/48 +f 302/657/55 303/658/39 301/659/55 +f 294/644/40 324/660/74 316/661/74 +f 304/662/39 305/663/48 303/664/39 +f 312/665/55 319/666/44 311/667/44 +f 306/668/48 307/669/45 305/670/48 +f 308/671/45 309/672/74 307/673/45 +f 316/661/74 323/674/45 315/655/45 +f 313/638/39 320/675/55 312/665/55 +f 310/676/74 295/677/40 309/678/74 +f 348/679/68 349/680/45 337/681/45 +f 349/680/45 338/682/69 337/681/45 +f 350/683/69 339/684/72 338/682/69 +f 351/685/72 340/686/41 339/684/72 +f 352/687/41 341/688/67 340/686/41 +f 353/689/67 342/690/71 341/688/67 +f 354/691/71 343/692/44 342/690/71 +f 355/693/44 344/694/66 343/695/44 +f 356/696/66 345/697/70 344/694/66 +f 357/698/70 346/699/43 345/697/70 +f 358/700/43 347/701/65 346/699/43 +f 359/702/65 348/679/68 347/701/65 +f 425/703/39 434/704/48 426/705/48 +f 409/706/73 408/707/40 407/708/40 +f 406/709/40 429/710/73 405/711/73 +f 411/712/44 410/713/73 409/714/73 +f 429/710/73 423/715/44 405/711/73 +f 413/716/55 412/717/44 411/718/44 +f 434/704/48 427/719/45 426/705/48 +f 413/720/55 416/721/39 414/722/55 +f 436/723/74 406/709/40 428/724/74 +f 417/725/48 416/726/39 415/727/39 +f 431/728/44 424/729/55 423/730/44 +f 419/731/45 418/732/48 417/733/48 +f 421/734/74 420/735/45 419/736/45 +f 435/737/45 428/724/74 427/719/45 +f 432/738/55 425/703/39 424/729/55 +f 407/739/40 422/740/74 421/741/74 +f 460/742/68 471/743/75 459/744/45 +f 457/745/72 468/746/76 456/747/41 +f 464/748/66 475/749/77 463/750/70 +f 454/751/71 465/752/78 453/753/44 +f 461/754/65 472/755/79 460/742/68 +f 458/756/69 469/757/80 457/745/72 +f 453/758/44 476/759/81 464/748/66 +f 455/760/67 466/761/82 454/751/71 +f 462/762/43 473/763/83 461/754/65 +f 459/744/45 470/764/84 458/756/69 +f 456/747/41 467/765/85 455/760/67 +f 463/750/70 474/766/86 462/762/43 +f 473/763/83 500/767/87 472/755/79 +f 500/768/87 471/743/75 472/755/79 +f 489/769/88 470/764/84 471/743/75 +f 490/770/89 469/757/80 470/764/84 +f 491/771/90 468/746/76 469/757/80 +f 468/746/76 493/772/91 467/765/85 +f 467/765/85 494/773/92 466/761/82 +f 466/761/82 495/774/93 465/752/78 +f 495/775/93 476/759/81 465/776/78 +f 496/777/94 475/749/77 476/759/81 +f 475/749/77 498/778/95 474/766/86 +f 474/766/86 499/779/96 473/763/83 +f 485/780/97 500/767/87 499/781/96 +f 484/782/98 489/783/88 500/768/87 +f 483/784/99 490/785/89 489/769/88 +f 481/786/100 490/770/89 482/787/101 +f 481/788/100 492/789/102 491/771/90 +f 479/790/103 492/791/102 480/792/104 +f 478/793/105 493/794/91 479/795/103 +f 477/796/106 494/797/92 478/798/105 +f 477/799/106 496/800/94 495/775/93 +f 488/801/107 497/802/108 496/777/94 +f 487/803/109 498/778/95 497/804/108 +f 486/805/110 499/779/96 498/806/95 +f 531/807/111 524/808/54 523/809/43 +f 529/810/55 522/811/47 521/812/44 +f 527/813/112 520/814/52 519/815/41 +f 525/816/113 518/817/53 517/818/45 +f 532/819/114 517/818/45 524/808/54 +f 530/820/115 523/809/43 522/811/47 +f 528/821/116 521/822/44 520/814/52 +f 526/823/117 519/815/41 518/817/53 +f 529/824/55 551/825/118 542/826/119 +f 551/825/118 541/827/120 542/826/119 +f 553/828/121 541/827/120 552/829/122 +f 554/830/74 540/831/123 553/828/121 +f 554/830/74 546/832/124 539/833/125 +f 547/834/126 545/835/127 546/832/124 +f 528/836/116 551/825/118 529/824/55 +f 544/837/128 549/838/129 529/839/55 +f 529/839/55 549/838/129 530/840/115 +f 549/838/129 545/835/127 548/841/130 +f 549/838/129 531/842/111 530/840/115 +f 548/841/130 532/819/114 531/842/111 +f 532/819/114 554/830/74 525/816/113 +f 554/830/74 526/823/117 525/816/113 +f 526/823/117 552/829/122 527/843/112 +f 551/825/118 527/843/112 552/829/122 +f 541/844/120 536/845/61 542/846/119 +f 539/833/125 538/847/51 540/831/123 +f 546/832/124 550/848/40 539/833/125 +f 544/849/128 534/850/43 545/851/127 +f 540/831/123 537/852/41 541/844/120 +f 542/846/119 543/853/39 529/854/55 +f 545/851/127 533/855/56 546/832/124 +f 529/856/55 535/857/60 544/849/128 +f 569/858/131 562/859/132 561/860/133 +f 567/861/134 560/862/135 559/863/136 +f 565/864/137 558/865/138 557/866/139 +f 563/867/140 556/868/141 555/869/142 +f 570/870/143 555/869/142 562/859/132 +f 568/871/144 561/860/133 560/862/135 +f 566/872/145 559/873/136 558/865/138 +f 564/874/146 557/866/139 556/868/141 +f 567/875/134 589/876/147 580/877/148 +f 590/878/149 580/877/148 589/876/147 +f 591/879/150 579/880/151 590/878/149 +f 592/881/152 578/882/153 591/879/150 +f 592/881/152 584/883/154 577/884/155 +f 585/885/156 583/886/157 584/883/154 +f 566/887/145 589/876/147 567/875/134 +f 582/888/158 587/889/159 567/890/134 +f 567/890/134 587/889/159 568/891/144 +f 582/888/158 586/892/160 587/889/159 +f 568/891/144 586/892/160 569/893/131 +f 569/893/131 585/885/156 570/870/143 +f 570/870/143 592/881/152 563/867/140 +f 592/881/152 564/874/146 563/867/140 +f 564/874/146 590/878/149 565/894/137 +f 590/878/149 566/887/145 565/894/137 +f 579/895/151 574/896/161 580/897/148 +f 577/884/155 576/898/162 578/882/153 +f 577/884/155 571/899/163 588/900/40 +f 583/901/157 573/902/164 572/903/133 +f 579/895/151 576/898/162 575/904/139 +f 580/897/148 581/905/39 567/906/134 +f 583/901/157 571/899/163 584/883/154 +f 567/907/134 573/902/164 582/908/158 +f 618/909/165 612/910/166 603/911/167 +f 601/912/168 613/913/169 614/914/170 +f 618/915/165 611/916/171 604/917/39 +f 606/918/172 609/919/173 610/920/174 +f 602/921/175 612/910/166 613/913/169 +f 608/922/176 614/914/170 597/923/40 +f 608/922/176 609/919/173 607/924/177 +f 606/918/172 611/916/171 605/925/178 +f 596/926/179 620/927/180 595/928/181 +f 594/929/182 620/927/180 621/930/183 +f 593/931/184 621/930/183 622/932/185 +f 615/933/186 593/931/184 622/932/185 +f 599/934/187 615/933/186 616/935/188 +f 617/936/189 599/934/187 616/935/188 +f 603/937/167 599/934/187 598/938/190 +f 618/939/165 598/938/190 617/936/189 +f 603/937/167 598/938/190 618/939/165 +f 619/940/191 596/926/179 618/941/165 +f 600/942/192 602/943/175 601/912/168 +f 600/942/192 608/922/176 593/931/184 +f 593/931/184 607/924/177 594/929/182 +f 594/929/182 606/944/172 595/928/181 +f 596/926/179 606/944/172 605/945/178 +f 618/941/165 596/926/179 605/945/178 +f 621/930/183 628/946/174 629/947/193 +f 619/948/191 626/949/194 627/950/195 +f 617/951/189 624/952/169 625/953/196 +f 615/933/186 630/954/197 623/955/198 +f 622/932/185 629/947/193 630/954/197 +f 620/956/180 627/950/195 628/946/174 +f 618/957/165 625/953/196 626/958/194 +f 616/959/188 623/955/198 624/952/169 +f 749/960/199 760/961/200 748/962/200 +f 746/963/201 757/964/202 745/965/202 +f 743/966/203 754/967/204 742/968/204 +f 750/969/205 761/970/199 749/960/199 +f 740/971/206 751/972/207 739/973/207 +f 747/974/208 758/975/201 746/963/201 +f 743/966/203 756/976/209 755/977/203 +f 750/969/205 751/978/207 762/979/205 +f 741/980/210 752/981/206 740/971/206 +f 747/974/208 760/982/200 759/983/208 +f 745/984/202 756/985/209 744/986/209 +f 742/968/204 753/987/210 741/980/210 +f 266/613/43 278/634/43 279/614/65 +f 263/616/44 275/988/44 276/617/66 +f 260/619/41 272/637/41 273/620/67 +f 267/615/65 279/614/65 280/622/68 +f 258/624/69 257/631/45 269/625/45 +f 264/618/66 276/617/66 277/627/70 +f 261/621/67 273/620/67 274/629/71 +f 268/623/68 280/622/68 269/625/45 +f 258/624/69 270/626/69 271/632/72 +f 265/628/70 277/627/70 278/634/43 +f 262/630/71 274/629/71 275/635/44 +f 259/633/72 271/632/72 272/637/41 +f 313/638/39 314/656/48 322/639/48 +f 295/641/40 296/989/40 298/642/73 +f 294/644/40 293/651/73 317/645/73 +f 298/647/73 300/990/44 299/648/44 +f 311/650/44 319/991/44 317/645/73 +f 300/652/44 302/992/55 301/653/55 +f 315/655/45 323/674/45 322/639/48 +f 302/657/55 304/993/39 303/658/39 +f 294/644/40 318/646/40 324/660/74 +f 304/662/39 306/994/48 305/663/48 +f 312/665/55 320/675/55 319/666/44 +f 306/668/48 308/995/45 307/669/45 +f 308/671/45 310/996/74 309/672/74 +f 316/661/74 324/660/74 323/674/45 +f 313/638/39 321/640/39 320/675/55 +f 310/676/74 296/997/40 295/677/40 +f 348/679/68 360/998/68 349/680/45 +f 349/680/45 350/683/69 338/682/69 +f 350/683/69 351/685/72 339/684/72 +f 351/685/72 352/687/41 340/686/41 +f 352/687/41 353/689/67 341/688/67 +f 353/689/67 354/691/71 342/690/71 +f 354/691/71 355/999/44 343/692/44 +f 355/693/44 356/696/66 344/694/66 +f 356/696/66 357/698/70 345/697/70 +f 357/698/70 358/700/43 346/699/43 +f 358/700/43 359/702/65 347/701/65 +f 359/702/65 360/998/68 348/679/68 +f 425/703/39 433/1000/39 434/704/48 +f 409/706/73 410/1001/73 408/707/40 +f 406/709/40 430/1002/40 429/710/73 +f 411/712/44 412/1003/44 410/713/73 +f 429/710/73 431/1004/44 423/715/44 +f 413/716/55 414/1005/55 412/717/44 +f 434/704/48 435/737/45 427/719/45 +f 413/720/55 415/1006/39 416/721/39 +f 436/723/74 430/1002/40 406/709/40 +f 417/725/48 418/1007/48 416/726/39 +f 431/728/44 432/738/55 424/729/55 +f 419/731/45 420/1008/45 418/732/48 +f 421/734/74 422/1009/74 420/735/45 +f 435/737/45 436/723/74 428/724/74 +f 432/738/55 433/1000/39 425/703/39 +f 407/739/40 408/1010/40 422/740/74 +f 460/742/68 472/755/79 471/743/75 +f 457/745/72 469/757/80 468/746/76 +f 464/748/66 476/759/81 475/749/77 +f 454/751/71 466/761/82 465/752/78 +f 461/754/65 473/763/83 472/755/79 +f 458/756/69 470/764/84 469/757/80 +f 453/758/44 465/776/78 476/759/81 +f 455/760/67 467/765/85 466/761/82 +f 462/762/43 474/766/86 473/763/83 +f 459/744/45 471/743/75 470/764/84 +f 456/747/41 468/746/76 467/765/85 +f 463/750/70 475/749/77 474/766/86 +f 473/763/83 499/781/96 500/767/87 +f 500/768/87 489/783/88 471/743/75 +f 489/769/88 490/785/89 470/764/84 +f 490/770/89 491/1011/90 469/757/80 +f 491/771/90 492/789/102 468/746/76 +f 468/746/76 492/791/102 493/772/91 +f 467/765/85 493/794/91 494/773/92 +f 466/761/82 494/797/92 495/774/93 +f 495/775/93 496/800/94 476/759/81 +f 496/777/94 497/802/108 475/749/77 +f 475/749/77 497/804/108 498/778/95 +f 474/766/86 498/806/95 499/779/96 +f 485/780/97 484/1012/98 500/767/87 +f 484/782/98 483/1013/99 489/783/88 +f 483/784/99 482/1014/101 490/785/89 +f 481/786/100 491/1011/90 490/770/89 +f 481/788/100 480/1015/104 492/789/102 +f 479/790/103 493/772/91 492/791/102 +f 478/793/105 494/773/92 493/794/91 +f 477/796/106 495/774/93 494/797/92 +f 477/799/106 488/1016/107 496/800/94 +f 488/801/107 487/1017/109 497/802/108 +f 487/803/109 486/1018/110 498/778/95 +f 486/805/110 485/1019/97 499/779/96 +f 531/807/111 532/819/114 524/808/54 +f 529/810/55 530/820/115 522/811/47 +f 527/813/112 528/821/116 520/814/52 +f 525/816/113 526/823/117 518/817/53 +f 532/819/114 525/816/113 517/818/45 +f 530/820/115 531/807/111 523/809/43 +f 528/821/116 529/1020/55 521/822/44 +f 526/823/117 527/813/112 519/815/41 +f 551/825/118 552/829/122 541/827/120 +f 553/828/121 540/831/123 541/827/120 +f 554/830/74 539/833/125 540/831/123 +f 554/830/74 547/834/126 546/832/124 +f 547/834/126 548/841/130 545/835/127 +f 549/838/129 544/837/128 545/835/127 +f 549/838/129 548/841/130 531/842/111 +f 548/841/130 547/834/126 532/819/114 +f 532/819/114 547/834/126 554/830/74 +f 554/830/74 553/828/121 526/823/117 +f 526/823/117 553/828/121 552/829/122 +f 551/825/118 528/836/116 527/843/112 +f 541/844/120 537/852/41 536/845/61 +f 539/833/125 550/848/40 538/847/51 +f 546/832/124 533/855/56 550/848/40 +f 544/849/128 535/857/60 534/850/43 +f 540/831/123 538/847/51 537/852/41 +f 542/846/119 536/845/61 543/853/39 +f 545/851/127 534/850/43 533/855/56 +f 529/856/55 543/1021/39 535/857/60 +f 569/858/131 570/870/143 562/859/132 +f 567/861/134 568/871/144 560/862/135 +f 565/864/137 566/872/145 558/865/138 +f 563/867/140 564/874/146 556/868/141 +f 570/870/143 563/867/140 555/869/142 +f 568/871/144 569/858/131 561/860/133 +f 566/872/145 567/1022/134 559/873/136 +f 564/874/146 565/864/137 557/866/139 +f 590/878/149 579/880/151 580/877/148 +f 591/879/150 578/882/153 579/880/151 +f 592/881/152 577/884/155 578/882/153 +f 592/881/152 585/885/156 584/883/154 +f 585/885/156 586/892/160 583/886/157 +f 582/888/158 583/886/157 586/892/160 +f 568/891/144 587/889/159 586/892/160 +f 569/893/131 586/892/160 585/885/156 +f 570/870/143 585/885/156 592/881/152 +f 592/881/152 591/879/150 564/874/146 +f 564/874/146 591/879/150 590/878/149 +f 590/878/149 589/876/147 566/887/145 +f 579/895/151 575/904/139 574/896/161 +f 577/884/155 588/900/40 576/898/162 +f 577/884/155 584/883/154 571/899/163 +f 583/901/157 582/908/158 573/902/164 +f 579/895/151 578/882/153 576/898/162 +f 580/897/148 574/896/161 581/905/39 +f 583/901/157 572/903/133 571/899/163 +f 567/907/134 581/1023/39 573/902/164 +f 618/909/165 604/1024/39 612/910/166 +f 601/912/168 602/921/175 613/913/169 +f 618/915/165 605/925/178 611/916/171 +f 606/918/172 607/924/177 609/919/173 +f 602/921/175 603/911/167 612/910/166 +f 608/922/176 601/912/168 614/914/170 +f 608/922/176 597/923/40 609/919/173 +f 606/918/172 610/920/174 611/916/171 +f 596/926/179 619/940/191 620/927/180 +f 594/929/182 595/928/181 620/927/180 +f 593/931/184 594/929/182 621/930/183 +f 615/933/186 600/942/192 593/931/184 +f 599/934/187 600/942/192 615/933/186 +f 617/936/189 598/938/190 599/934/187 +f 603/937/167 602/943/175 599/934/187 +f 600/942/192 599/934/187 602/943/175 +f 600/942/192 601/912/168 608/922/176 +f 593/931/184 608/922/176 607/924/177 +f 594/929/182 607/924/177 606/944/172 +f 596/926/179 595/928/181 606/944/172 +f 621/930/183 620/956/180 628/946/174 +f 619/948/191 618/1025/165 626/949/194 +f 617/951/189 616/959/188 624/952/169 +f 615/933/186 622/932/185 630/954/197 +f 622/932/185 621/930/183 629/947/193 +f 620/956/180 619/948/191 627/950/195 +f 618/957/165 617/951/189 625/953/196 +f 616/959/188 615/933/186 623/955/198 +f 749/960/199 761/1026/199 760/961/200 +f 746/963/201 758/1027/201 757/964/202 +f 743/966/203 755/1028/203 754/967/204 +f 750/969/205 762/1029/205 761/970/199 +f 740/971/206 752/1030/206 751/972/207 +f 747/974/208 759/1031/208 758/975/201 +f 743/966/203 744/986/209 756/976/209 +f 750/969/205 739/973/207 751/978/207 +f 741/980/210 753/1032/210 752/981/206 +f 747/974/208 748/962/200 760/982/200 +f 745/984/202 757/1033/202 756/985/209 +f 742/968/204 754/1034/204 753/987/210 +o Barrel +v 0.000000 2.687500 -5.625000 +v -0.156250 2.729367 -5.625000 +v -0.270633 2.843750 -5.625000 +v -0.312500 3.000000 -5.625000 +v -0.270633 3.156250 -5.625000 +v -0.156250 3.270633 -5.625000 +v 0.000000 3.312500 -5.625000 +v 0.156250 3.270633 -5.625000 +v 0.270633 3.156250 -5.625000 +v 0.312500 3.000000 -5.625000 +v 0.270633 2.843750 -5.625000 +v 0.156250 2.729367 -5.625000 +v 0.000000 2.687500 -8.375000 +v -0.156250 2.729367 -8.375000 +v -0.270633 2.843750 -8.375000 +v -0.312500 3.000000 -8.375000 +v -0.270633 3.156250 -8.375000 +v -0.156250 3.270633 -8.375000 +v 0.000000 3.312500 -8.375000 +v 0.156250 3.270633 -8.375000 +v 0.270633 3.156250 -8.375000 +v 0.312500 3.000000 -8.375000 +v 0.270633 2.843750 -8.375000 +v 0.156250 2.729367 -8.375000 +v 0.000000 3.250000 -8.375000 +v -0.125000 3.216506 -8.375000 +v -0.216506 3.125000 -8.375000 +v -0.250000 3.000000 -8.375000 +v -0.216506 2.875000 -8.375000 +v -0.125000 2.783494 -8.375000 +v 0.000000 2.750000 -8.375000 +v 0.125000 2.783494 -8.375000 +v 0.216506 2.875000 -8.375000 +v 0.250000 3.000000 -8.375000 +v 0.216506 3.125000 -8.375000 +v 0.125000 3.216506 -8.375000 +v 0.000000 3.250000 -6.375000 +v -0.125000 3.216506 -6.375000 +v -0.216506 3.125000 -6.375000 +v -0.250000 3.000000 -6.375000 +v -0.216506 2.875000 -6.375000 +v -0.125000 2.783494 -6.375000 +v 0.000000 2.750000 -6.375000 +v 0.125000 2.783494 -6.375000 +v 0.216506 2.875000 -6.375000 +v 0.250000 3.000000 -6.375000 +v 0.216506 3.125000 -6.375000 +v 0.125000 3.216506 -6.375000 +v 0.000000 2.687500 -8.375000 +v -0.156250 2.729367 -8.375000 +v -0.270633 2.843750 -8.375000 +v -0.312500 3.000000 -8.375000 +v -0.270633 3.156250 -8.375000 +v -0.156250 3.270633 -8.375000 +v 0.000000 3.312500 -8.375000 +v 0.156250 3.270633 -8.375000 +v 0.270633 3.156250 -8.375000 +v 0.312500 3.000000 -8.375000 +v 0.270633 2.843750 -8.375000 +v 0.156250 2.729367 -8.375000 +v 0.000000 3.250000 -8.375000 +v -0.125000 3.216506 -8.375000 +v -0.216506 3.125000 -8.375000 +v -0.250000 3.000000 -8.375000 +v -0.216506 2.875000 -8.375000 +v -0.125000 2.783494 -8.375000 +v 0.000000 2.750000 -8.375000 +v 0.125000 2.783494 -8.375000 +v 0.216506 2.875000 -8.375000 +v 0.250000 3.000000 -8.375000 +v 0.216506 3.125000 -8.375000 +v 0.125000 3.216506 -8.375000 +v 0.000000 3.250000 -6.375000 +v -0.125000 3.216506 -6.375000 +v -0.216506 3.125000 -6.375000 +v -0.250000 3.000000 -6.375000 +v -0.216506 2.875000 -6.375000 +v -0.125000 2.783494 -6.375000 +v 0.000000 2.750000 -6.375000 +v 0.125000 2.783494 -6.375000 +v 0.216506 2.875000 -6.375000 +v 0.250000 3.000000 -6.375000 +v 0.216506 3.125000 -6.375000 +v 0.125000 3.216506 -6.375000 +vt 0.777388 0.929892 +vt 0.791667 0.900215 +vt 0.805945 0.929892 +vt 0.637500 0.790000 +vt 0.641667 0.805000 +vt 0.637500 0.805000 +vt 0.641667 0.820000 +vt 0.637500 0.820000 +vt 0.641667 0.835000 +vt 0.637500 0.835000 +vt 0.641667 0.850000 +vt 0.637500 0.850000 +vt 0.637500 0.865000 +vt 0.641667 0.865000 +vt 0.637500 0.880000 +vt 0.641667 0.880000 +vt 0.637500 0.895000 +vt 0.641667 0.895000 +vt 0.637500 0.910000 +vt 0.641667 0.925000 +vt 0.637500 0.925000 +vt 0.641667 0.940000 +vt 0.637500 0.940000 +vt 0.637500 0.760000 +vt 0.641667 0.775000 +vt 0.637500 0.775000 +vt 0.641667 0.790000 +vt 0.799910 0.937134 +vt 0.791667 0.939785 +vt 0.783423 0.937134 +vt 0.775179 0.920000 +vt 0.777388 0.910108 +vt 0.783423 0.902866 +vt 0.799910 0.902866 +vt 0.805945 0.910108 +vt 0.808154 0.920000 +vt 0.641667 0.910000 +vt 0.641667 0.760000 +vt 0.454167 0.850000 +vt 0.637500 0.865000 +vt 0.454167 0.865000 +vt 0.454167 0.895000 +vt 0.637500 0.910000 +vt 0.454167 0.910000 +vt 0.454167 0.790000 +vt 0.637500 0.805000 +vt 0.454167 0.805000 +vt 0.454167 0.835000 +vt 0.637500 0.850000 +vt 0.454167 0.880000 +vt 0.637500 0.895000 +vt 0.454167 0.775000 +vt 0.637500 0.790000 +vt 0.454167 0.925000 +vt 0.637500 0.940000 +vt 0.454167 0.940000 +vt 0.454167 0.820000 +vt 0.637500 0.835000 +vt 0.637500 0.880000 +vt 0.454167 0.760000 +vt 0.637500 0.775000 +vt 0.637500 0.925000 +vt 0.637500 0.820000 +vt 0.641667 0.895000 +vt 0.775000 0.910000 +vt 0.641667 0.910000 +vt 0.641667 0.820000 +vt 0.775000 0.835000 +vt 0.641667 0.835000 +vt 0.641667 0.850000 +vt 0.775000 0.865000 +vt 0.641667 0.865000 +vt 0.641667 0.775000 +vt 0.775000 0.790000 +vt 0.641667 0.790000 +vt 0.775000 0.925000 +vt 0.641667 0.925000 +vt 0.775000 0.850000 +vt 0.775000 0.880000 +vt 0.641667 0.880000 +vt 0.775000 0.805000 +vt 0.641667 0.805000 +vt 0.775000 0.940000 +vt 0.641667 0.940000 +vt 0.775000 0.895000 +vt 0.775000 0.820000 +vt 0.641667 0.760000 +vt 0.775000 0.775000 +vt 0.637500 0.760000 +vt 0.775000 0.760000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 1.0000 0.0000 +vn -0.5000 0.8660 0.0000 +vn -1.0000 0.0000 0.0000 +vn -0.8660 -0.5000 0.0000 +vn 0.8660 -0.5000 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.5000 0.8660 0.0000 +vn -0.8660 0.5000 0.0000 +vn 0.5000 -0.8660 0.0000 +vn -0.5000 -0.8660 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.8660 0.5000 0.0000 +s off +f 845/1035/211 841/1036/211 837/1037/211 +f 821/1038/211 832/1039/211 820/1040/211 +f 820/1040/211 833/1041/211 819/1042/211 +f 819/1042/211 834/1043/211 818/1044/211 +f 818/1044/211 823/1045/211 817/1046/211 +f 823/1045/211 816/1047/211 817/1046/211 +f 824/1048/211 815/1049/211 816/1047/211 +f 825/1050/211 814/1051/211 815/1049/211 +f 826/1052/211 813/1053/211 814/1051/211 +f 813/1053/211 828/1054/211 812/1055/211 +f 812/1055/211 829/1056/211 811/1057/211 +f 811/1058/211 830/1059/211 822/1060/211 +f 822/1060/211 831/1061/211 821/1038/211 +f 837/1037/211 836/1062/211 845/1035/211 +f 836/1062/211 835/1063/211 845/1035/211 +f 835/1063/211 846/1064/211 845/1035/211 +f 845/1035/211 844/1065/211 843/1066/211 +f 843/1066/211 842/1067/211 841/1036/211 +f 841/1036/211 840/1068/211 837/1037/211 +f 840/1068/211 839/1069/211 837/1037/211 +f 839/1069/211 838/1070/211 837/1037/211 +f 845/1035/211 843/1066/211 841/1036/211 +f 821/1038/211 831/1061/211 832/1039/211 +f 820/1040/211 832/1039/211 833/1041/211 +f 819/1042/211 833/1041/211 834/1043/211 +f 818/1044/211 834/1043/211 823/1045/211 +f 823/1045/211 824/1048/211 816/1047/211 +f 824/1048/211 825/1050/211 815/1049/211 +f 825/1050/211 826/1052/211 814/1051/211 +f 826/1052/211 827/1071/211 813/1053/211 +f 813/1053/211 827/1071/211 828/1054/211 +f 812/1055/211 828/1054/211 829/1056/211 +f 811/1058/211 829/1072/211 830/1059/211 +f 822/1060/211 830/1059/211 831/1061/211 +s 1 +f 769/1073/212 780/1074/213 768/1075/213 +f 766/1076/214 777/1077/215 765/1078/215 +f 773/1079/216 784/1080/217 772/1081/217 +f 770/1082/218 781/1083/212 769/1073/212 +f 767/1084/219 778/1085/214 766/1076/214 +f 774/1086/220 785/1087/216 773/1079/216 +f 764/1088/221 775/1089/222 763/1090/222 +f 771/1091/223 782/1092/218 770/1082/218 +f 768/1075/213 779/1093/219 767/1084/219 +f 763/1094/222 786/1095/220 774/1086/220 +f 765/1078/215 776/1096/221 764/1088/221 +f 772/1081/217 783/1097/223 771/1091/223 +f 790/1098/217 803/1099/223 791/1100/223 +f 797/1101/215 810/1102/221 798/1103/221 +f 787/1104/222 800/1105/220 788/1106/220 +f 794/1107/213 807/1108/219 795/1109/219 +f 791/1100/223 804/1110/218 792/1111/218 +f 798/1103/221 799/1112/222 787/1104/222 +f 788/1106/220 801/1113/216 789/1114/216 +f 795/1109/219 808/1115/214 796/1116/214 +f 792/1111/218 805/1117/212 793/1118/212 +f 789/1114/216 802/1119/217 790/1098/217 +f 796/1116/214 809/1120/215 797/1101/215 +f 793/1121/212 806/1122/213 794/1107/213 +f 769/1073/212 781/1083/212 780/1074/213 +f 766/1076/214 778/1085/214 777/1077/215 +f 773/1079/216 785/1087/216 784/1080/217 +f 770/1082/218 782/1092/218 781/1083/212 +f 767/1084/219 779/1093/219 778/1085/214 +f 774/1086/220 786/1095/220 785/1087/216 +f 764/1088/221 776/1096/221 775/1089/222 +f 771/1091/223 783/1097/223 782/1092/218 +f 768/1075/213 780/1074/213 779/1093/219 +f 763/1094/222 775/1123/222 786/1095/220 +f 765/1078/215 777/1077/215 776/1096/221 +f 772/1081/217 784/1080/217 783/1097/223 +f 790/1098/217 802/1119/217 803/1099/223 +f 797/1101/215 809/1120/215 810/1102/221 +f 787/1104/222 799/1112/222 800/1105/220 +f 794/1107/213 806/1122/213 807/1108/219 +f 791/1100/223 803/1099/223 804/1110/218 +f 798/1103/221 810/1102/221 799/1112/222 +f 788/1106/220 800/1105/220 801/1113/216 +f 795/1109/219 807/1108/219 808/1115/214 +f 792/1111/218 804/1110/218 805/1117/212 +f 789/1114/216 801/1113/216 802/1119/217 +f 796/1116/214 808/1115/214 809/1120/215 +f 793/1121/212 805/1124/212 806/1122/213 +o Base +v 2.000000 0.000000 1.000000 +v 2.000000 0.000000 -1.000000 +v -2.000000 0.000000 1.000000 +v -2.000000 0.000000 -1.000000 +v 1.000000 0.000000 -2.000000 +v -1.000000 0.000000 -2.000000 +v 1.000000 0.000000 2.000000 +v -1.000000 0.000000 2.000000 +v -1.000000 1.500000 2.000000 +v 1.000000 1.500000 2.000000 +v 2.000000 1.500000 1.000000 +v 2.000000 1.500000 -1.000000 +v 1.000000 1.500000 -2.000000 +v -1.000000 1.500000 -2.000000 +v -2.000000 1.500000 -1.000000 +v -2.000000 1.500000 1.000000 +v 0.000000 1.500000 -1.750000 +v -0.669696 1.500000 -1.616789 +v -1.237437 1.500000 -1.237437 +v -1.616789 1.500000 -0.669696 +v -1.750000 1.500000 0.000000 +v -1.616789 1.500000 0.669696 +v -1.237437 1.500000 1.237437 +v -0.669696 1.500000 1.616789 +v -0.000000 1.500000 1.750000 +v 0.669696 1.500000 1.616789 +v 1.237436 1.500000 1.237437 +v 1.616789 1.500000 0.669696 +v 1.750000 1.500000 0.000000 +v 1.616789 1.500000 -0.669696 +v 1.237436 1.500000 -1.237437 +v 0.669695 1.500000 -1.616790 +v 0.000000 2.000000 -1.750000 +v -0.669696 2.000000 -1.616789 +v -1.237437 2.000000 -1.237437 +v -1.616789 2.000000 -0.669696 +v -1.750000 2.000000 0.000000 +v -1.616789 2.000000 0.669696 +v -1.237437 2.000000 1.237437 +v -0.669696 2.000000 1.616789 +v -0.000000 2.000000 1.750000 +v 0.669696 2.000000 1.616789 +v 1.237436 2.000000 1.237437 +v 1.616789 2.000000 0.669696 +v 1.750000 2.000000 0.000000 +v 1.616789 2.000000 -0.669696 +v 1.237436 2.000000 -1.237437 +v 0.669695 2.000000 -1.616790 +v -0.969670 1.500000 -1.323223 +v -1.323223 1.500000 -0.969670 +v -1.323224 1.500000 -1.676776 +v -1.676777 1.500000 -1.323223 +v -0.969670 1.750000 -1.323223 +v -1.323223 1.750000 -0.969670 +v -1.146447 1.750000 -1.500000 +v -1.500000 1.750000 -1.146446 +v -1.500000 1.875000 -1.853553 +v -1.323224 1.875000 -1.676776 +v -1.676777 1.875000 -1.323223 +v -1.853553 1.875000 -1.500000 +v -1.676777 0.000000 -2.030329 +v -2.030330 0.000000 -1.676776 +v -1.323224 0.000000 -1.676776 +v -1.676777 0.000000 -1.323223 +v 1.676777 0.000000 1.323223 +v 1.323224 0.000000 1.676776 +v 2.030331 0.000000 1.676776 +v 1.676777 0.000000 2.030329 +v 1.853553 1.875000 1.499999 +v 1.676777 1.875000 1.323223 +v 1.323224 1.875000 1.676776 +v 1.500000 1.875000 1.853553 +v 1.500000 1.750000 1.146446 +v 1.146447 1.750000 1.499999 +v 1.323223 1.750000 0.969669 +v 0.969670 1.750000 1.323223 +v 1.676777 1.500000 1.323223 +v 1.323224 1.500000 1.676776 +v 1.323223 1.500000 0.969669 +v 0.969670 1.500000 1.323223 +v -1.323223 1.500000 0.969670 +v -0.969669 1.500000 1.323223 +v -1.676776 1.500000 1.323224 +v -1.323223 1.500000 1.676777 +v -1.323223 1.750000 0.969670 +v -0.969669 1.750000 1.323223 +v -1.499999 1.750000 1.146447 +v -1.146446 1.750000 1.500000 +v -1.853553 1.875000 1.500000 +v -1.676776 1.875000 1.323224 +v -1.323223 1.875000 1.676777 +v -1.499999 1.875000 1.853553 +v -2.030329 0.000000 1.676777 +v -1.676776 0.000000 2.030331 +v -1.676776 0.000000 1.323224 +v -1.323223 0.000000 1.676777 +v 1.323223 0.000000 -1.676777 +v 1.676776 0.000000 -1.323224 +v 1.676776 0.000000 -2.030330 +v 2.030329 0.000000 -1.676777 +v 1.500000 1.875000 -1.853553 +v 1.323223 1.875000 -1.676777 +v 1.676776 1.875000 -1.323224 +v 1.853553 1.875000 -1.500000 +v 1.146446 1.750000 -1.500000 +v 1.500000 1.750000 -1.146447 +v 0.969670 1.750000 -1.323223 +v 1.323223 1.750000 -0.969670 +v 1.323223 1.500000 -1.676777 +v 1.676776 1.500000 -1.323224 +v 0.969670 1.500000 -1.323223 +v 1.323223 1.500000 -0.969670 +v 0.000000 1.875000 -1.500000 +v -0.574025 1.875000 -1.385819 +v -1.060660 1.875000 -1.060660 +v -1.385819 1.875000 -0.574025 +v -1.500000 1.875000 0.000000 +v -1.385819 1.875000 0.574025 +v -1.060660 1.875000 1.060660 +v -0.574025 1.875000 1.385819 +v 0.000000 1.875000 1.500000 +v 0.574025 1.875000 1.385819 +v 1.060660 1.875000 1.060660 +v 1.385819 1.875000 0.574025 +v 1.500000 1.875000 0.000000 +v 1.385819 1.875000 -0.574025 +v 1.060660 1.875000 -1.060660 +v 0.574024 1.875000 -1.385820 +v -0.875000 0.125000 -2.000000 +v 0.875000 0.125000 -2.000000 +v -0.875000 0.875000 -2.000000 +v 0.875000 0.875000 -2.000000 +v -0.875000 0.875000 -1.750000 +v -0.875000 0.125000 -1.750000 +v 0.875000 0.125000 -1.750000 +v 0.875000 0.875000 -1.750000 +v 0.875000 0.125000 2.000000 +v -0.875000 0.125000 2.000000 +v 0.875000 0.875000 2.000000 +v -0.875000 0.875000 2.000000 +v 0.875000 0.875000 1.750000 +v 0.875000 0.125000 1.750000 +v -0.875000 0.125000 1.750000 +v -0.875000 0.875000 1.750000 +v -2.000000 0.125000 0.875000 +v -2.000000 0.125000 -0.875000 +v -2.000000 0.875000 0.875000 +v -2.000000 0.875000 -0.875000 +v -1.750000 0.875000 0.875000 +v -1.750000 0.125000 0.875000 +v -1.750000 0.125000 -0.875000 +v -1.750000 0.875000 -0.875000 +v 2.000000 0.125000 -0.875000 +v 2.000000 0.125000 0.875000 +v 2.000000 0.875000 -0.875000 +v 2.000000 0.875000 0.875000 +v 1.750000 0.875000 -0.875000 +v 1.750000 0.125000 -0.875000 +v 1.750000 0.125000 0.875000 +v 1.750000 0.875000 0.875000 +v -0.875000 1.125000 -2.000000 +v -0.875000 1.375000 -2.000000 +v -0.625000 1.125000 -2.000000 +v -0.625000 1.375000 -2.000000 +v -0.625000 1.125000 -2.125000 +v -0.875000 1.125000 -2.125000 +v -0.875000 1.375000 -2.125000 +v -0.625000 1.375000 -2.125000 +v -0.624999 1.125000 2.000000 +v -0.624999 1.375000 2.000000 +v -0.875000 1.125000 2.000000 +v -0.875000 1.375000 2.000000 +v -0.874999 1.125000 2.125000 +v -0.624999 1.125000 2.125000 +v -0.624999 1.375000 2.125000 +v -0.874999 1.375000 2.125000 +v 2.000000 1.125000 0.625000 +v 2.000000 1.375000 0.625000 +v 2.000000 1.125000 0.875000 +v 2.000000 1.375000 0.875000 +v 2.125000 1.125000 0.875000 +v 2.125000 1.125000 0.625000 +v 2.125000 1.375000 0.625000 +v 2.125000 1.375000 0.875000 +v 0.625000 1.375000 2.125000 +v 0.875000 1.375000 2.125000 +v 0.875000 1.125000 2.125000 +v 0.625000 1.125000 2.125000 +v 0.625000 1.375000 2.000000 +v 0.625000 1.125000 2.000000 +v 0.875001 1.375000 2.000000 +v 0.875001 1.125000 2.000000 +v 0.875000 1.375000 -2.125000 +v 0.625000 1.375000 -2.125000 +v 0.625000 1.125000 -2.125000 +v 0.875000 1.125000 -2.125000 +v 0.875000 1.375000 -2.000000 +v 0.875000 1.125000 -2.000000 +v 0.625000 1.375000 -2.000000 +v 0.625000 1.125000 -2.000000 +v -2.000000 1.125000 0.875000 +v -2.000000 1.375000 0.875000 +v -2.000000 1.125000 0.625000 +v -2.000000 1.375000 0.625000 +v -2.125000 1.125000 0.625000 +v -2.125000 1.125000 0.875000 +v -2.125000 1.375000 0.875000 +v -2.125000 1.375000 0.625000 +v -2.125000 1.375000 -0.875000 +v -2.125000 1.375000 -0.625000 +v -2.125000 1.125000 -0.625000 +v -2.125000 1.125000 -0.875000 +v -2.000000 1.375000 -0.875000 +v -2.000000 1.125000 -0.875000 +v -2.000000 1.375000 -0.625000 +v -2.000000 1.125000 -0.625000 +v 2.125000 1.375000 -0.625000 +v 2.125000 1.375000 -0.875000 +v 2.125000 1.125000 -0.875000 +v 2.125000 1.125000 -0.625000 +v 2.000000 1.375000 -0.625000 +v 2.000000 1.125000 -0.625000 +v 2.000000 1.375000 -0.875000 +v 2.000000 1.125000 -0.875000 +v 0.000000 2.000000 -1.750000 +v -0.669696 2.000000 -1.616789 +v -1.237437 2.000000 -1.237437 +v -1.616789 2.000000 -0.669696 +v -1.750000 2.000000 0.000000 +v -1.616789 2.000000 0.669696 +v -1.237437 2.000000 1.237437 +v -0.669696 2.000000 1.616789 +v -0.000000 2.000000 1.750000 +v 0.669696 2.000000 1.616789 +v 1.237436 2.000000 1.237437 +v 1.616789 2.000000 0.669696 +v 1.750000 2.000000 0.000000 +v 1.616789 2.000000 -0.669696 +v 1.237436 2.000000 -1.237437 +v 0.669695 2.000000 -1.616790 +v 0.000000 2.000000 -1.625000 +v -0.621861 2.000000 -1.501304 +v -1.149048 2.000000 -1.149048 +v -1.501304 2.000000 -0.621861 +v -1.625000 2.000000 0.000000 +v -1.501304 2.000000 0.621861 +v -1.149048 2.000000 1.149048 +v -0.621861 2.000000 1.501304 +v -0.000000 2.000000 1.625000 +v 0.621860 2.000000 1.501305 +v 1.149048 2.000000 1.149049 +v 1.501304 2.000000 0.621861 +v 1.625000 2.000000 0.000000 +v 1.501304 2.000000 -0.621861 +v 1.149048 2.000000 -1.149049 +v 0.621860 2.000000 -1.501305 +v 0.000000 1.875000 -1.500000 +v -0.574025 1.875000 -1.385819 +v -1.060660 1.875000 -1.060660 +v -1.385819 1.875000 -0.574025 +v -1.500000 1.875000 0.000000 +v -1.385819 1.875000 0.574025 +v -1.060660 1.875000 1.060660 +v -0.574025 1.875000 1.385819 +v 0.000000 1.875000 1.500000 +v 0.574025 1.875000 1.385819 +v 1.060660 1.875000 1.060660 +v 1.385819 1.875000 0.574025 +v 1.500000 1.875000 0.000000 +v 1.385819 1.875000 -0.574025 +v 1.060660 1.875000 -1.060660 +v 0.574024 1.875000 -1.385820 +v 0.000000 2.000000 -1.625000 +v -0.621861 2.000000 -1.501304 +v -1.149048 2.000000 -1.149048 +v -1.501304 2.000000 -0.621861 +v -1.625000 2.000000 0.000000 +v -1.501304 2.000000 0.621861 +v -1.149048 2.000000 1.149048 +v -0.621861 2.000000 1.501304 +v -0.000000 2.000000 1.625000 +v 0.621860 2.000000 1.501305 +v 1.149048 2.000000 1.149049 +v 1.501304 2.000000 0.621861 +v 1.625000 2.000000 0.000000 +v 1.501304 2.000000 -0.621861 +v 1.149048 2.000000 -1.149049 +v 0.621860 2.000000 -1.501305 +vt 0.266667 0.080000 +vt 0.200000 0.320000 +vt 0.000000 0.240000 +vt 0.200000 0.440000 +vt 0.266667 0.680000 +vt 0.066667 0.760000 +vt 0.466667 0.320000 +vt 0.400000 0.440000 +vt 0.400000 0.320000 +vt 0.066667 0.320000 +vt -0.000000 0.440000 +vt -0.000000 0.320000 +vt 0.383333 0.320000 +vt 0.508333 0.300000 +vt 0.508333 0.320000 +vt 0.525000 0.300000 +vt 0.508333 0.240000 +vt 0.525000 0.240000 +vt 0.666667 0.320000 +vt 0.600000 0.440000 +vt 0.600000 0.320000 +vt 0.266667 0.320000 +vt 0.366667 0.240000 +vt 0.383333 0.300000 +vt 0.366667 0.300000 +vt 0.383333 0.240000 +vt 0.316667 0.190000 +vt 0.300000 0.190000 +vt 0.300000 0.160000 +vt 0.400000 0.160000 +vt 0.383333 0.190000 +vt 0.366667 0.040000 +vt 0.283333 0.180000 +vt 0.333333 0.040000 +vt 0.366667 0.190000 +vt 0.333333 0.190000 +vt 0.366667 0.210000 +vt 0.333333 0.230000 +vt 0.333333 0.210000 +vt 0.366667 0.250000 +vt 0.333333 0.250000 +vt 0.433333 0.160000 +vt 0.433333 0.180000 +vt 0.416667 0.180000 +vt 0.333333 -0.000000 +vt 0.366667 -0.000000 +vt 0.366667 -0.000000 +vt 0.333333 0.040000 +vt 0.333333 -0.000000 +vt 0.333333 0.210000 +vt 0.366667 0.190000 +vt 0.366667 0.210000 +vt 0.433333 0.160000 +vt 0.433333 0.180000 +vt 0.416667 0.180000 +vt 0.333333 0.230000 +vt 0.366667 0.250000 +vt 0.333333 0.250000 +vt 0.333333 0.190000 +vt 0.300000 0.160000 +vt 0.300000 0.190000 +vt 0.283333 0.180000 +vt 0.400000 0.160000 +vt 0.383333 0.190000 +vt 0.366667 0.040000 +vt 0.316667 0.190000 +vt 0.316667 0.190000 +vt 0.300000 0.190000 +vt 0.300000 0.160000 +vt 0.400000 0.160000 +vt 0.383333 0.190000 +vt 0.366667 0.040000 +vt 0.283333 0.180000 +vt 0.333333 0.040000 +vt 0.366667 0.190000 +vt 0.333333 0.190000 +vt 0.333333 0.210000 +vt 0.366667 0.230000 +vt 0.333333 0.230000 +vt 0.366667 0.250000 +vt 0.333333 0.250000 +vt 0.433333 0.160000 +vt 0.433333 0.180000 +vt 0.416667 0.180000 +vt 0.366667 0.210000 +vt 0.366667 -0.000000 +vt 0.333333 -0.000000 +vt 0.366667 -0.000000 +vt 0.333333 0.040000 +vt 0.333333 -0.000000 +vt 0.333333 0.210000 +vt 0.366667 0.190000 +vt 0.366667 0.210000 +vt 0.433333 0.160000 +vt 0.433333 0.180000 +vt 0.416667 0.180000 +vt 0.333333 0.230000 +vt 0.366667 0.250000 +vt 0.333333 0.250000 +vt 0.333333 0.190000 +vt 0.300000 0.160000 +vt 0.300000 0.190000 +vt 0.283333 0.180000 +vt 0.400000 0.160000 +vt 0.383333 0.190000 +vt 0.366667 0.040000 +vt 0.316667 0.190000 +vt 0.625000 0.249809 +vt 0.525159 0.130000 +vt 0.625000 0.010191 +vt 0.508333 0.220000 +vt 0.383333 0.220000 +vt 0.508333 0.220000 +vt 0.383333 0.240000 +vt 0.383333 0.220000 +vt 0.366667 0.240000 +vt 0.383333 0.300000 +vt 0.366667 0.300000 +vt 0.525000 0.300000 +vt 0.508333 0.240000 +vt 0.525000 0.240000 +vt 0.508333 0.300000 +vt 0.383333 0.320000 +vt 0.508333 0.320000 +vt 0.383333 0.320000 +vt 0.508333 0.300000 +vt 0.508333 0.320000 +vt 0.525000 0.300000 +vt 0.508333 0.240000 +vt 0.525000 0.240000 +vt 0.366667 0.240000 +vt 0.383333 0.300000 +vt 0.366667 0.300000 +vt 0.383333 0.240000 +vt 0.508333 0.220000 +vt 0.383333 0.220000 +vt 0.508333 0.220000 +vt 0.383333 0.240000 +vt 0.383333 0.220000 +vt 0.366667 0.240000 +vt 0.383333 0.300000 +vt 0.366667 0.300000 +vt 0.525000 0.300000 +vt 0.508333 0.240000 +vt 0.525000 0.240000 +vt 0.508333 0.300000 +vt 0.383333 0.320000 +vt 0.508333 0.320000 +vt 0.475000 0.330000 +vt 0.475000 0.390000 +vt 0.466667 0.440000 +vt 0.591667 0.390000 +vt 0.591667 0.330000 +vt 0.800000 0.320000 +vt 0.675000 0.330000 +vt 0.675000 0.390000 +vt 0.666667 0.440000 +vt 0.800000 0.440000 +vt 0.791667 0.390000 +vt 0.791667 0.330000 +vt 0.075000 0.330000 +vt 0.191667 0.390000 +vt 0.191667 0.330000 +vt 0.066667 0.440000 +vt 0.075000 0.390000 +vt 0.275000 0.330000 +vt 0.391667 0.390000 +vt 0.391667 0.330000 +vt 0.266667 0.440000 +vt 0.275000 0.390000 +vt 0.550000 0.280000 +vt 0.533333 0.260000 +vt 0.550000 0.260000 +vt 0.550000 0.290000 +vt 0.533333 0.280000 +vt 0.550000 0.250000 +vt 0.533333 0.250000 +vt 0.525000 0.260000 +vt 0.525000 0.280000 +vt 0.558333 0.280000 +vt 0.558333 0.260000 +vt 0.550000 0.280000 +vt 0.533333 0.260000 +vt 0.550000 0.260000 +vt 0.550000 0.290000 +vt 0.533333 0.280000 +vt 0.550000 0.250000 +vt 0.533333 0.250000 +vt 0.525000 0.260000 +vt 0.525000 0.280000 +vt 0.558333 0.280000 +vt 0.558333 0.260000 +vt 0.558333 0.280000 +vt 0.550000 0.260000 +vt 0.558333 0.260000 +vt 0.550000 0.280000 +vt 0.533333 0.260000 +vt 0.550000 0.260000 +vt 0.533333 0.290000 +vt 0.550000 0.290000 +vt 0.533333 0.250000 +vt 0.525000 0.260000 +vt 0.533333 0.280000 +vt 0.525000 0.280000 +vt 0.558333 0.280000 +vt 0.558333 0.260000 +vt 0.525000 0.260000 +vt 0.533333 0.280000 +vt 0.525000 0.280000 +vt 0.533333 0.250000 +vt 0.533333 0.260000 +vt 0.533333 0.290000 +vt 0.550000 0.280000 +vt 0.550000 0.290000 +vt 0.558333 0.280000 +vt 0.550000 0.260000 +vt 0.558333 0.260000 +vt 0.525000 0.260000 +vt 0.533333 0.280000 +vt 0.525000 0.280000 +vt 0.550000 0.250000 +vt 0.533333 0.260000 +vt 0.533333 0.250000 +vt 0.533333 0.290000 +vt 0.550000 0.280000 +vt 0.550000 0.290000 +vt 0.550000 0.280000 +vt 0.533333 0.260000 +vt 0.550000 0.260000 +vt 0.533333 0.290000 +vt 0.550000 0.290000 +vt 0.533333 0.250000 +vt 0.525000 0.260000 +vt 0.533333 0.280000 +vt 0.525000 0.280000 +vt 0.558333 0.280000 +vt 0.558333 0.260000 +vt 0.558333 0.280000 +vt 0.550000 0.260000 +vt 0.558333 0.260000 +vt 0.525000 0.260000 +vt 0.533333 0.280000 +vt 0.525000 0.280000 +vt 0.533333 0.250000 +vt 0.533333 0.260000 +vt 0.533333 0.290000 +vt 0.550000 0.280000 +vt 0.550000 0.290000 +vt 0.558333 0.280000 +vt 0.550000 0.260000 +vt 0.558333 0.260000 +vt 0.525000 0.260000 +vt 0.533333 0.280000 +vt 0.525000 0.280000 +vt 0.533333 0.250000 +vt 0.533333 0.260000 +vt 0.533333 0.290000 +vt 0.550000 0.280000 +vt 0.550000 0.290000 +vt 0.541667 0.480000 +vt 0.495833 0.490000 +vt 0.495833 0.480000 +vt 0.587500 0.490000 +vt 0.541667 0.490000 +vt 0.633333 0.480000 +vt 0.587500 0.480000 +vt 0.679167 0.480000 +vt 0.633333 0.490000 +vt 0.725000 0.490000 +vt 0.679167 0.490000 +vt 0.725000 0.480000 +vt 0.770833 0.490000 +vt 0.770833 0.480000 +vt 0.816667 0.490000 +vt 0.816667 0.480000 +vt 0.862500 0.490000 +vt 0.862500 0.480000 +vt 0.908333 0.490000 +vt 0.908333 0.480000 +vt 0.954167 0.490000 +vt 0.954167 0.480000 +vt 1.000000 0.490000 +vt 0.266667 0.480000 +vt 0.312500 0.490000 +vt 0.266667 0.490000 +vt 0.358333 0.480000 +vt 0.312500 0.480000 +vt 0.404167 0.480000 +vt 0.358333 0.490000 +vt 0.450000 0.490000 +vt 0.404167 0.490000 +vt 0.450000 0.480000 +vt 0.000000 0.080000 +vt 0.066667 0.000000 +vt 0.200000 -0.000000 +vt 0.266667 0.240000 +vt 0.000000 0.680000 +vt -0.000000 0.520000 +vt 0.266667 0.520000 +vt 0.200000 0.760000 +vt 0.300000 0.040000 +vt 0.400000 0.040000 +vt 0.400000 0.190000 +vt 0.266667 0.180000 +vt 0.266667 0.160000 +vt 0.366667 0.230000 +vt 0.400000 0.190000 +vt 0.366667 0.230000 +vt 0.266667 0.180000 +vt 0.266667 0.160000 +vt 0.400000 0.040000 +vt 0.300000 0.040000 +vt 0.300000 0.040000 +vt 0.400000 0.040000 +vt 0.400000 0.190000 +vt 0.266667 0.180000 +vt 0.266667 0.160000 +vt 0.400000 0.190000 +vt 0.366667 0.230000 +vt 0.266667 0.180000 +vt 0.266667 0.160000 +vt 0.400000 0.040000 +vt 0.300000 0.040000 +vt 0.586793 0.240689 +vt 0.554402 0.214718 +vt 0.532759 0.175849 +vt 0.532759 0.084151 +vt 0.554402 0.045282 +vt 0.586793 0.019311 +vt 0.663207 0.019311 +vt 0.695598 0.045282 +vt 0.717241 0.084151 +vt 0.724841 0.130000 +vt 0.717241 0.175849 +vt 0.695598 0.214718 +vt 0.663207 0.240689 +vt 0.533333 0.290000 +vt 0.533333 0.290000 +vt 0.550000 0.250000 +vt 0.550000 0.250000 +vt 0.550000 0.250000 +vt 0.550000 0.250000 +vt 0.550000 0.250000 +vt 1.000000 0.480000 +vt 0.587500 0.440000 +vt 0.541667 0.480000 +vt 0.541667 0.440000 +vt 1.000000 0.440000 +vt 0.954167 0.480000 +vt 0.954167 0.440000 +vt 0.679167 0.440000 +vt 0.633333 0.480000 +vt 0.633333 0.440000 +vt 0.587500 0.480000 +vt 0.312500 0.440000 +vt 0.266667 0.480000 +vt 0.266667 0.440000 +vt 0.725000 0.440000 +vt 0.679167 0.480000 +vt 0.358333 0.440000 +vt 0.312500 0.480000 +vt 0.770833 0.440000 +vt 0.725000 0.480000 +vt 0.404167 0.440000 +vt 0.358333 0.480000 +vt 0.816667 0.440000 +vt 0.770833 0.480000 +vt 0.450000 0.440000 +vt 0.404167 0.480000 +vt 0.862500 0.440000 +vt 0.816667 0.480000 +vt 0.495833 0.440000 +vt 0.450000 0.480000 +vt 0.908333 0.440000 +vt 0.862500 0.480000 +vt 0.495833 0.480000 +vt 0.908333 0.480000 +vt 0.450000 0.490000 +vt 0.495833 0.500000 +vt 0.450000 0.500000 +vt 0.404167 0.500000 +vt 0.358333 0.500000 +vt 0.404167 0.490000 +vt 0.312500 0.500000 +vt 0.358333 0.490000 +vt 0.266667 0.500000 +vt 0.312500 0.490000 +vt 0.954167 0.500000 +vt 1.000000 0.490000 +vt 1.000000 0.500000 +vt 0.908333 0.500000 +vt 0.954167 0.490000 +vt 0.862500 0.500000 +vt 0.908333 0.490000 +vt 0.816667 0.500000 +vt 0.862500 0.490000 +vt 0.770833 0.490000 +vt 0.770833 0.500000 +vt 0.725000 0.490000 +vt 0.725000 0.500000 +vt 0.679167 0.490000 +vt 0.679167 0.500000 +vt 0.633333 0.500000 +vt 0.587500 0.500000 +vt 0.633333 0.490000 +vt 0.541667 0.490000 +vt 0.541667 0.500000 +vt 0.495833 0.490000 +vt 1.000000 0.480000 +vt 0.266667 0.490000 +vt 0.816667 0.490000 +vt 0.587500 0.490000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn -0.7071 0.0000 -0.7071 +vn 0.7071 0.0000 0.7071 +vn 1.0000 0.0000 0.0000 +vn -0.7071 0.0000 0.7071 +vn 0.7071 0.0000 -0.7071 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn -0.7009 0.1322 -0.7009 +vn 0.3162 0.8944 0.3162 +vn -0.3162 0.8944 -0.3162 +vn 0.7009 0.1322 0.7009 +vn -0.7009 0.1322 0.7009 +vn 0.3162 0.8944 -0.3162 +vn -0.3162 0.8944 0.3162 +vn 0.7009 0.1322 -0.7009 +vn 0.0000 0.0000 1.0000 +vn 0.3827 0.0000 -0.9239 +vn -0.3827 0.0000 0.9239 +vn -0.3827 0.0000 -0.9239 +vn 0.3827 0.0000 0.9239 +vn -0.9239 0.0000 -0.3827 +vn 0.9239 0.0000 0.3827 +vn -0.9239 0.0000 0.3827 +vn 0.9239 0.0000 -0.3827 +vn -0.7071 0.7071 0.0000 +vn -0.6533 0.7071 0.2706 +vn -0.6533 0.7071 -0.2706 +vn -0.5000 0.7071 -0.5000 +vn -0.2706 0.7071 -0.6533 +vn 0.0000 0.7071 -0.7071 +vn 0.2706 0.7071 -0.6533 +vn 0.5000 0.7071 -0.5000 +vn 0.6533 0.7071 -0.2706 +vn 0.7071 0.7071 0.0000 +vn 0.6533 0.7071 0.2706 +vn 0.5000 0.7071 0.5000 +vn 0.2706 0.7071 0.6533 +vn 0.0000 0.7071 0.7071 +vn -0.2706 0.7071 0.6533 +vn -0.5000 0.7071 0.5000 +s off +f 852/1125/224 848/1126/224 853/1127/224 +f 858/1128/225 860/1129/225 862/1130/225 +f 850/1131/226 860/1132/226 852/1133/226 +f 847/1134/227 856/1135/227 853/1136/227 +f 978/1137/224 979/1138/224 977/1139/224 +f 977/1140/228 980/1141/228 975/1142/228 +f 854/1143/229 862/1144/229 849/1145/229 +f 851/1146/230 858/1128/230 848/1126/230 +f 976/1147/231 982/1148/231 978/1149/231 +f 979/1138/232 981/1150/232 980/1141/232 +f 903/1151/230 904/1152/230 897/1153/230 +f 898/1154/229 906/1155/229 908/1156/229 +f 897/1153/230 904/1152/230 901/1157/230 +f 907/1158/233 906/1159/233 903/1160/233 +f 905/1161/234 901/1162/234 904/1163/234 +f 901/1162/225 900/1164/225 899/1165/225 +f 896/1166/229 900/1167/229 902/1168/229 +f 904/1163/225 906/1159/225 905/1161/225 +f 908/1156/224 909/1169/224 910/1170/224 +f 911/1171/224 914/1172/224 912/1173/224 +f 917/1174/225 915/1175/225 916/1176/225 +f 925/1177/230 921/1178/230 919/1179/230 +f 920/1180/225 921/1181/225 922/1182/225 +f 916/1176/235 920/1180/235 917/1174/235 +f 914/1172/236 915/1175/236 918/1183/236 +f 924/1184/229 917/1185/229 920/1186/229 +f 923/1187/230 915/1188/230 913/1189/230 +f 918/1190/229 917/1185/229 924/1184/229 +f 935/1191/226 936/1192/226 929/1193/226 +f 930/1194/227 938/1195/227 940/1196/227 +f 929/1193/226 936/1192/226 933/1197/226 +f 939/1198/237 938/1199/237 935/1200/237 +f 936/1201/238 934/1202/238 933/1203/238 +f 933/1203/225 932/1204/225 931/1205/225 +f 928/1206/227 932/1207/227 934/1208/227 +f 936/1201/225 938/1199/225 937/1209/225 +f 942/1210/224 939/1198/224 941/1211/224 +f 943/1212/224 946/1213/224 944/1214/224 +f 949/1215/225 947/1216/225 948/1217/225 +f 957/1218/226 953/1219/226 951/1220/226 +f 952/1221/225 953/1222/225 954/1223/225 +f 948/1217/239 952/1221/239 949/1215/239 +f 946/1213/240 947/1216/240 950/1224/240 +f 956/1225/227 949/1226/227 952/1227/227 +f 955/1228/226 947/1229/226 945/1230/226 +f 950/1231/227 949/1226/227 956/1225/227 +f 959/1232/225 963/1233/225 967/1234/225 +f 975/1235/225 981/1150/225 976/1236/225 +f 986/1237/224 987/1238/224 985/1239/224 +f 985/1240/231 988/1241/231 983/1242/231 +f 984/1243/228 990/1244/228 986/1245/228 +f 987/1238/241 989/1246/241 988/1241/241 +f 983/1247/225 989/1246/225 984/1248/225 +f 994/1249/224 995/1250/224 993/1251/224 +f 993/1252/232 996/1253/232 991/1254/232 +f 992/1255/241 998/1256/241 994/1257/241 +f 995/1250/231 997/1258/231 996/1253/231 +f 991/1259/225 997/1258/225 992/1260/225 +f 1002/1261/224 1003/1262/224 1001/1263/224 +f 1001/1264/241 1004/1265/241 999/1266/241 +f 1000/1267/232 1006/1268/232 1002/1269/232 +f 1003/1262/228 1005/1270/228 1004/1265/228 +f 999/1271/225 1005/1270/225 1000/1272/225 +f 849/1145/231 992/1273/231 850/1131/231 +f 850/1131/231 994/1274/231 861/1275/231 +f 861/1275/231 993/1276/231 862/1144/231 +f 849/1145/231 993/1276/231 991/1277/231 +f 853/1278/241 984/1279/241 854/1143/241 +f 854/1143/241 986/1280/241 855/1281/241 +f 856/1282/241 986/1280/241 985/1283/241 +f 853/1278/241 985/1283/241 983/1284/241 +f 848/1126/228 1000/1285/228 847/1134/228 +f 848/1126/228 1001/1286/228 999/1287/228 +f 857/1288/228 1001/1286/228 858/1128/228 +f 847/1134/228 1002/1289/228 857/1288/228 +f 852/1133/232 976/1290/232 851/1146/232 +f 852/1133/232 977/1291/232 975/1292/232 +f 859/1293/232 977/1291/232 860/1132/232 +f 851/1146/232 978/1294/232 859/1293/232 +f 1013/1295/232 1011/1296/232 1012/1297/232 +f 1008/1298/225 1014/1299/225 1013/1295/225 +f 1007/1300/224 1011/1296/224 1009/1301/224 +f 1009/1302/228 1014/1299/228 1010/1303/228 +f 1008/1304/231 1012/1297/231 1007/1305/231 +f 1021/1306/241 1019/1307/241 1020/1308/241 +f 1016/1309/225 1022/1310/225 1021/1306/225 +f 1015/1311/224 1019/1307/224 1017/1312/224 +f 1017/1313/231 1022/1310/231 1018/1314/231 +f 1016/1315/228 1020/1308/228 1015/1316/228 +f 1037/1317/228 1033/1318/228 1038/1319/228 +f 1029/1320/228 1027/1321/228 1028/1322/228 +f 1026/1323/225 1029/1320/225 1024/1324/225 +f 1025/1325/224 1028/1322/224 1027/1321/224 +f 1025/1326/241 1030/1327/241 1026/1328/241 +f 1024/1329/232 1028/1322/232 1023/1330/232 +f 1036/1331/231 1031/1332/231 1035/1333/231 +f 1036/1334/224 1033/1318/224 1034/1335/224 +f 1035/1336/225 1032/1337/225 1037/1338/225 +f 1032/1337/241 1034/1335/241 1033/1318/241 +f 1045/1339/231 1041/1340/231 1046/1341/231 +f 1044/1342/228 1039/1343/228 1043/1344/228 +f 1046/1345/224 1042/1346/224 1044/1347/224 +f 1043/1348/225 1040/1349/225 1045/1350/225 +f 1040/1349/232 1042/1346/232 1041/1340/232 +f 1053/1351/231 1051/1352/231 1052/1353/231 +f 1050/1354/225 1053/1351/225 1048/1355/225 +f 1049/1356/224 1052/1353/224 1051/1352/224 +f 1049/1357/232 1054/1358/232 1050/1359/232 +f 1048/1360/241 1052/1353/241 1047/1361/241 +f 1061/1362/241 1057/1363/241 1062/1364/241 +f 1060/1365/232 1055/1366/232 1059/1367/232 +f 1060/1368/224 1057/1363/224 1058/1369/224 +f 1059/1370/225 1056/1371/225 1061/1372/225 +f 1056/1371/231 1058/1369/231 1057/1363/231 +f 1069/1373/232 1065/1374/232 1070/1375/232 +f 1068/1376/241 1063/1377/241 1067/1378/241 +f 1068/1379/224 1065/1374/224 1066/1380/224 +f 1067/1381/225 1064/1382/225 1069/1383/225 +f 1064/1382/228 1066/1380/228 1065/1374/228 +f 1085/1384/225 1100/1385/225 1084/1386/225 +f 1085/1384/225 1102/1387/225 1101/1388/225 +f 1071/1389/225 1102/1387/225 1086/1390/225 +f 1072/1391/225 1087/1392/225 1071/1389/225 +f 1072/1391/225 1089/1393/225 1088/1394/225 +f 1073/1395/225 1090/1396/225 1089/1393/225 +f 1074/1397/225 1091/1398/225 1090/1396/225 +f 1075/1399/225 1092/1400/225 1091/1398/225 +f 1076/1401/225 1093/1402/225 1092/1400/225 +f 1077/1403/225 1094/1404/225 1093/1402/225 +f 1078/1405/225 1095/1406/225 1094/1404/225 +f 1079/1407/225 1096/1408/225 1095/1409/225 +f 1081/1410/225 1096/1408/225 1080/1411/225 +f 1082/1412/225 1097/1413/225 1081/1410/225 +f 1082/1412/225 1099/1414/225 1098/1415/225 +f 1084/1386/225 1099/1414/225 1083/1416/225 +f 853/1127/224 854/1417/224 849/1418/224 +f 849/1418/224 850/1419/224 852/1125/224 +f 852/1125/224 851/1420/224 848/1126/224 +f 848/1126/224 847/1134/224 853/1127/224 +f 853/1127/224 849/1418/224 852/1125/224 +f 862/1130/225 855/1421/225 856/1422/225 +f 856/1422/225 857/1288/225 858/1128/225 +f 858/1128/225 859/1423/225 860/1129/225 +f 860/1129/225 861/1424/225 862/1130/225 +f 862/1130/225 856/1422/225 858/1128/225 +f 850/1131/226 861/1275/226 860/1132/226 +f 847/1134/227 857/1288/227 856/1135/227 +f 978/1137/224 982/1148/224 979/1138/224 +f 977/1140/228 979/1138/228 980/1141/228 +f 854/1143/229 855/1281/229 862/1144/229 +f 851/1146/230 859/1293/230 858/1128/230 +f 976/1147/231 981/1150/231 982/1148/231 +f 979/1138/232 982/1148/232 981/1150/232 +f 909/1425/230 907/1158/230 897/1153/230 +f 907/1158/230 903/1151/230 897/1153/230 +f 908/1156/229 910/1426/229 898/1154/229 +f 898/1154/229 905/1427/229 906/1155/229 +f 899/1428/230 895/1429/230 901/1157/230 +f 895/1429/230 897/1153/230 901/1157/230 +f 907/1158/233 908/1156/233 906/1159/233 +f 905/1161/234 902/1430/234 901/1162/234 +f 901/1162/225 902/1430/225 900/1164/225 +f 905/1427/229 898/1154/229 902/1168/229 +f 898/1154/229 896/1166/229 902/1168/229 +f 904/1163/225 903/1160/225 906/1159/225 +f 908/1156/224 907/1158/224 909/1169/224 +f 911/1171/224 913/1189/224 914/1172/224 +f 917/1174/225 918/1183/225 915/1175/225 +f 916/1431/230 923/1187/230 919/1179/230 +f 923/1187/230 925/1177/230 919/1179/230 +f 920/1180/225 919/1432/225 921/1181/225 +f 916/1176/235 919/1432/235 920/1180/235 +f 914/1172/236 913/1189/236 915/1175/236 +f 922/1433/229 926/1434/229 920/1186/229 +f 926/1434/229 924/1184/229 920/1186/229 +f 913/1189/230 911/1435/230 923/1187/230 +f 923/1187/230 916/1431/230 915/1188/230 +f 912/1436/229 914/1172/229 924/1184/229 +f 914/1172/229 918/1190/229 924/1184/229 +f 941/1437/226 939/1198/226 929/1193/226 +f 939/1198/226 935/1191/226 929/1193/226 +f 940/1196/227 942/1438/227 930/1194/227 +f 930/1194/227 937/1439/227 938/1195/227 +f 931/1440/226 927/1441/226 933/1197/226 +f 927/1441/226 929/1193/226 933/1197/226 +f 939/1198/237 940/1196/237 938/1199/237 +f 936/1201/238 937/1209/238 934/1202/238 +f 933/1203/225 934/1202/225 932/1204/225 +f 937/1439/227 930/1194/227 934/1208/227 +f 930/1194/227 928/1206/227 934/1208/227 +f 936/1201/225 935/1200/225 938/1199/225 +f 942/1210/224 940/1196/224 939/1198/224 +f 943/1212/224 945/1230/224 946/1213/224 +f 949/1215/225 950/1224/225 947/1216/225 +f 948/1442/226 955/1228/226 951/1220/226 +f 955/1228/226 957/1218/226 951/1220/226 +f 952/1221/225 951/1443/225 953/1222/225 +f 948/1217/239 951/1443/239 952/1221/239 +f 946/1213/240 945/1230/240 947/1216/240 +f 954/1444/227 958/1445/227 952/1227/227 +f 958/1445/227 956/1225/227 952/1227/227 +f 945/1230/226 943/1446/226 955/1228/226 +f 955/1228/226 948/1442/226 947/1229/226 +f 944/1447/227 946/1213/227 956/1225/227 +f 946/1213/227 950/1231/227 956/1225/227 +f 959/1232/225 960/1448/225 963/1233/225 +f 960/1448/225 961/1449/225 963/1233/225 +f 961/1449/225 962/1450/225 963/1233/225 +f 963/1233/225 964/1451/225 967/1234/225 +f 964/1451/225 965/1452/225 967/1234/225 +f 965/1452/225 966/1453/225 967/1234/225 +f 967/1234/225 968/1454/225 969/1455/225 +f 969/1455/225 970/1456/225 971/1457/225 +f 971/1457/225 972/1458/225 973/1459/225 +f 973/1459/225 974/1460/225 959/1232/225 +f 967/1234/225 969/1455/225 971/1457/225 +f 971/1457/225 973/1459/225 967/1234/225 +f 973/1459/225 959/1232/225 967/1234/225 +f 975/1235/225 980/1141/225 981/1150/225 +f 986/1237/224 990/1244/224 987/1238/224 +f 985/1240/231 987/1238/231 988/1241/231 +f 984/1243/228 989/1246/228 990/1244/228 +f 987/1238/241 990/1244/241 989/1246/241 +f 983/1247/225 988/1241/225 989/1246/225 +f 994/1249/224 998/1256/224 995/1250/224 +f 993/1252/232 995/1250/232 996/1253/232 +f 992/1255/241 997/1258/241 998/1256/241 +f 995/1250/231 998/1256/231 997/1258/231 +f 991/1259/225 996/1253/225 997/1258/225 +f 1002/1261/224 1006/1268/224 1003/1262/224 +f 1001/1264/241 1003/1262/241 1004/1265/241 +f 1000/1267/232 1005/1270/232 1006/1268/232 +f 1003/1262/228 1006/1268/228 1005/1270/228 +f 999/1271/225 1004/1265/225 1005/1270/225 +f 849/1145/231 991/1277/231 992/1273/231 +f 850/1131/231 992/1273/231 994/1274/231 +f 861/1275/231 994/1274/231 993/1276/231 +f 849/1145/231 862/1144/231 993/1276/231 +f 853/1278/241 983/1284/241 984/1279/241 +f 854/1143/241 984/1279/241 986/1280/241 +f 856/1282/241 855/1281/241 986/1280/241 +f 853/1278/241 856/1282/241 985/1283/241 +f 848/1126/228 999/1287/228 1000/1285/228 +f 848/1126/228 858/1128/228 1001/1286/228 +f 857/1288/228 1002/1289/228 1001/1286/228 +f 847/1134/228 1000/1285/228 1002/1289/228 +f 852/1133/232 975/1292/232 976/1290/232 +f 852/1133/232 860/1132/232 977/1291/232 +f 859/1293/232 978/1294/232 977/1291/232 +f 851/1146/232 976/1290/232 978/1294/232 +f 1013/1295/232 1014/1299/232 1011/1296/232 +f 1008/1298/225 1010/1461/225 1014/1299/225 +f 1007/1300/224 1012/1297/224 1011/1296/224 +f 1009/1302/228 1011/1296/228 1014/1299/228 +f 1008/1304/231 1013/1295/231 1012/1297/231 +f 1021/1306/241 1022/1310/241 1019/1307/241 +f 1016/1309/225 1018/1462/225 1022/1310/225 +f 1015/1311/224 1020/1308/224 1019/1307/224 +f 1017/1313/231 1019/1307/231 1022/1310/231 +f 1016/1315/228 1021/1306/228 1020/1308/228 +f 1037/1317/228 1032/1337/228 1033/1318/228 +f 1029/1320/228 1030/1327/228 1027/1321/228 +f 1026/1323/225 1030/1327/225 1029/1320/225 +f 1025/1325/224 1023/1463/224 1028/1322/224 +f 1025/1326/241 1027/1321/241 1030/1327/241 +f 1024/1329/232 1029/1320/232 1028/1322/232 +f 1036/1331/231 1034/1335/231 1031/1332/231 +f 1036/1334/224 1038/1464/224 1033/1318/224 +f 1035/1336/225 1031/1332/225 1032/1337/225 +f 1032/1337/241 1031/1332/241 1034/1335/241 +f 1045/1339/231 1040/1349/231 1041/1340/231 +f 1044/1342/228 1042/1346/228 1039/1343/228 +f 1046/1345/224 1041/1340/224 1042/1346/224 +f 1043/1348/225 1039/1343/225 1040/1349/225 +f 1040/1349/232 1039/1343/232 1042/1346/232 +f 1053/1351/231 1054/1358/231 1051/1352/231 +f 1050/1354/225 1054/1358/225 1053/1351/225 +f 1049/1356/224 1047/1465/224 1052/1353/224 +f 1049/1357/232 1051/1352/232 1054/1358/232 +f 1048/1360/241 1053/1351/241 1052/1353/241 +f 1061/1362/241 1056/1371/241 1057/1363/241 +f 1060/1365/232 1058/1369/232 1055/1366/232 +f 1060/1368/224 1062/1466/224 1057/1363/224 +f 1059/1370/225 1055/1366/225 1056/1371/225 +f 1056/1371/231 1055/1366/231 1058/1369/231 +f 1069/1373/232 1064/1382/232 1065/1374/232 +f 1068/1376/241 1066/1380/241 1063/1377/241 +f 1068/1379/224 1070/1467/224 1065/1374/224 +f 1067/1381/225 1063/1377/225 1064/1382/225 +f 1064/1382/228 1063/1377/228 1066/1380/228 +f 1085/1384/225 1101/1388/225 1100/1385/225 +f 1085/1384/225 1086/1390/225 1102/1387/225 +f 1071/1389/225 1087/1392/225 1102/1387/225 +f 1072/1391/225 1088/1394/225 1087/1392/225 +f 1072/1391/225 1073/1395/225 1089/1393/225 +f 1073/1395/225 1074/1397/225 1090/1396/225 +f 1074/1397/225 1075/1399/225 1091/1398/225 +f 1075/1399/225 1076/1401/225 1092/1400/225 +f 1076/1401/225 1077/1403/225 1093/1402/225 +f 1077/1403/225 1078/1405/225 1094/1404/225 +f 1078/1405/225 1079/1468/225 1095/1406/225 +f 1079/1407/225 1080/1411/225 1096/1408/225 +f 1081/1410/225 1097/1413/225 1096/1408/225 +f 1082/1412/225 1098/1415/225 1097/1413/225 +f 1082/1412/225 1083/1416/225 1099/1414/225 +f 1084/1386/225 1100/1385/225 1099/1414/225 +s 1 +f 878/1469/242 893/1470/230 877/1471/230 +f 871/1472/241 886/1473/243 870/1474/243 +f 864/1475/244 879/1476/232 863/1477/232 +f 863/1477/232 894/1478/242 878/1469/242 +f 872/1479/245 887/1480/241 871/1481/241 +f 865/1482/226 880/1483/244 864/1475/244 +f 873/1484/227 888/1485/245 872/1479/245 +f 866/1486/246 881/1487/226 865/1482/226 +f 874/1488/247 889/1489/227 873/1484/227 +f 867/1490/231 882/1491/246 866/1486/246 +f 875/1492/228 890/1493/247 874/1488/247 +f 868/1494/248 883/1495/231 867/1490/231 +f 876/1496/249 891/1497/228 875/1492/228 +f 869/1498/229 884/1499/248 868/1494/248 +f 877/1471/230 892/1500/249 876/1496/249 +f 870/1474/243 885/1501/229 869/1498/229 +f 1131/1502/250 1116/1503/251 1115/1504/250 +f 1114/1505/252 1131/1502/250 1115/1504/250 +f 1113/1506/253 1130/1507/252 1114/1505/252 +f 1112/1508/254 1129/1509/253 1113/1506/253 +f 1111/1510/255 1128/1511/254 1112/1508/254 +f 1110/1512/256 1127/1513/255 1111/1514/255 +f 1109/1515/257 1126/1516/256 1110/1512/256 +f 1108/1517/258 1125/1518/257 1109/1515/257 +f 1107/1519/259 1124/1520/258 1108/1517/258 +f 1122/1521/260 1107/1519/259 1106/1522/260 +f 1121/1523/261 1106/1522/260 1105/1524/261 +f 1120/1525/262 1105/1524/261 1104/1526/262 +f 1103/1527/263 1120/1525/262 1104/1526/262 +f 1118/1528/264 1119/1529/263 1103/1527/263 +f 1133/1530/265 1118/1528/264 1117/1531/265 +f 1132/1532/251 1117/1531/265 1116/1503/251 +f 878/1469/242 894/1478/242 893/1470/230 +f 871/1472/241 887/1533/241 886/1473/243 +f 864/1475/244 880/1483/244 879/1476/232 +f 863/1477/232 879/1476/232 894/1478/242 +f 872/1479/245 888/1485/245 887/1480/241 +f 865/1482/226 881/1487/226 880/1483/244 +f 873/1484/227 889/1489/227 888/1485/245 +f 866/1486/246 882/1491/246 881/1487/226 +f 874/1488/247 890/1493/247 889/1489/227 +f 867/1490/231 883/1495/231 882/1491/246 +f 875/1492/228 891/1497/228 890/1493/247 +f 868/1494/248 884/1499/248 883/1495/231 +f 876/1496/249 892/1500/249 891/1497/228 +f 869/1498/229 885/1501/229 884/1499/248 +f 877/1471/230 893/1470/230 892/1500/249 +f 870/1474/243 886/1473/243 885/1501/229 +f 1131/1502/250 1132/1532/251 1116/1503/251 +f 1114/1505/252 1130/1507/252 1131/1502/250 +f 1113/1506/253 1129/1509/253 1130/1507/252 +f 1112/1508/254 1128/1511/254 1129/1509/253 +f 1111/1510/255 1127/1534/255 1128/1511/254 +f 1110/1512/256 1126/1516/256 1127/1513/255 +f 1109/1515/257 1125/1518/257 1126/1516/256 +f 1108/1517/258 1124/1520/258 1125/1518/257 +f 1107/1519/259 1123/1535/259 1124/1520/258 +f 1122/1521/260 1123/1535/259 1107/1519/259 +f 1121/1523/261 1122/1521/260 1106/1522/260 +f 1120/1525/262 1121/1523/261 1105/1524/261 +f 1103/1527/263 1119/1529/263 1120/1525/262 +f 1118/1528/264 1134/1536/264 1119/1529/263 +f 1133/1530/265 1134/1536/264 1118/1528/264 +f 1132/1532/251 1133/1530/265 1117/1531/265 diff --git a/src/main/resources/assets/hbm/textures/gui/weapon/gui_turret_arty.png b/src/main/resources/assets/hbm/textures/gui/weapon/gui_turret_arty.png new file mode 100644 index 0000000000000000000000000000000000000000..d5a91504e451481d5fafc7459a175ee042b7ac18 GIT binary patch literal 4431 zcmbVQXH-+&(mn|Z?L~wrO{5r#8W9CWgeXJ^LIjZx(tQyrzKBQ(JwZ^KQWZg}^d`MV z2v{J1(u)E@kQxv|H-SL-!uS38e%v4T-o4hW*=P3bIcuMpd1m&BG|<;R!hM1p0DvPH z9kdYufLK!yz{$>H)=vr_uo%Qs17pI;8iAbmBLIM(9fQ7M;+wWIVHY9rU95GT{QBlg zm-==K4f`3{qux13tLAU$7&xzlez>QsaJi`T=xtj>lHd!@QKB?;>`j?{j*Lmd)1qho zsYZo_Pm@8;e8+Wjzr2SeDrsaZ8DaK}UG(&f3XWoXy?uO`6DgN2In4*E8&Ij<)W(9u z{r!1mr=GMT3^6UO<>*ey+>T?=Lo+nKU{7L2HUphUQtPj;vTV!Q7i*p}-lQioa_lIp3kpse*?e$;vgV=XA zeloyQGVEnPXi@CM*Xvw?j8Yu_z-e*GA`?p-i34t(>E+Iv`!rMpCkm?kz-?9W{CS_S zOYi)d*t+&7#gV?IvnRFT21BWF2H(F&mxvj1Rr26fPDHJA@_U@ru6tyC?Du9&j4>XD z$OQv6qN0KeYd$-_i=yH1ZuG?~CmAy)0IGAp%wu4CQ)UOVTKpr^kq0=_=mVaN<_6AG zzTa-i+r8!hptugtoqyz^alI!4=kxq&`a!v&h_R4+N1Y9aW_{$_Gt%(sKqYhYH)!-M z64z*sMyvVFTh96zj^B@j;0Fd3j~UDeQj>o;dSRnTwLj)zJ)~PW{Z8#dP5Y zAAplE2H-xT|LVpz(n~p|Ys-61W1IJ-z{E3@-?D@NT~$852(VLaM*J9EtRxAs-#vEm zg&nx!Z&2^tZ|w26kgBxHIhrF3?bo}iv6DR?tTi_XLC zF%9DQ)|61E&q1!(I<4C4Lq~UktmDUb;&&exYClp_8ZBm@eoQ2s8$Relc=2R){pDMn z;@GU|@GO%zxgoQ9O#LpTrE01#JtsK!aw5u_Wjchb^^1BJVxTeeO;E`NZ&8WW@zcr~ zK`2f42VWKGTK8{us;j7+)g4bh(JBlee$50ijDnaib>GZ}XRCwmi|s{W`7X*Mfavp! zwkey+Z;`upW_QwT&fnpQ>KI)l+o+Qa=Qrt>b$}%L+=N{ZeLt^vGkqs%__o5>1F#W@ z9_{J1g^WG_bpegG#cjUt=$&`$jo*aBtMXcO|D05j*gX-hyw<$B@S3yA5`3;luk|V; zN&(Mj$Yy#27w5Q>cGhGK%L?)gsRb#!;kxGQOzn}ZDcYk%Z&=5!_)cL8zB^Qt?jj_B z3TrtS#c`E}?A_jNZKW4{y(P@8%vIAPe}N{k^eG zL3Kv&I>aytE}zFN%wbJ8#80bGUTt6BV1dHivya17AA+rSM@r+UJuxEz9v9j9G~X7K z%f{b-VD8|Rz21iA@D-)8D9Nj*rP!BP2-yvv$JP6JvMa z-9duNbge=F4!s`a{r5uRyUY?+V#Lfu@Ytn4a*iKzt?kINCfLm8Uv~0|yzJ!H)>u~Z z)UK9{yevCI(hm6YjlSn&}^x=JFrZ^E&dy_M6l;5 z1kk)%>lx&9Zpr7lckFHx%&ZbpY?hAOv)rT@yzKSxWR}=y?_bXD;&_)3@te0L#FurM zSv``2y`pP2e%k3^J)5Tf-POsSU{7M*W|XhhL3yHDkW#m$+e*)}5nC|ztINtar(T>< zTuYYvWCL!6og;!8P?-9Hf z-pvXp8WwpFef3+|+L%4e)0T)v5EXO2yk#fppRtN78%kwO+WQ4_b^00HTZevfL9qY%5AE3;#edIa5Upd^f2r>?zJ~;yc(qS2zsw=xZhEu%a-uIeD~?s8h8t$Fn9c?6zs75B$>WWS?rS3Bbh92D{M zuD5cuh$n#s)=A8p#SOx2oQ8}CBNG+I@w$nmd%A1U2B5Gf%v5jXWk=(YAb3M;96t1rGz5Q8{an`d^w@! zi;)DYN}hqq^9>6fext+9M!HDHV<~{(1zWjTxnR{;qHu50lu)B*j?vu&AR$r@Sm;T= zG%sj5IO~z=Z#cw#O*+KY0aFp?RpvVr{PPXh%4{Y0&g4k5uLW9q<8Bf`&0MgQ^HoBO zfP3AFseOYX*=8VzV=Nc=oF}hY-*f&P@Ov zmQ`LAnSRF==~Qlc_=zFK1BoGS1yYYog!kYk030U1OvvPU@wfDmsbY4b29)pVl=iS8 zh%^@r4Nks&?^Uv#yUi~fILzZsapNI^NiZVJ6dzkZEh^&y2i2AkY8KhQQq?M?;ME49wsY4PmTMC=?y=(>?Gy- z6gR;6_O#3Z)t>0OEo`3a=k6M2a!ta~bKq{XZJFkQzxnzksY?3;?23FGT&))oYo>~l z{F1tsFg#)JU3HE8Ak8TR9hXL)z)@+_8NBETEsJM^QA0Fvve(LBE>ZedeGL}t6kaFO z0xCBVz(;}#0^)k5Sxt!n*Ow_Z#R3sX=_h`*ThrXFU#86Us8+8ka<0DyymVgyU3~VA z6bEanlsX1b^$=)9O-j;|_Ls;iVi6BCMKW(@b7%1^{9vgF)A-dXP%Wo zz89Cp^I3wDeQfVr;`FRKNi_l?dcW@ox8SjvU=veka9^!av3&kEspfT{o)v#b4Ku7# zW~!OxC7DFC4FwM^$-&*w6k!Ous3?ACVtan|M!8?D@fB&{_$T)Xw%OPcpd%g21Xqhi zCn7-0Do-X04gHcYIB&o(S;8i)wSaWZ)v@pnAqSwtrf)1-E^T-fUW6PF!D5r_dV4p+VtfEWxgM|63U2cq`XW?!xD97fhjP%9Lz~ z+i&__Kp)l@N0a4S-?2fOg04F866L;rUyazqGa_6+`R|?l^?p`J&SlIsoZL@dB{zLs zp*2&l{LDO3e6uE1YVhOHS6U8UD70PM67SWv_)*YF8sjM}l-z&4G+~WtB`ct64l+<> z#M&l(B$~oIpMDA$+GbiOrhtC$PcRy@XiWv8!7OZ^H{!}AaHDpP%)+Y&0R%9MpgghD zFA;?v8Q4iLXSi9Zd}BjVpU#73rJZLdR;z60SVkb6mcb4V077_~d~! zzMX=Xvun|0)kgx>U#0^0sS?-aG-7%vXEnA0{cnB_lkOB_WGX9hpBx);30oY$T&Lf1 zQRKh>LzlX*g~|f0CR9kDuo!1xLM*Enz4a((2BT%o zj?Qaj>#A`ZIr6eol|P>F&0ip8KZAV5g>|H}9vPGz&s6gz(kdiR$GO$NJ|(%#wrLLm zklik)Jvc-Pmd3HVZo)f-1F16e)+<&V=HY54(uH9{{PAHyBRf+t7;tOl_3nC#dzhGC zP@N%2E@8RJ8V;U}Epzjd1Z54$8u5bt*?wHHhN2c9ix@~e;$UYX+#$;SdnD+uoE4)) z4;6=MA#0A+rx%*~#97a-w7O(YRk?h&9Ig8;xzeXU?bD#EgiHeif(|$MT1kumaSt@Q zY_hm><^s`tREeVy03=qe)1}Pahwt}a)7D?Mo=^MHSekH$Cm#%G6iQ3NvlCFS5nxvB zA+^U}s*P1k6rxx8j6e<)-Kb{Kpt6Kk1&w5`0?C`=9_T%c4e4pvhJ5LU2YT`p4w)4$< zT#3fv27cT9&&XPm1XDvCNB@hg5TbY*1Oxa&PaNf2mkRf=cwgoI%o#t~Y=vF8MsOh}Gb&_tMvFy8@nU{L1!^B=Pr&c5*kumxzoT?i{#3W__gsZr~%#_V4-rU&ROuUTYizksbP!C=@=@f?r2M z9|T0l1OG?Qc)?YOiz~@}F<4W3%ID(NLtP$yr*LCdQz89dQYp6{vb{cZxdL(VR=8=% z_OIhWg)rCuQeJi!j`FT2Gp(HhAcgWi38Va}=?koTI-*nxh2#vr-h}Ksn=6E3a0avf far}oPF8+Yc#I04fT)%(ja4SYjA6=$l|MY(Vz1ub0 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/ammo_arty.png b/src/main/resources/assets/hbm/textures/items/ammo_arty.png new file mode 100644 index 0000000000000000000000000000000000000000..687e95b3b52ea166b7c06a96dc1fa13cb33e9716 GIT binary patch literal 329 zcmV-P0k-~$P)YkWyl; z1t80^LD0Cpu+}1_1fVQSHv}31D5Zqfx^v*6<^7#I3;57lV~pt_)7Y_oxD6tEKq(~v z>bmYAakOJT3nQbxO^5p1@C^zn0luXn=jO!JvL ziS)M6&al}EY;(xt+wqn50z;5#{8v>FIETd14hYQPIF4uX`W^AK`VfNw=)TVC<^7@$ bcQSqf-KTWrvozr+00000NkvXXu0mjf8-baSXBO zU3%HD>yU%Uv5)_yr>V@)Q}<9_leG1zoa)he2X2*Jyp(rPIHH2he?rg=x7OT4atg5# zmws%UaKt4&>B#l70(GCyinGm=VYH~*tK|^K^?q}+4UGMfwvNJ)Tvc?D|$NYVx<@wNLV_?ll6RJ~6rOGvb(X_W6y@D-K5YyLmbH2p7I^ z>&e~hWM*%7a)ZjJtDSd5uIwo``nh^{L-EN-#nLEkhAnX*g( zOQHF}oKu{4oSELUSXk|t_u6mUe!1?e+rO|a_*)+K`mQtoy5fI~OZp1uyk74V0rWnD Mr>mdKI;Vst04E}ZegFUf literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/ammo_arty_he.png b/src/main/resources/assets/hbm/textures/items/ammo_arty_he.png new file mode 100644 index 0000000000000000000000000000000000000000..b9ffd9619b9373a7c665c4475a7222a2cd61568e GIT binary patch literal 358 zcmV-s0h#`ZP)83>~1s8D;7e~i9XAHq7=o54ieS<=u zz`-%Id4g_&6rD@fV7I#x2hTy0rcIir_-%LG{l4G-I}ZL?0w4$i3t)^P3`21UzyU~- z1Y-*T?~gqDW}10hmm_0FY7wFuK34waMwT*^LG0 z_dATor}=>s`N7q3ivRdoX|l2Dx~>IKO63N_?wq@`Zx&iqLYyk9)*53B!|ojaJf+vR z43y>N;i43$L@Z|ZFIV*1>pRO-luRmf6*~=-t%X!ZD0WzA!7^R<$>LUtP)Zmfh@Tcasg?Zsx*w&pCGn{#g;g!{dDb5a)TFzDGv`hND3+)?lng zoCjzOI>{fzd5qNnESGlypx1lb3u*zxvqdCM3XOLA6oCHCbvOvvDiFkZo}W|(QCcw^ z4Qe3;d2xIj0J>e1DHu=IXrmA(#Ir@oPHXo9V6_r9n;*uLHRl&+7^^YXR4OSE^PaCd zmszNZMPE`zDOuYOufBA?S k1E9E_ug~wJKHT2=0~kkfjDtqXlK=n!07*qoM6N<$f?14$2LJ#7 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/ammo_arty_nuke.png b/src/main/resources/assets/hbm/textures/items/ammo_arty_nuke.png new file mode 100644 index 0000000000000000000000000000000000000000..e6165872c08311138cf24941a8af82ee91d9fb3a GIT binary patch literal 328 zcmV-O0k{5%P))j#}Rp6Y%7!$@9+bv0&aMN7PA_34^i!t(W zH~^5O2{MzjNYto%2$OEhlDpkGr}+s0zU%Rw=VkvcW&w!Ltj-E#mWJFEGI>?wa%CnL zk*7JZlG(G43GU0mrd%A&nIsUkEa3QCKJ zlcvF`V^8APu|0q8!u?K^mW6iYFJHbap^F0#l|F>SVE{lN5Gehist5!E*xA`Z zEEdD!;v$BJhhdr~ve_(DRYkE_tT0>EOx~qXD0q4yJ3Bit zP1DnB=%VwG0U(h`V0L!avx_iI6R}v#Q!m@a{y+wR@$qq-K7HD=i4li4*-aWA1IV^*qgX5= zm&8oXT3RaF(SSPao<6pErS12GH( z@pv2n5R1j2>pC+w%d*P;@!KILw$k z$z&39b8`pE1D5gOyn-JV?a9a%78WozHU>pe5Rb=k?AS53k0eQ$o0~%{7Q>-KhagE3 zEPu;_BuUKJQmGVHR#tHI=ut*USX*0T-jdhV4|?x6)Gi;c1VvGxsw$p-`f28IqtPf* zsZ`m1larI|vuJF#ZDVL?2tz|dNT<`x$jGya)9GVra6p$2N9R^ml^I(jplOnyN@*jH zNk+zRk26%D%ZCHtnjka+Ns^dx@ks<3BY*AVHk~?-Qx>DW_~MIYS%jDI+fV=adrKM3 zfByIX*1TpF=kkx_{;8@2OUs)&h+3CAlh zmze)&M~3_&c z>S1bX3O8=t@Z{W`0&i6H49{!)^pC$gk)Vvk{6CTS^(M|-S%CH30+b=3kOgu8lo+67 z0WAw?At3jlvRwg?7=rWv=Z<6eKh9wI#D5``v&-T-mH2S|{r#RPOnf*mz3g6s3{1>k z={J5KKOz_d3L!xI3!nua8q`yOrhfv;9YE0l_US2LM z{PMp?A`w^lR4Rqve)|ohqoc0n5<;`awz#<1kihu(c-t|b@)tlm1t`OS@&HiMfbt}u zgaGsa&>ng;u{{E4b;5A9Q9j%=&phMg^Lga+`H~<pCVTCXh@fnU{0(aLr;rpE*(Vk|Dta@BmPT9{vyk@GOAkl6Na> ze-Tjbm5i_!)JFMmhYugd_V#u|>z-6Z&gb*U<#G*Wz^(G(e);7WC!J11*L7@eZlb@x zAIW4A;cyt6o11v;wbvTHBh^ne>vqj!~^MB2nzkl=1H%%R{ z8mu%>C;-|3fFYpp0MHHrN(w+6z-GzV%G#Fz>t8_O4uCV&kKHgIE)t30{{8z127^#l z6_#b8udffqViBQGi0!9o8Uld;Ow)v}>rhn{o12?8kKG6#?xmMrasq(>XruG+@sSuS zH8Y@{WQ&MfJGg)UzJF``kt0XiIxY`o;86^R2Y{9alraDy07(FmhY5qwt{elj2epq~ z#)mt9{=6d&65X+hL;|X+vH~V8<&bBjsg~pwMS+8e0bLSjMlAx+;nP&hR zC)pyrw{$E1Hi{2F{C}{i{ac0dS3r3VKoLM1 zPzC`ULMc{@JZxL4Y*%(l@gHiW11i0b?VWetVcL_23WY*YRTYUu0^{T3h{xm1tI^b1 z?WKgx%76Rqw>4u9-q-+OW@ZLw&z`ODGNx&keQy+h2DZrOpMPG{!?il4x~+fS{GXd8 zd-$7+KtF(^?tkrPK06};3n*>>SFuY4jM4I>{Cp8yiD38Z9%p&CSi435eIIR`zKZ%;4I6gJrw&^`L1Qrl+Sd zGcyAKc>VR)%M6b9Y_v5yrFN1n^7GF>V{B{;fO~zf5r6F0lnQjN3{%GVO{X6fQ4GVt z?(Q!8zOk{v;w;Kifl^jVu}nMi^$-XIP%IX4_Uu^{i$%7PSF2Wz*iY1Ai<~@pl6@Z- z7(gnOYWn&*HKn@Y+O=zYb}Syu;4+yE48veQ=(-NWFqmP4!(jx2LF95d)|Sa+u)Dj< zJX$;Qgnw6FdBq8ZLg?%3!_LkQve_)M*(^3THo&)&!F~Gar*PXp6bc~}3SoMB+Tq); zU%%dQ_Jzn6p__m=z-E&g!d_;hgqt^SI*~{Ov$M0fcI_JG=jSm$Ki|@^PMtdCoH%g; zufF;!CMPG6N~Lh-%$Y}Psq~?zrw4^Xp~5iuqJJ%YCWASA_%PPi)*#Dr+wz3xo_h|_ zXcU8kgGeTm*xcMiGMU8S;NYILU%!66rH*U`d`u_CtId*LQ>oORday=N&6`$3BR50Y zlu8D|8;RQ*D?dGIn#QKHcH{{+ZrrHpvD$6lFYvWM>L0$n(WHh}46a_i+K@YZiO zkuDSp$mjFWG!3R{VrORu09YN0ra{ZHu(q~_o}M1`_V%K;x0kJ#wj)n?^2sMLGBSdZ zkrAw~uVa0E9sT|NtgYSldgugO#Ih{R&VSBgbaWH|u(Gm((b3VSVz|#f`>dh;rl+SJ z0GOGX@#WJx%;4&!!Ndrm>Uk!UK_-)7cXGS(enBVLBDQVg`0?WaO5X4I@#8QIqbY-H zHHh~cn8BSseY&jZNrl!zp@1KM{1Gp|{4(*47sK`ud=%Dyz5c?(ViFPk(IV zrKKe#lS!wn6 zR!Qe$Eltx938&UVKK}S)*W=fFYO4tqS_WSy zyLj=U^ZfJAx2j)LW2-Gg(bPz5q&x+QI$l*(+`W63y$;N;ujkq?eao^`LNFL)ZN*{{wtsD7cXtrJKIK}hdFap~IF5rSo_M0HRN^;%Mbaqg;-)YC_H9;Z zt>)er78dZ-Q%^C4Tan`p#4RAEf%xjHuU-)EeuCTcrxz|<_(8m}sy#aBH+^|;B_6BV zGbFq&)%5ixAC4|A7JrMO7Q_IzRXJ+oJD(o}3W~)iuXuU>sV$y*zrN~cech&3 zLbc~d-2U?V`i>9BcjUmpfa}2VZMv?rSfW)qaR9_YpucX9`tbwE8xXIH=>4i0rJwY5 zGrD^E()U{W`i>7r7fggj`i&nrk%htk-in;t08}%&YLEHRK7Z87JRONYKmEoV+@D=v zS(cf;ym7hd>pMOif6;sgkpldKGW>q+$k70}#W4K#-h1!;;M)5f#LSR4KsOKIXMO8E zLreR(#c)zWc-K>Z+^J(YgJiuQ)A|Y%>pslf2t!Ns|1_ zha;u=?8|MiM9&3+B>x(bGc;Ui@3oO~F7AN^ZU*0>> zKJ>kozJH?5VywvP%X(JVb?CZY7TgDeLG<+WROPer8ECum_25=N5-Z~E$cY&m-I`^MJUp}U5RcBe29~qpcX{>Z%7zPZ(aOJZRxstpXO{49~^PrBR zRR}i{kl$(e1lfL{7CEi@k=qpa=6;mqz227sMrt3O; zSAXy7>MG;2QGJaT?D?nKTao8M9XUBUSrK1|F8}1olNEP#vvML*sZ>=@R&Dxe1cqTS zLlHfkAM~Y~9WPhSkO?H`_Np|R&Ut-($%msiQHoid+W?DGNGo#Gxd0e%%Wc_6JRZN* zN&tXT6+n!q{HQNKb&{9j4NmmV)e$0tA=Mv{Gk*_^Nkl=t5tL&fBW`r30<6cDD)u~iva+F!QlQ6ih^J;h`qf%B$G)jEiGYqco?Q> zqEIM6Q4|=4ao~iV%6D2`p0f4Hi z*xlWQEX%NM8-I@3X^o4Cdjg)ha&z_~W(*`}XbIZ8zeh zk3O;+AJxT4fK2gKKA-oj5vFOfskn=i4H?*vyF#Imca8Wvkq{G#E>0d~VBf=tan^Cd zvMeZy!ZOw_PA+5sh(sce(#3IuGTN?(JNb~wyHqL_Pk$S-x3>q=G(BxY7e@~n0JgTa zFh4)VnzP|2R zBc48eis9j5&#vFa@j+G;1<_~}nx=W$5YsffNy90CY*`iz!$7fE^t2&`Lc!DPcX2$B zZQF)vntz^WsfwaBKB$X-J!H$W0PHWQdxc7+(q)dE5-0#*7zVbswmfSDO{ZS2G~Bv% z%afYS7himFs+L#SJmzH#M^q*+F+4o%Adbqij6fi8;3lwb8; z=RA#dMlkt7KV3kygllj!T~gCt3)R;!RCi5Xiqo5kwt zDu2$NJX9BqQUu(+maZ^5Fou zCJ4*YEgp%4vfF?DOFw zkqGYGx#LMArl+Uz;K2h=u6|I$|aTI>} z-{bMPt9&+_#UFqCfzi=X*K!G=RbyLPT53vQe0<#3F`v>bAMVvxU$x8SGRo!hz92^@ zvMkGCEc{XxF+u+P^Ut~+;TJv}Uw_z*$K!Pizi!Yp4HFX+NT<`x%ei^DR^ergeV9<1 z<--jP4Pke8x2bhcDk7K5WfY6WrZV7m`EbAf`m3GG<)CRAGMNl|dwY>irxA;C@Tci**iJ}=NTA1)q`yI5M=K ze)qGepP$FQd-t%oxQNBY#kS6M@#01M z!i5WX_uY3fH8q87HtUG%n8AfYAyg`r1BSsDZRs-^%+SyfHa0dO%W}u^gg4%J1BpZe z0|Ns{r_;z}GDxS>7#J8hl>PVb-*2lU+kwaw;n6DTHGiAU9($dwmN%`1W^M+@lu8D| z8;RQ*D?dG|s>-IbPUHy>9z3Y)u{zypxihMrLvR5)9@?vCI^gkCml_#784=1uk+~Uesv*>1*w)_q@(v?aD z<#HLSs(->XP3-OM0RXE*(KJ}CRZlbrhm+k9xe3~cJ*1)_BB@lWCR?P@Q(H4LGxp-*V#_fVWs83Ebj;w0ZA-Bi1@*aH z4u6(qA(zWJVzTGYpR<$v_19nQbEooNVR?Dk>n5BEFoUCPl4@y{N(Gvxp;#=kN;)5F zsj7-_ILwakRNiaUdW+GG8#ipA@j|=Xi)%>lKp=oGzx>km{EeR4YC(mz!Pm)d+_+(1 zzI?f3eQRaQ2i8(mRb|FgEEZ8Jm0;U8f`7pv!r?Hsx3>Z87jpSpTc`4V!>6BqY6JTn zTWcALrbb#LC>m|bzpvdJ=byR>&Q|G;c%GkGYkWkWua6mLDzN1@)VCw z<^2M_!j_-dyUUN`^=^~8Fl>Gvu7d8GAn_&y(2_i2X?#j z>3Eu^mY0`t^X5$(0Dk!4ho;(h;lhQM^l4;lUg^uE{lbU4b?cT*9l)d3gT#C`7>~!> zlGAk^xm=D-C3J@;5(&t%jGdhw*MFDNxLu1M81ev#L;}Em0!3LX0Q~;@?+6Bi@SDCo zcds3NX{pjpUtjX!Y};n+3Q~ygM3ItYSr!%-7u%NOF*-Vm{{H?0vB}!nTHU+dEy$K6 z3CU!V>DkxU2ivys!V51rN+o{NS0s&+E^hkLU*4nD)7O`LICAxmA3tV=)_+>={mGLj zcqvU@#^|Q6@Az>1fbjt+KX4)o zga5r9Iky3D8-!>yTJuezp-||+^y+qf+qPK{&kvLz^{w|U=TyFaM zjt|E-n(rV|fPYYiKduuw8UVK#hTnet@yDNCd!GZJ8S-~I{}h=R!}(R;M$gdFF>Wzj zEq#5*hoeCg35%ozzmX#3?%S1f8vuS9iO1s@92{)wi7s)l`DZR_c{so6>o$ef0xv_? z=e=r859b#?96xB}u77EtnC^>4-mV;g17#3?5VF~gp;aNy6pJ zm#?U*ifA;7zP`Sioo^ThGMNmXKYxx~E{ETK`|anowKZ3xqig#`UvXL_*;XD7CwaHe zk|g<;4@XM#*_Yd3iJqrjIq{C?+wt5Bl=niGPlv@3mg1CSH%frklS18a^D|y>54Dy^N|^IWa@yGfaBgi+`<{EX#F0 z9f5Bb-4t@6L}uQ9HmtVHwrU-=l@e*yK-*eJD=WdOtnKQ0ny)j;5{B6 zNAVucPk;LI$p-(K|Ggf>B&DW@IlizGGqeD zxxFflyezM;FZpovCQ31jbIXYMJE&bb>RbSfw?W0<%~X1jWtkZp6?f^SI*tDQ=KA{j ufq2S~`ifI384PcDymxjhH1mcl>id5lqoznyF2N@N0000 Date: Fri, 17 Jun 2022 15:23:12 +0200 Subject: [PATCH 70/80] a tiny bit of arty stuff --- src/main/java/com/hbm/main/MainRegistry.java | 13 +++++ .../turret/TileEntityTurretArty.java | 35 +++++++++++ .../turret/TileEntityTurretBaseNT.java | 58 ++++++++++++++++++- 3 files changed, 104 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index e10071033..74b8d2d49 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -35,6 +35,7 @@ import java.util.HashSet; import java.util.List; import java.util.Map.Entry; import java.util.Random; +import java.util.Set; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -1012,6 +1013,18 @@ public class MainRegistry { /*BiomeGenBase.plains.addFlower(ModBlocks.plant_flower, EnumFlowerType.FOXGLOVE.ordinal(), 10); BiomeGenBase.roofedForest.addFlower(ModBlocks.plant_flower, EnumFlowerType.NIGHTSHADE.ordinal(), 10); BiomeGenBase.jungle.addFlower(ModBlocks.plant_flower, EnumFlowerType.TOBACCO.ordinal(), 10);*/ + + /*Set threads = Thread.getAllStackTraces().keySet(); + + for (Thread thread : threads) { + + System.out.println("Printing thread " + thread.getName()); + StackTraceElement[] stackTraceElements = thread.getStackTrace(); + for (StackTraceElement stackTraceElement : stackTraceElements) { + System.out.println("\t" + stackTraceElement); + } + System.out.println(""); + }*/ } @EventHandler diff --git a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretArty.java b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretArty.java index e98934386..978368386 100644 --- a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretArty.java +++ b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretArty.java @@ -3,6 +3,7 @@ package com.hbm.tileentity.turret; import java.util.ArrayList; import java.util.List; +import com.hbm.entity.projectile.EntityBulletBase; import com.hbm.handler.BulletConfigSyncingUtil; import com.hbm.handler.BulletConfiguration; import com.hbm.inventory.container.ContainerTurretBase; @@ -63,6 +64,40 @@ public class TileEntityTurretArty extends TileEntityTurretBaseNT implements IGUI return 3D; } + @Override + protected void seekNewTarget() { + + if(this.directMode) { + super.seekNewTarget(); + return; + } + + + /* TODO: large field artillery target search */ + } + + @Override + protected void alignTurret() { + /* TODO: calculate angles */ + this.turnTowards(tPos); + } + + @Override + public void spawnBullet(BulletConfiguration bullet) { + + Vec3 pos = this.getTurretPos(); + Vec3 vec = Vec3.createVectorHelper(this.getBarrelLength(), 0, 0); + vec.rotateAroundZ((float) -this.rotationPitch); + vec.rotateAroundY((float) -(this.rotationYaw + Math.PI * 0.5)); + + /* TODO: replace bullet base entity with a chunkloading artillery shell */ + EntityBulletBase proj = new EntityBulletBase(worldObj, BulletConfigSyncingUtil.getKey(bullet)); + proj.setPositionAndRotation(pos.xCoord + vec.xCoord, pos.yCoord + vec.yCoord, pos.zCoord + vec.zCoord, 0.0F, 0.0F); + + proj.setThrowableHeading(vec.xCoord, vec.yCoord, vec.zCoord, bullet.velocity, bullet.spread); + worldObj.spawnEntityInWorld(proj); + } + @Override public void updateFiringTick() { diff --git a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretBaseNT.java b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretBaseNT.java index 2a6c80830..d45c89c0e 100644 --- a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretBaseNT.java +++ b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretBaseNT.java @@ -455,9 +455,9 @@ public abstract class TileEntityTurretBaseNT extends TileEntityMachineBase imple */ public void turnTowards(Vec3 ent) { - double turnYaw = Math.toRadians(this.getTurretYawSpeed()); + /*double turnYaw = Math.toRadians(this.getTurretYawSpeed()); double turnPitch = Math.toRadians(this.getTurretPitchSpeed()); - double pi2 = Math.PI * 2; + double pi2 = Math.PI * 2;*/ Vec3 pos = this.getTurretPos(); Vec3 delta = Vec3.createVectorHelper(ent.xCoord - pos.xCoord, ent.yCoord - pos.yCoord, ent.zCoord - pos.zCoord); @@ -465,6 +465,60 @@ public abstract class TileEntityTurretBaseNT extends TileEntityMachineBase imple double targetPitch = Math.asin(delta.yCoord / delta.lengthVector()); double targetYaw = -Math.atan2(delta.xCoord, delta.zCoord); + this.turnTowardsAngle(targetPitch, targetYaw); + + /*//if we are about to overshoot the target by turning, just snap to the correct rotation + if(Math.abs(this.rotationPitch - targetPitch) < turnPitch || Math.abs(this.rotationPitch - targetPitch) > pi2 - turnPitch) { + this.rotationPitch = targetPitch; + } else { + + if(targetPitch > this.rotationPitch) + this.rotationPitch += turnPitch; + else + this.rotationPitch -= turnPitch; + } + + double deltaYaw = (targetYaw - this.rotationYaw) % pi2; + + //determines what direction the turret should turn + //used to prevent situations where the turret would do almost a full turn when + //the target is only a couple degrees off while being on the other side of the 360° line + int dir = 0; + + if(deltaYaw < -Math.PI) + dir = 1; + else if(deltaYaw < 0) + dir = -1; + else if(deltaYaw > Math.PI) + dir = -1; + else if(deltaYaw > 0) + dir = 1; + + if(Math.abs(this.rotationYaw - targetYaw) < turnYaw || Math.abs(this.rotationYaw - targetYaw) > pi2 - turnYaw) { + this.rotationYaw = targetYaw; + } else { + this.rotationYaw += turnYaw * dir; + } + + double deltaPitch = targetPitch - this.rotationPitch; + deltaYaw = targetYaw - this.rotationYaw; + + double deltaAngle = Math.sqrt(deltaYaw * deltaYaw + deltaPitch * deltaPitch); + + this.rotationYaw = this.rotationYaw % pi2; + this.rotationPitch = this.rotationPitch % pi2; + + if(deltaAngle <= Math.toRadians(this.getAcceptableInaccuracy())) { + this.aligned = true; + }*/ + } + + public void turnTowardsAngle(double targetPitch, double targetYaw) { + + double turnYaw = Math.toRadians(this.getTurretYawSpeed()); + double turnPitch = Math.toRadians(this.getTurretPitchSpeed()); + double pi2 = Math.PI * 2; + //if we are about to overshoot the target by turning, just snap to the correct rotation if(Math.abs(this.rotationPitch - targetPitch) < turnPitch || Math.abs(this.rotationPitch - targetPitch) > pi2 - turnPitch) { this.rotationPitch = targetPitch; From 0ba71533349be2d8b643b3cb436c6f875063ff50 Mon Sep 17 00:00:00 2001 From: Vaern Date: Thu, 16 Jun 2022 19:45:04 -0700 Subject: [PATCH 71/80] Recipe changes, messing around with nuke items, remappings and ignored --- .../java/com/hbm/crafting/WeaponRecipes.java | 2 - .../java/com/hbm/hazard/HazardRegistry.java | 5 -- .../com/hbm/inventory/gui/GUINukeBoy.java | 14 +++- .../com/hbm/inventory/gui/GUINukeGadget.java | 14 +++- .../com/hbm/inventory/gui/GUINukeMan.java | 14 +++- .../com/hbm/inventory/gui/GUINukeMike.java | 16 ++++- .../com/hbm/inventory/gui/GUINukeTsar.java | 14 +++- .../inventory/recipes/AssemblerRecipes.java | 15 +--- .../inventory/recipes/anvil/AnvilRecipes.java | 12 ++++ .../java/com/hbm/items/ItemCustomLore.java | 4 +- src/main/java/com/hbm/items/ModItems.java | 68 +++++++++--------- src/main/java/com/hbm/items/bomb/ItemBoy.java | 19 ----- .../java/com/hbm/items/bomb/ItemGadget.java | 19 ----- src/main/java/com/hbm/items/bomb/ItemMan.java | 19 ----- .../java/com/hbm/items/bomb/ItemManMike.java | 21 ------ .../java/com/hbm/items/bomb/ItemMike.java | 18 ----- .../java/com/hbm/items/bomb/ItemTsar.java | 19 ----- .../com/hbm/items/special/ItemStarterKit.java | 32 ++++----- src/main/java/com/hbm/main/MainRegistry.java | 8 ++- .../tileentity/bomb/TileEntityNukeGadget.java | 10 +-- .../tileentity/bomb/TileEntityNukeMan.java | 10 +-- .../tileentity/bomb/TileEntityNukeMike.java | 18 ++--- .../tileentity/bomb/TileEntityNukeTsar.java | 18 ++--- src/main/resources/assets/hbm/lang/en_US.lang | 17 +++-- .../textures/gui/weapon/fatManSchematic.png | Bin 10273 -> 10270 bytes 25 files changed, 176 insertions(+), 230 deletions(-) delete mode 100644 src/main/java/com/hbm/items/bomb/ItemBoy.java delete mode 100644 src/main/java/com/hbm/items/bomb/ItemGadget.java delete mode 100644 src/main/java/com/hbm/items/bomb/ItemMan.java delete mode 100644 src/main/java/com/hbm/items/bomb/ItemManMike.java delete mode 100644 src/main/java/com/hbm/items/bomb/ItemMike.java delete mode 100644 src/main/java/com/hbm/items/bomb/ItemTsar.java diff --git a/src/main/java/com/hbm/crafting/WeaponRecipes.java b/src/main/java/com/hbm/crafting/WeaponRecipes.java index be12d3896..b11c1091a 100644 --- a/src/main/java/com/hbm/crafting/WeaponRecipes.java +++ b/src/main/java/com/hbm/crafting/WeaponRecipes.java @@ -380,8 +380,6 @@ public class WeaponRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModBlocks.mine_fat, 1), new Object[] { "CDN", 'C', ModItems.circuit_targeting_tier2, 'D', ModItems.ducttape, 'N', ModItems.ammo_nuke }); //Nuke parts - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gadget_explosive8, 1), new Object[] { "EEE", "EPE", "EEE", 'E', ModItems.gadget_explosive, 'P', AL.plate() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.man_explosive8, 1), new Object[] { "EEE", "ESE", "EEE", 'E', ModItems.man_explosive, 'S', STEEL.plate() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.n2_charge, 1), new Object[] { " D ", "ERE", " D ", 'D', ModItems.ducttape, 'E', ModBlocks.det_charge, 'R', REDSTONE.block() }); //Custom nuke rods diff --git a/src/main/java/com/hbm/hazard/HazardRegistry.java b/src/main/java/com/hbm/hazard/HazardRegistry.java index c1c0f1ffb..8d396fafe 100644 --- a/src/main/java/com/hbm/hazard/HazardRegistry.java +++ b/src/main/java/com/hbm/hazard/HazardRegistry.java @@ -442,12 +442,7 @@ public class HazardRegistry { HazardSystem.register(ModItems.crystal_trixite, makeData(RADIATION, trx * crystal)); //nuke parts - HazardSystem.register(gadget_explosive, makeData(EXPLOSIVE, 1F)); - HazardSystem.register(gadget_explosive8, makeData(EXPLOSIVE, 8F)); HazardSystem.register(boy_propellant, makeData(EXPLOSIVE, 2F)); - HazardSystem.register(boy_igniter, makeData(EXPLOSIVE, 1F)); - HazardSystem.register(man_explosive, makeData(EXPLOSIVE, 2F)); - HazardSystem.register(man_explosive8, makeData(EXPLOSIVE, 16F)); HazardSystem.register(gadget_core, makeData(RADIATION, pu239 * nugget * 10)); HazardSystem.register(boy_target, makeData(RADIATION, u235 * ingot * 2)); diff --git a/src/main/java/com/hbm/inventory/gui/GUINukeBoy.java b/src/main/java/com/hbm/inventory/gui/GUINukeBoy.java index 43640fb1d..b89cff524 100644 --- a/src/main/java/com/hbm/inventory/gui/GUINukeBoy.java +++ b/src/main/java/com/hbm/inventory/gui/GUINukeBoy.java @@ -6,14 +6,14 @@ import com.hbm.inventory.container.ContainerNukeBoy; import com.hbm.items.ModItems; import com.hbm.lib.RefStrings; import com.hbm.tileentity.bomb.TileEntityNukeBoy; +import com.hbm.util.I18nUtil; import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.client.resources.I18n; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.util.ResourceLocation; -public class GUINukeBoy extends GuiContainer { +public class GUINukeBoy extends GuiInfoContainer { private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/weapon/lilBoySchematic.png"); private TileEntityNukeBoy testNuke; @@ -25,6 +25,14 @@ public class GUINukeBoy extends GuiContainer { this.xSize = 176; this.ySize = 222; } + + @Override + public void drawScreen(int mouseX, int mouseY, float f) { + super.drawScreen(mouseX, mouseY, f); + + String[] descText = I18nUtil.resolveKeyArray("desc.gui.nukeBoy.desc"); + this.drawCustomInfoStat(mouseX, mouseY, guiLeft - 16, guiTop + 16, 16, 16, guiLeft - 8, guiTop + 16 + 16, descText); + } @Override protected void drawGuiContainerForegroundLayer( int i, int j) { @@ -55,6 +63,8 @@ public class GUINukeBoy extends GuiContainer { drawTexturedModalRect(guiLeft + 92, guiTop + 95, 176, 66, 12, 6); if(testNuke.getStackInSlot(4) != null && testNuke.getStackInSlot(4).getItem() == ModItems.boy_igniter) drawTexturedModalRect(guiLeft + 107, guiTop + 91, 176, 75, 16, 14); + + this.drawInfoPanel(guiLeft - 16, guiTop + 16, 16, 16, 2); } } diff --git a/src/main/java/com/hbm/inventory/gui/GUINukeGadget.java b/src/main/java/com/hbm/inventory/gui/GUINukeGadget.java index e8f533d9b..ad0d4c8ef 100644 --- a/src/main/java/com/hbm/inventory/gui/GUINukeGadget.java +++ b/src/main/java/com/hbm/inventory/gui/GUINukeGadget.java @@ -1,7 +1,6 @@ package com.hbm.inventory.gui; import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.client.resources.I18n; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.util.ResourceLocation; @@ -11,8 +10,9 @@ import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerNukeGadget; import com.hbm.lib.RefStrings; import com.hbm.tileentity.bomb.TileEntityNukeGadget; +import com.hbm.util.I18nUtil; -public class GUINukeGadget extends GuiContainer { +public class GUINukeGadget extends GuiInfoContainer { private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/weapon/gadgetSchematic.png"); private TileEntityNukeGadget testNuke; @@ -25,6 +25,14 @@ public class GUINukeGadget extends GuiContainer { this.ySize = 166; } + @Override + public void drawScreen(int mouseX, int mouseY, float f) { + super.drawScreen(mouseX, mouseY, f); + + String[] descText = I18nUtil.resolveKeyArray("desc.gui.nukeGadget.desc"); + this.drawCustomInfoStat(mouseX, mouseY, guiLeft - 16, guiTop + 16, 16, 16, guiLeft - 8, guiTop + 16 + 16, descText); + } + @Override protected void drawGuiContainerForegroundLayer( int i, int j) { String name = this.testNuke.hasCustomInventoryName() ? this.testNuke.getInventoryName() : I18n.format(this.testNuke.getInventoryName()); @@ -63,5 +71,7 @@ public class GUINukeGadget extends GuiContainer { { drawTexturedModalRect(guiLeft + 134, guiTop + 35, 176, 48, 16, 16); } + + this.drawInfoPanel(guiLeft - 16, guiTop + 16, 16, 16, 2); } } diff --git a/src/main/java/com/hbm/inventory/gui/GUINukeMan.java b/src/main/java/com/hbm/inventory/gui/GUINukeMan.java index cd5040b18..b89d2b043 100644 --- a/src/main/java/com/hbm/inventory/gui/GUINukeMan.java +++ b/src/main/java/com/hbm/inventory/gui/GUINukeMan.java @@ -1,7 +1,6 @@ package com.hbm.inventory.gui; import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.client.resources.I18n; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.util.ResourceLocation; @@ -11,8 +10,9 @@ import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerNukeMan; import com.hbm.lib.RefStrings; import com.hbm.tileentity.bomb.TileEntityNukeMan; +import com.hbm.util.I18nUtil; -public class GUINukeMan extends GuiContainer { +public class GUINukeMan extends GuiInfoContainer { private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/weapon/fatManSchematic.png"); private TileEntityNukeMan testNuke; @@ -25,6 +25,14 @@ public class GUINukeMan extends GuiContainer { this.ySize = 166; } + @Override + public void drawScreen(int mouseX, int mouseY, float f) { + super.drawScreen(mouseX, mouseY, f); + + String[] descText = I18nUtil.resolveKeyArray("desc.gui.nukeMan.desc"); + this.drawCustomInfoStat(mouseX, mouseY, guiLeft - 16, guiTop + 16, 16, 16, guiLeft - 8, guiTop + 16 + 16, descText); + } + @Override protected void drawGuiContainerForegroundLayer( int i, int j) { String name = this.testNuke.hasCustomInventoryName() ? this.testNuke.getInventoryName() : I18n.format(this.testNuke.getInventoryName()); @@ -63,5 +71,7 @@ public class GUINukeMan extends GuiContainer { { drawTexturedModalRect(guiLeft + 134, guiTop + 35, 176, 48, 16, 16); } + + this.drawInfoPanel(guiLeft - 16, guiTop + 16, 16, 16, 2); } } diff --git a/src/main/java/com/hbm/inventory/gui/GUINukeMike.java b/src/main/java/com/hbm/inventory/gui/GUINukeMike.java index bef83622d..b42539226 100644 --- a/src/main/java/com/hbm/inventory/gui/GUINukeMike.java +++ b/src/main/java/com/hbm/inventory/gui/GUINukeMike.java @@ -6,14 +6,14 @@ import com.hbm.inventory.container.ContainerNukeMike; import com.hbm.items.ModItems; import com.hbm.lib.RefStrings; import com.hbm.tileentity.bomb.TileEntityNukeMike; +import com.hbm.util.I18nUtil; import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.client.resources.I18n; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.util.ResourceLocation; -public class GUINukeMike extends GuiContainer { +public class GUINukeMike extends GuiInfoContainer { private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/weapon/ivyMikeSchematic.png"); private TileEntityNukeMike testNuke; @@ -26,6 +26,14 @@ public class GUINukeMike extends GuiContainer { this.ySize = 217; } + @Override + public void drawScreen(int mouseX, int mouseY, float f) { + super.drawScreen(mouseX, mouseY, f); + + String[] descText = I18nUtil.resolveKeyArray("desc.gui.nukeMike.desc"); + this.drawCustomInfoStat(mouseX, mouseY, guiLeft - 16, guiTop + 16, 16, 16, guiLeft - 8, guiTop + 16 + 16, descText); + } + @Override protected void drawGuiContainerForegroundLayer( int i, int j) { String name = this.testNuke.hasCustomInventoryName() ? this.testNuke.getInventoryName() : I18n.format(this.testNuke.getInventoryName()); @@ -60,7 +68,7 @@ public class GUINukeMike extends GuiContainer { drawTexturedModalRect(guiLeft + 140, guiTop + 30, 240, 88, 12, 26); for(int i = 0; i < 4; i++) { - if(testNuke.getStackInSlot(i) != null && testNuke.getStackInSlot(i).getItem() == ModItems.man_explosive8) + if(testNuke.getStackInSlot(i) != null && testNuke.getStackInSlot(i).getItem() == ModItems.explosive_lenses) switch(i) { case 0: drawTexturedModalRect(guiLeft + 24, guiTop + 20 , 209, 1, 23, 23); break; case 2: drawTexturedModalRect(guiLeft + 47, guiTop + 20 , 232, 1, 23, 23); break; @@ -68,5 +76,7 @@ public class GUINukeMike extends GuiContainer { case 3: drawTexturedModalRect(guiLeft + 47, guiTop + 43 , 232, 24, 23, 23); break; } } + + this.drawInfoPanel(guiLeft - 16, guiTop + 16, 16, 16, 2); } } \ No newline at end of file diff --git a/src/main/java/com/hbm/inventory/gui/GUINukeTsar.java b/src/main/java/com/hbm/inventory/gui/GUINukeTsar.java index d610d597f..e91e91e65 100644 --- a/src/main/java/com/hbm/inventory/gui/GUINukeTsar.java +++ b/src/main/java/com/hbm/inventory/gui/GUINukeTsar.java @@ -1,7 +1,6 @@ package com.hbm.inventory.gui; import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.client.resources.I18n; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.util.ResourceLocation; @@ -11,8 +10,9 @@ import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerNukeTsar; import com.hbm.lib.RefStrings; import com.hbm.tileentity.bomb.TileEntityNukeTsar; +import com.hbm.util.I18nUtil; -public class GUINukeTsar extends GuiContainer { +public class GUINukeTsar extends GuiInfoContainer { private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/weapon/tsarBombaSchematic.png"); private TileEntityNukeTsar testNuke; @@ -25,6 +25,14 @@ public class GUINukeTsar extends GuiContainer { this.ySize = 166; } + @Override + public void drawScreen(int mouseX, int mouseY, float f) { + super.drawScreen(mouseX, mouseY, f); + + String[] descText = I18nUtil.resolveKeyArray("desc.gui.nukeTsar.desc"); + this.drawCustomInfoStat(mouseX, mouseY, guiLeft - 16, guiTop + 16, 16, 16, guiLeft - 8, guiTop + 16 + 16, descText); + } + @Override protected void drawGuiContainerForegroundLayer( int i, int j) { String name = this.testNuke.hasCustomInventoryName() ? this.testNuke.getInventoryName() : I18n.format(this.testNuke.getInventoryName()); @@ -48,5 +56,7 @@ public class GUINukeTsar extends GuiContainer { { drawTexturedModalRect(guiLeft + 133, guiTop + 34, 176, 18, 16, 16); } + + this.drawInfoPanel(guiLeft - 16, guiTop + 16, 16, 16, 2); } } diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java index 74b079842..b6348bd0e 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java @@ -374,7 +374,8 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModItems.grenade_nuclear, 1), new AStack[] {new OreDictStack(IRON.plate(), 1), new OreDictStack(STEEL.plate(), 1), new OreDictStack(PU239.nugget(), 2), new ComparableStack(ModItems.wire_red_copper, 2), },200); makeRecipe(new ComparableStack(ModItems.grenade_zomg, 1), new AStack[] {new ComparableStack(ModItems.plate_paa, 3), new OreDictStack(OreDictManager.getReflector(), 1), new ComparableStack(ModItems.coil_magnetized_tungsten, 3), new ComparableStack(ModItems.powder_power, 3), },300); makeRecipe(new ComparableStack(ModItems.grenade_black_hole, 1), new AStack[] {new OreDictStack(ANY_PLASTIC.ingot(), 6), new OreDictStack(OreDictManager.getReflector(), 3), new ComparableStack(ModItems.coil_magnetized_tungsten, 2), new ComparableStack(ModItems.black_hole, 1), },500); - makeRecipe(new ComparableStack(ModItems.gadget_explosive, 1), new AStack[] {new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 4), new OreDictStack(STEEL.plate(), 2), new OreDictStack(AL.plate(), 3), new ComparableStack(ModItems.wire_gold, 3), },200); + makeRecipe(new ComparableStack(ModItems.early_explosive_lenses, 1), new AStack[] {new OreDictStack(AL.plate(), 8), new ComparableStack(ModItems.hull_small_steel, 4), new ComparableStack(ModItems.wire_copper, 16), new ComparableStack(ModItems.wire_tungsten, 8), new ComparableStack(ModItems.ball_dynamite, 4), new OreDictStack(CU.plate(), 4), new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 24), new OreDictStack(AL.ingot(), 8)},400); //8 HE lenses w/ bridge-wire detonators, aluminum pushers, & duraluminum shell + makeRecipe(new ComparableStack(ModItems.explosive_lenses, 1), new AStack[] {new OreDictStack(AL.plate(), 8), new ComparableStack(ModItems.hull_small_steel, 2), new ComparableStack(ModItems.wire_red_copper, 8), new ComparableStack(ModItems.wire_gold, 8), new OreDictStack(ANY_PLASTICEXPLOSIVE.ingot(), 4), new OreDictStack(CU.plate(), 4), new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 20), new OreDictStack(AL.ingot(), 1)},500); //8 HE (To use 16 PBX ingots) lenses w/ improved bridge-wire detonators, thin aluminum pushers, & duraluminum shell makeRecipe(new ComparableStack(ModItems.gadget_wireing, 1), new AStack[] {new OreDictStack(IRON.plate(), 1), new ComparableStack(ModItems.wire_gold, 12), },100); makeRecipe(new ComparableStack(ModItems.gadget_core, 1), new AStack[] {new OreDictStack(PU239.nugget(), 7), new OreDictStack(U238.nugget(), 3), },200); makeRecipe(new ComparableStack(ModItems.boy_shielding, 1), new AStack[] {new OreDictStack(OreDictManager.getReflector(), 12), new OreDictStack(STEEL.plate(), 4), },150); @@ -382,7 +383,6 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModItems.boy_bullet, 1), new AStack[] {new OreDictStack(U235.nugget(), 9), },100); makeRecipe(new ComparableStack(ModItems.boy_propellant, 1), new AStack[] {new ComparableStack(ModItems.cordite, 8), new OreDictStack(IRON.plate(), 8), new OreDictStack(AL.plate(), 4), new ComparableStack(ModItems.wire_red_copper, 4), },100); makeRecipe(new ComparableStack(ModItems.boy_igniter, 1), new AStack[] {new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 1), new OreDictStack(AL.plate(), 6), new OreDictStack(STEEL.plate(), 1), new ComparableStack(ModItems.circuit_red_copper, 1), new ComparableStack(ModItems.wire_red_copper, 3), },150); //HE for gating purposes - makeRecipe(new ComparableStack(ModItems.man_explosive, 1), new AStack[] {new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 2), new OreDictStack(ANY_PLASTICEXPLOSIVE.ingot(), 1), new OreDictStack(STEEL.plate(), 2), new OreDictStack(TI.plate(), 1), new ComparableStack(ModItems.wire_red_copper, 3), },200); makeRecipe(new ComparableStack(ModItems.man_igniter, 1), new AStack[] {new OreDictStack(STEEL.plate(), 6), new ComparableStack(ModItems.circuit_red_copper, 1), new ComparableStack(ModItems.wire_red_copper, 9), },150); makeRecipe(new ComparableStack(ModItems.man_core, 1), new AStack[] {new OreDictStack(PU239.nugget(), 8), new OreDictStack(BE.nugget(), 2), },250); makeRecipe(new ComparableStack(ModItems.mike_core, 1), new AStack[] {new OreDictStack(U238.nugget(), 24), new OreDictStack(PB.ingot(), 6), },250); @@ -775,17 +775,6 @@ public class AssemblerRecipes { new ComparableStack(ModItems.circuit_tantalium, 16) }, 100); - makeRecipe(new ComparableStack(ModBlocks.machine_deuterium_extractor, 1), new AStack[] { - new ComparableStack(ModItems.deuterium_filter, 1), - new ComparableStack(ModItems.sulfur, 12), - new OreDictStack(STEEL.plate(), 4), - new OreDictStack(AL.plate(), 2), - new ComparableStack(ModBlocks.deco_pipe_quad, 4), - new ComparableStack(ModItems.board_copper, 1), - new ComparableStack(ModItems.turbine_titanium, 2), - new ComparableStack(ModItems.circuit_aluminium, 2) - }, 100); - makeRecipe(new ComparableStack(ModBlocks.machine_assemfac, 1), new AStack[] { new OreDictStack(STEEL.ingot(), 48), new OreDictStack(TCALLOY.ingot(), 8), 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 9f79840e7..b6476112f 100644 --- a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java @@ -202,6 +202,18 @@ public class AnvilRecipes { new ComparableStack(Items.feather, 24) }, new AnvilOutput(new ItemStack(ModItems.wings_limp))).setTier(2)); + constructionRecipes.add(new AnvilConstructionRecipe( + new AStack[] { + new ComparableStack(ModItems.sulfur, 8), + new OreDictStack(STEEL.plate(), 4), + new OreDictStack(AL.plate(), 2), + new ComparableStack(ModItems.hull_small_steel, 4), + new ComparableStack(ModItems.board_copper, 1), + new ComparableStack(ModItems.turbine_titanium, 1), + new ComparableStack(ModItems.circuit_aluminium, 1) + }, + new AnvilOutput(new ItemStack(ModBlocks.machine_deuterium_extractor))).setTier(2)); + constructionRecipes.add(new AnvilConstructionRecipe( new AStack[] { new ComparableStack(ModItems.deuterium_filter, 2), diff --git a/src/main/java/com/hbm/items/ItemCustomLore.java b/src/main/java/com/hbm/items/ItemCustomLore.java index 4a845ca3f..883be3ee6 100644 --- a/src/main/java/com/hbm/items/ItemCustomLore.java +++ b/src/main/java/com/hbm/items/ItemCustomLore.java @@ -23,7 +23,9 @@ public class ItemCustomLore extends Item { @Override public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - if(MainRegistry.polaroidID == 11) { + boolean p11 = !I18nUtil.resolveKey(this.getUnlocalizedName() + ".desc.P11").equals(this.getUnlocalizedName() + ".desc.P11"); + + if(MainRegistry.polaroidID == 11 && p11) { String unlocP11 = this.getUnlocalizedName() + ".desc.P11"; String locP11 = I18nUtil.resolveKey(unlocP11); diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 9ee90e9e7..382b319b2 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -774,8 +774,8 @@ public class ModItems { public static Item piston_selenium; - public static Item crystal_energy; - public static Item pellet_coolant; + //public static Item crystal_energy; + //public static Item pellet_coolant; public static Item rune_blank; public static Item rune_isa; @@ -1810,8 +1810,9 @@ public class ModItems { public static Item flame_politics; public static Item flame_opinion; - public static Item gadget_explosive; - public static Item gadget_explosive8; + //public static Item gadget_explosive; + public static Item early_explosive_lenses; + public static Item explosive_lenses; public static Item gadget_wireing; public static Item gadget_core; public static Item boy_igniter; @@ -1819,8 +1820,7 @@ public class ModItems { public static Item boy_bullet; public static Item boy_target; public static Item boy_shielding; - public static Item man_explosive; - public static Item man_explosive8; + //public static Item man_explosive; public static Item man_igniter; public static Item man_core; public static Item mike_core; @@ -3202,9 +3202,9 @@ public class ModItems { piston_selenium = new Item().setUnlocalizedName("piston_selenium").setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":piston_selenium"); - crystal_energy = new ItemCustomLore().setUnlocalizedName("crystal_energy").setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":crystal_energy"); - pellet_coolant = new ItemCustomLore().setUnlocalizedName("pellet_coolant").setMaxDamage(41400).setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":pellet_coolant"); - + //crystal_energy = new ItemCustomLore().setUnlocalizedName("crystal_energy").setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":crystal_energy"); + //pellet_coolant = new ItemCustomLore().setUnlocalizedName("pellet_coolant").setMaxDamage(41400).setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":pellet_coolant"); + rune_blank = new ItemCustomLore().setUnlocalizedName("rune_blank").setCreativeTab(MainRegistry.partsTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":rune_blank"); rune_isa = new ItemCustomLore().setUnlocalizedName("rune_isa").setCreativeTab(MainRegistry.partsTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":rune_isa"); rune_dagaz = new ItemCustomLore().setUnlocalizedName("rune_dagaz").setCreativeTab(MainRegistry.partsTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":rune_dagaz"); @@ -4538,27 +4538,27 @@ public class ModItems { flame_politics = new ItemCustomLore().setUnlocalizedName("flame_politics").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":flame_politics"); flame_opinion = new ItemCustomLore().setUnlocalizedName("flame_opinion").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":flame_opinion"); - gadget_explosive = new Item().setUnlocalizedName("gadget_explosive").setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":gadget_explosive"); - gadget_explosive8 = new ItemGadget().setUnlocalizedName("gadget_explosive8").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":gadget_explosive8"); - gadget_wireing = new ItemGadget().setUnlocalizedName("gadget_wireing").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":gadget_wireing"); - gadget_core = new ItemGadget().setUnlocalizedName("gadget_core").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":gadget_core"); + //gadget_explosive = new Item().setUnlocalizedName("gadget_explosive").setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":gadget_explosive"); + early_explosive_lenses = new ItemCustomLore().setUnlocalizedName("early_explosive_lenses").setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":gadget_explosive8"); + explosive_lenses = new ItemCustomLore().setUnlocalizedName("explosive_lenses").setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":man_explosive8"); + gadget_wireing = new Item().setUnlocalizedName("gadget_wireing").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":gadget_wireing"); + gadget_core = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("gadget_core").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":gadget_core"); - boy_igniter = new ItemBoy().setUnlocalizedName("boy_igniter").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":boy_igniter"); - boy_propellant = new ItemBoy().setUnlocalizedName("boy_propellant").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":boy_propellant"); - boy_bullet = new ItemBoy().setUnlocalizedName("boy_bullet").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":boy_bullet"); - boy_target = new ItemBoy().setUnlocalizedName("boy_target").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":boy_target"); - boy_shielding = new ItemBoy().setUnlocalizedName("boy_shielding").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":boy_shielding"); + boy_igniter = new Item().setUnlocalizedName("boy_igniter").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":boy_igniter"); + boy_propellant = new Item().setUnlocalizedName("boy_propellant").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":boy_propellant"); + boy_bullet = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("boy_bullet").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":boy_bullet"); + boy_target = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("boy_target").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":boy_target"); + boy_shielding = new Item().setUnlocalizedName("boy_shielding").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":boy_shielding"); - man_explosive = new Item().setUnlocalizedName("man_explosive").setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":man_explosive"); - man_explosive8 = new ItemManMike().setUnlocalizedName("man_explosive8").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":man_explosive8"); - man_igniter = new ItemMan().setUnlocalizedName("man_igniter").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":man_igniter"); - man_core = new ItemManMike().setUnlocalizedName("man_core").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":man_core"); + //man_explosive = new Item().setUnlocalizedName("man_explosive").setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":man_explosive"); + man_igniter = new Item().setUnlocalizedName("man_igniter").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":man_igniter"); + man_core = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("man_core").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":man_core"); - mike_core = new ItemMike().setUnlocalizedName("mike_core").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":mike_core"); - mike_deut = new ItemMike().setUnlocalizedName("mike_deut").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab).setContainerItem(ModItems.tank_steel).setTextureName(RefStrings.MODID + ":mike_deut"); - mike_cooling_unit = new ItemMike().setUnlocalizedName("mike_cooling_unit").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":mike_cooling_unit"); + mike_core = new Item().setUnlocalizedName("mike_core").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":mike_core"); + mike_deut = new Item().setUnlocalizedName("mike_deut").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab).setContainerItem(ModItems.tank_steel).setTextureName(RefStrings.MODID + ":mike_deut"); + mike_cooling_unit = new Item().setUnlocalizedName("mike_cooling_unit").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":mike_cooling_unit"); - tsar_core = new ItemTsar().setUnlocalizedName("tsar_core").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":tsar_core"); + tsar_core = new Item().setUnlocalizedName("tsar_core").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":tsar_core"); fleija_igniter = new ItemFleija().setUnlocalizedName("fleija_igniter").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":fleija_igniter"); fleija_propellant = new ItemFleija().setUnlocalizedName("fleija_propellant").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":fleija_propellant"); @@ -6664,8 +6664,8 @@ public class ModItems { GameRegistry.registerItem(arc_electrode_desh, arc_electrode_desh.getUnlocalizedName()); //Particle Collider Items - GameRegistry.registerItem(crystal_energy, crystal_energy.getUnlocalizedName()); - GameRegistry.registerItem(pellet_coolant, pellet_coolant.getUnlocalizedName()); + //GameRegistry.registerItem(crystal_energy, crystal_energy.getUnlocalizedName()); + //GameRegistry.registerItem(pellet_coolant, pellet_coolant.getUnlocalizedName()); //Particle Collider Fuel GameRegistry.registerItem(part_lithium, part_lithium.getUnlocalizedName()); @@ -7834,10 +7834,13 @@ public class ModItems { //Minecarts GameRegistry.registerItem(cart, cart.getUnlocalizedName()); - + + //High Explosive Lenses + GameRegistry.registerItem(early_explosive_lenses, early_explosive_lenses.getUnlocalizedName()); + GameRegistry.registerItem(explosive_lenses, explosive_lenses.getUnlocalizedName()); + //The Gadget - GameRegistry.registerItem(gadget_explosive, gadget_explosive.getUnlocalizedName()); - GameRegistry.registerItem(gadget_explosive8, gadget_explosive8.getUnlocalizedName()); + //GameRegistry.registerItem(gadget_explosive, gadget_explosive.getUnlocalizedName()); GameRegistry.registerItem(gadget_wireing, gadget_wireing.getUnlocalizedName()); GameRegistry.registerItem(gadget_core, gadget_core.getUnlocalizedName()); @@ -7849,8 +7852,7 @@ public class ModItems { GameRegistry.registerItem(boy_igniter, boy_igniter.getUnlocalizedName());; //Fat Man - GameRegistry.registerItem(man_explosive, man_explosive.getUnlocalizedName()); - GameRegistry.registerItem(man_explosive8, man_explosive8.getUnlocalizedName()); + //GameRegistry.registerItem(man_explosive, man_explosive.getUnlocalizedName()); GameRegistry.registerItem(man_igniter, man_igniter.getUnlocalizedName()); GameRegistry.registerItem(man_core, man_core.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/bomb/ItemBoy.java b/src/main/java/com/hbm/items/bomb/ItemBoy.java deleted file mode 100644 index a857ce098..000000000 --- a/src/main/java/com/hbm/items/bomb/ItemBoy.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.hbm.items.bomb; - -import java.util.List; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; - -public class ItemBoy extends Item { - - @Override - public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) - { - list.add("Used in:"); - list.add("Little Boy"); - super.addInformation(itemstack, player, list, bool); - } - -} diff --git a/src/main/java/com/hbm/items/bomb/ItemGadget.java b/src/main/java/com/hbm/items/bomb/ItemGadget.java deleted file mode 100644 index ff7bf9549..000000000 --- a/src/main/java/com/hbm/items/bomb/ItemGadget.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.hbm.items.bomb; - -import java.util.List; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; - -public class ItemGadget extends Item { - - @Override - public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) - { - list.add("Used in:"); - list.add("The Gadget"); - super.addInformation(itemstack, player, list, bool); - } - -} diff --git a/src/main/java/com/hbm/items/bomb/ItemMan.java b/src/main/java/com/hbm/items/bomb/ItemMan.java deleted file mode 100644 index 1d51867a8..000000000 --- a/src/main/java/com/hbm/items/bomb/ItemMan.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.hbm.items.bomb; - -import java.util.List; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; - -public class ItemMan extends Item { - - @Override - public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) - { - list.add("Used in:"); - list.add("Fat Man"); - super.addInformation(itemstack, player, list, bool); - } - -} diff --git a/src/main/java/com/hbm/items/bomb/ItemManMike.java b/src/main/java/com/hbm/items/bomb/ItemManMike.java deleted file mode 100644 index 52bfa5616..000000000 --- a/src/main/java/com/hbm/items/bomb/ItemManMike.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.hbm.items.bomb; - -import java.util.List; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; - -public class ItemManMike extends Item { - - @Override - public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) - { - list.add("Used in:"); - list.add("Fat Man"); - list.add("Ivy Mike"); - list.add("Tsar Bomba"); - super.addInformation(itemstack, player, list, bool); - } - -} diff --git a/src/main/java/com/hbm/items/bomb/ItemMike.java b/src/main/java/com/hbm/items/bomb/ItemMike.java deleted file mode 100644 index 29411e724..000000000 --- a/src/main/java/com/hbm/items/bomb/ItemMike.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.hbm.items.bomb; - -import java.util.List; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; - -public class ItemMike extends Item { - - @Override - public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) - { - list.add("Used in:"); - list.add("Ivy Mike"); - } - -} diff --git a/src/main/java/com/hbm/items/bomb/ItemTsar.java b/src/main/java/com/hbm/items/bomb/ItemTsar.java deleted file mode 100644 index 57ac1804e..000000000 --- a/src/main/java/com/hbm/items/bomb/ItemTsar.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.hbm.items.bomb; - -import java.util.List; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; - -public class ItemTsar extends Item { - - @Override - public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) - { - list.add("Used in:"); - list.add("Tsar Bomba"); - super.addInformation(itemstack, player, list, bool); - } - -} diff --git a/src/main/java/com/hbm/items/special/ItemStarterKit.java b/src/main/java/com/hbm/items/special/ItemStarterKit.java index 632119c6f..1890a002d 100644 --- a/src/main/java/com/hbm/items/special/ItemStarterKit.java +++ b/src/main/java/com/hbm/items/special/ItemStarterKit.java @@ -230,10 +230,10 @@ public class ItemStarterKit extends Item { if(this == ModItems.gadget_kit) { player.inventory.addItemStackToInventory(new ItemStack(Item.getItemFromBlock(ModBlocks.nuke_gadget), 1)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.gadget_explosive8, 1)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.gadget_explosive8, 1)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.gadget_explosive8, 1)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.gadget_explosive8, 1)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.early_explosive_lenses, 1)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.early_explosive_lenses, 1)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.early_explosive_lenses, 1)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.early_explosive_lenses, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.gadget_wireing, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.gadget_core, 1)); @@ -255,10 +255,10 @@ public class ItemStarterKit extends Item { if(this == ModItems.man_kit) { player.inventory.addItemStackToInventory(new ItemStack(Item.getItemFromBlock(ModBlocks.nuke_man), 1)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.man_explosive8, 1)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.man_explosive8, 1)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.man_explosive8, 1)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.man_explosive8, 1)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.early_explosive_lenses, 1)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.early_explosive_lenses, 1)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.early_explosive_lenses, 1)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.early_explosive_lenses, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.man_igniter, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.man_core, 1)); @@ -268,10 +268,10 @@ public class ItemStarterKit extends Item { if(this == ModItems.mike_kit) { player.inventory.addItemStackToInventory(new ItemStack(Item.getItemFromBlock(ModBlocks.nuke_mike), 1)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.man_explosive8, 1)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.man_explosive8, 1)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.man_explosive8, 1)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.man_explosive8, 1)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.explosive_lenses, 1)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.explosive_lenses, 1)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.explosive_lenses, 1)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.explosive_lenses, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.man_core, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.mike_core, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.mike_deut, 1)); @@ -283,10 +283,10 @@ public class ItemStarterKit extends Item { if(this == ModItems.tsar_kit) { player.inventory.addItemStackToInventory(new ItemStack(Item.getItemFromBlock(ModBlocks.nuke_tsar), 1)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.man_explosive8, 1)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.man_explosive8, 1)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.man_explosive8, 1)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.man_explosive8, 1)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.explosive_lenses, 1)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.explosive_lenses, 1)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.explosive_lenses, 1)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.explosive_lenses, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.man_core, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.tsar_core, 1)); diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index 74b8d2d49..d85a0c8b1 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -868,7 +868,7 @@ public class MainRegistry { achBismuth = new Achievement("achievement.bismuth", "bismuth", 11, -6, ModItems.ingot_bismuth, achRBMK).initIndependentStat().registerStat(); achBreeding = new Achievement("achievement.breeding", "breeding", 7, -6, ModItems.ingot_am_mix, achRBMK).initIndependentStat().setSpecial().registerStat(); achFusion = new Achievement("achievement.fusion", "fusion", 13, -7, new ItemStack(ModBlocks.iter), achBismuth).initIndependentStat().setSpecial().registerStat(); - achMeltdown = new Achievement("achievement.meltdown", "meltdown", 15, -7, ModItems.crystal_energy, achFusion).initIndependentStat().setSpecial().registerStat(); + achMeltdown = new Achievement("achievement.meltdown", "meltdown", 15, -7, ModItems.powder_balefire, achFusion).initIndependentStat().setSpecial().registerStat(); achRedBalloons = new Achievement("achievement.redBalloons", "redBalloons", 11, 0, ModItems.missile_nuclear, achPolymer).initIndependentStat().setSpecial().registerStat(); achManhattan = new Achievement("achievement.manhattan", "manhattan", 11, -4, new ItemStack(ModBlocks.nuke_boy), achPolymer).initIndependentStat().setSpecial().registerStat(); @@ -1116,6 +1116,12 @@ public class MainRegistry { ignoreMappings.add("hbm:item.thermo_unit_empty"); ignoreMappings.add("hbm:item.thermo_unit_endo"); ignoreMappings.add("hbm:item.thermo_unit_exo"); + ignoreMappings.add("hbm:item.gadget_explosive"); + ignoreMappings.add("hbm:item.man_explosive"); + ignoreMappings.add("hbm:item.crystal_energy"); + ignoreMappings.add("hbm:item.pellet_coolant"); + remapItems.put("hbm:item.gadget_explosive8", ModItems.early_explosive_lenses); + remapItems.put("hbm:item.man_explosive8", ModItems.explosive_lenses); for(MissingMapping mapping : event.get()) { diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeGadget.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeGadget.java index adcb48d52..4777be282 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeGadget.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeGadget.java @@ -91,7 +91,7 @@ public class TileEntityNukeGadget extends TileEntity implements ISidedInventory @Override public int getInventoryStackLimit() { - return 64; + return 1; } @Override @@ -196,7 +196,7 @@ public class TileEntityNukeGadget extends TileEntity implements ISidedInventory }*/ public boolean exp1() { - if(this.slots[1] != null && this.slots[1].getItem() == ModItems.gadget_explosive8) + if(this.slots[1] != null && this.slots[1].getItem() == ModItems.early_explosive_lenses) { return true; } @@ -205,7 +205,7 @@ public class TileEntityNukeGadget extends TileEntity implements ISidedInventory } public boolean exp2() { - if(this.slots[2] != null && this.slots[2].getItem() == ModItems.gadget_explosive8) + if(this.slots[2] != null && this.slots[2].getItem() == ModItems.early_explosive_lenses) { return true; } @@ -214,7 +214,7 @@ public class TileEntityNukeGadget extends TileEntity implements ISidedInventory } public boolean exp3() { - if(this.slots[3] != null && this.slots[3].getItem() == ModItems.gadget_explosive8) + if(this.slots[3] != null && this.slots[3].getItem() == ModItems.early_explosive_lenses) { return true; } @@ -223,7 +223,7 @@ public class TileEntityNukeGadget extends TileEntity implements ISidedInventory } public boolean exp4() { - if(this.slots[4] != null && this.slots[4].getItem() == ModItems.gadget_explosive8) + if(this.slots[4] != null && this.slots[4].getItem() == ModItems.early_explosive_lenses) { return true; } diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeMan.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeMan.java index 8ec6010d9..0ddb12425 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeMan.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeMan.java @@ -91,7 +91,7 @@ public class TileEntityNukeMan extends TileEntity implements ISidedInventory { @Override public int getInventoryStackLimit() { - return 64; + return 1; } @Override @@ -170,7 +170,7 @@ public class TileEntityNukeMan extends TileEntity implements ISidedInventory { } public boolean exp1() { - if(this.slots[1] != null && this.slots[1].getItem() == ModItems.man_explosive8) + if(this.slots[1] != null && this.slots[1].getItem() == ModItems.early_explosive_lenses) { return true; } @@ -179,7 +179,7 @@ public class TileEntityNukeMan extends TileEntity implements ISidedInventory { } public boolean exp2() { - if(this.slots[2] != null && this.slots[2].getItem() == ModItems.man_explosive8) + if(this.slots[2] != null && this.slots[2].getItem() == ModItems.early_explosive_lenses) { return true; } @@ -188,7 +188,7 @@ public class TileEntityNukeMan extends TileEntity implements ISidedInventory { } public boolean exp3() { - if(this.slots[3] != null && this.slots[3].getItem() == ModItems.man_explosive8) + if(this.slots[3] != null && this.slots[3].getItem() == ModItems.early_explosive_lenses) { return true; } @@ -197,7 +197,7 @@ public class TileEntityNukeMan extends TileEntity implements ISidedInventory { } public boolean exp4() { - if(this.slots[4] != null && this.slots[4].getItem() == ModItems.man_explosive8) + if(this.slots[4] != null && this.slots[4].getItem() == ModItems.early_explosive_lenses) { return true; } diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeMike.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeMike.java index f4299b6a4..1a4d07f0f 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeMike.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeMike.java @@ -91,7 +91,7 @@ public class TileEntityNukeMike extends TileEntity implements ISidedInventory { @Override public int getInventoryStackLimit() { - return 64; + return 1; } @Override @@ -172,10 +172,10 @@ public class TileEntityNukeMike extends TileEntity implements ISidedInventory { public boolean isReady() { if(slots[0] != null && slots[1] != null && slots[2] != null && slots[3] != null && slots[4] != null) - if(slots[0].getItem() == ModItems.man_explosive8 && - slots[1].getItem() == ModItems.man_explosive8 && - slots[2].getItem() == ModItems.man_explosive8 && - slots[3].getItem() == ModItems.man_explosive8 && + if(slots[0].getItem() == ModItems.explosive_lenses && + slots[1].getItem() == ModItems.explosive_lenses && + slots[2].getItem() == ModItems.explosive_lenses && + slots[3].getItem() == ModItems.explosive_lenses && slots[4].getItem() == ModItems.man_core) { return true; @@ -187,10 +187,10 @@ public class TileEntityNukeMike extends TileEntity implements ISidedInventory { public boolean isFilled() { if(slots[0] != null && slots[1] != null && slots[2] != null && slots[3] != null && slots[4] != null && slots[5] != null && slots[6] != null && slots[7] != null) - if(slots[0].getItem() == ModItems.man_explosive8 && - slots[1].getItem() == ModItems.man_explosive8 && - slots[2].getItem() == ModItems.man_explosive8 && - slots[3].getItem() == ModItems.man_explosive8 && + if(slots[0].getItem() == ModItems.explosive_lenses && + slots[1].getItem() == ModItems.explosive_lenses && + slots[2].getItem() == ModItems.explosive_lenses && + slots[3].getItem() == ModItems.explosive_lenses && slots[4].getItem() == ModItems.man_core && slots[5].getItem() == ModItems.mike_core && slots[6].getItem() == ModItems.mike_deut && diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeTsar.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeTsar.java index 0975f5817..1df071c68 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeTsar.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeTsar.java @@ -91,7 +91,7 @@ public class TileEntityNukeTsar extends TileEntity implements ISidedInventory { @Override public int getInventoryStackLimit() { - return 64; + return 1; } @Override @@ -172,10 +172,10 @@ public class TileEntityNukeTsar extends TileEntity implements ISidedInventory { public boolean isReady() { if(slots[0] != null && slots[1] != null && slots[2] != null && slots[3] != null && slots[4] != null) - if(slots[0].getItem() == ModItems.man_explosive8 && - slots[1].getItem() == ModItems.man_explosive8 && - slots[2].getItem() == ModItems.man_explosive8 && - slots[3].getItem() == ModItems.man_explosive8 && + if(slots[0].getItem() == ModItems.explosive_lenses && + slots[1].getItem() == ModItems.explosive_lenses && + slots[2].getItem() == ModItems.explosive_lenses && + slots[3].getItem() == ModItems.explosive_lenses && slots[4].getItem() == ModItems.man_core) { return true; @@ -187,10 +187,10 @@ public class TileEntityNukeTsar extends TileEntity implements ISidedInventory { public boolean isFilled() { if(slots[0] != null && slots[1] != null && slots[2] != null && slots[3] != null && slots[4] != null && slots[5] != null) - if(slots[0].getItem() == ModItems.man_explosive8 && - slots[1].getItem() == ModItems.man_explosive8 && - slots[2].getItem() == ModItems.man_explosive8 && - slots[3].getItem() == ModItems.man_explosive8 && + if(slots[0].getItem() == ModItems.explosive_lenses && + slots[1].getItem() == ModItems.explosive_lenses && + slots[2].getItem() == ModItems.explosive_lenses && + slots[3].getItem() == ModItems.explosive_lenses && slots[4].getItem() == ModItems.man_core && slots[5].getItem() == ModItems.tsar_core) { diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 33e0cd4bc..b9dd2951c 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -571,6 +571,11 @@ desc.gui.assembler.warning=§cError:§r This machine requires an assembly templa desc.gui.chemplant.warning=§cError:§r This machine requires an chemistry template! desc.gui.gasCent.enrichment=§2Enrichment§r$Uranium enrichment requires cascades.$Two-centrifuge cascades will give$uranium fuel, four-centrifuge cascades$will give total separation. desc.gui.gasCent.output=§6Fluid Transfer§r$Fluid can be transferred to another centrifuge$via the output port for further processing. +desc.gui.nukeBoy.desc=§1Requires:§r$ * Neutron Shielding$ * U235 Projectile$ * Subcritical U235 Target$ * Propellant$ * Bomb Igniter +desc.gui.nukeGadget.desc=§1Requires:§r$ * 4 Arrays of First-Generation$ High-Explosive Lenses$ * Heavy Plutonium Core$ * Wiring +desc.gui.nukeMan.desc=§1Requires:§r$ * 4 Arrays of First-Generation$ High-Explosive Lenses$ * Plutonium Core$ * Bomb Firing Unit +desc.gui.nukeMike.desc=§1Requires:§r$ * 4 Arrays of High-Explosive Lenses$ * Plutonium Core$ * Deuterium Cooling Unit$ * Uranium Coated Deuterium Tank$ * Deuterium Tank +desc.gui.nukeTsar.desc=§1Requires:§r$ * 4 Arrays of High-Explosive Lenses$ * Plutonium Core$§9Optional:§r$ * Tsar Bomba Core desc.gui.radiolysis.desc=§9Description§r$This RTG is more efficient then others, and$comes equipped with a radiolysis chamber for$cracking and sterilization. desc.gui.rtgBFurnace.desc=Requires at least 15 heat to process$The more heat on top of that, the faster it runs$Heat going over maximum speed will have no effect$Short-lived pellets may decay desc.gui.rtg.heat=§eCurrent heat level: %s @@ -970,7 +975,7 @@ item.ams_core_thingy.name=Thingy (AMS/DFC Core) item.ams_core_wormhole.name=Tiny Wormhole (AMS/DFC Core) item.ams_focus_blank.name=Blank Stabilizer Focus item.ams_focus_booster.name=Boosting Stabilizer Focus -item.ams_focus_booster.name=Weaker restriction field and core energy injection:$More heat generation, extra energy. +item.ams_focus_booster.desc=Weaker restriction field and core energy injection:$More heat generation, extra energy. item.ams_focus_limiter.name=Limiting Stabilizer Focus item.ams_focus_limiter.desc=Maximum performance for restriction field:$Standard cooling, no energy bonus. item.ams_lens.name=Stabilizer Lens @@ -1556,6 +1561,8 @@ item.dynosphere_euphemium_charged.name=Euphemium Dynosphere (Charged) item.dynosphere_schrabidium.name=Schrabidium Dynosphere item.dynosphere_schrabidium_charged.name=Schrabidium Dynosphere (Charged) item.dysfunctional_reactor.name=Dysfunctional Nuclear Reactor +item.early_explosive_lenses.name=Array of First-Generation High-Explosive Lenses +item.early_explosive_lenses.desc=Assembly of 8 high-explosive lenses with an aluminium$pusher, duraluminium shell, and bridgewire detonators. item.egg_balefire.name=Balefire Egg item.egg_balefire.desc=What kind of bird lays a radioactive egg? item.egg_balefire_shard.name=Balefire Shard @@ -1572,6 +1579,8 @@ item.euphemium_kit.name=Euphemium Kit item.euphemium_legs.name=Euphemium Leggings item.euphemium_plate.name=Euphemium Chestplate item.euphemium_stopper.name=Stopper +item.explosive_lenses.name=Array of High-Explosive Lenses +item.explosive_lenses.desc=Assembly of 8 PBX lenses with a thin$aluminium pusher, duraluminium shell, and$miniaturized bridgewire detonators. item.fabsols_vodka.name=Fabsol's Vodka item.factory_core_advanced.name=Advanced Factory Energy Cluster item.factory_core_titanium.name=Basic Factory Energy Cluster @@ -1642,9 +1651,8 @@ item.fusion_shield_chlorophyte.name=Chlorophyte-Metallized Fusion Reactor Blanke item.fusion_shield_desh.name=Desh Fusion Reactor Blanket item.fusion_shield_tungsten.name=Tungsten Fusion Reactor Blanket item.fusion_shield_vaporwave.name=Vaporwave Fusion Reactor Blanket -item.gadget_core.name=Plutonium Core +item.gadget_core.name=Large Plutonium Core item.gadget_explosive.name=First Generation Explosive Lens -item.gadget_explosive8.name=Bundle of First Generation Implosion Propellant item.gadget_kit.name=The Gadget Kit item.gadget_wireing.name=Wiring item.gas_biogas.name=Biogas Tank @@ -2050,8 +2058,7 @@ item.magnet_dee.name=Dee Magnets item.magnetron.name=Magnetron item.man_core.name=Plutonium Core item.man_explosive.name=Explosive Lens -item.man_explosive8.name=Bundle of Implosion Propellant -item.man_igniter.name=Bomb Igniter +item.man_igniter.name=Bomb Firing Unit item.man_kit.name=Fat Man Kit item.marshmallow.name=Marshmallow on a Stick item.mask_of_infamy.name=Mask of Infamy diff --git a/src/main/resources/assets/hbm/textures/gui/weapon/fatManSchematic.png b/src/main/resources/assets/hbm/textures/gui/weapon/fatManSchematic.png index 8eb62ae2e858d58ca2c1c8b9467cb66e9bc88c7f..631b0cd719e47539801592b86262fd8b18ca63af 100644 GIT binary patch delta 8872 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

    >KIBh}U%HaJzFx@z_j` zOnsBg@y>0^=gPmu?v()ug!hWo%xa{jv2lA>;P?qo*+F;>; z8a7AlH8yJw%+Ziz6;*H&m=1p?-*@EBB6yMk*hfN)nVG7XcIHqna+@_sMHHNq>Y#Rx z{dcO{oCV(N9@@uM0{nT~v*UaK$qqb8qP87o^T`aph0i*& zpv%IiE05jAb`1l(O25QxTyL*||FJz6xhTf!#` zdV=^5XQ605`mie=&6h;&Kn05`y3B~jg?$44ZBum!kO z0u)N+3Yno)B1jebQD*evACfMKNMPa9gE9M{c>*~1ab7$wGd3C|kqES+*l$IVR{l_C zIJz-U(04@AOW7tEJJiM&_3jV|mI^|9M1rMR;XUb5!Dv)y{KKUo;cwtQtdcyYtVX*e zK|3>}B=J!fB~jtq1VcY+4{d#Wn>AX$HA>_FLql0OR1((__>5K( zjO;HfA;;P?nv}>vhQ=mR;dFr_HiJ~i{wg?dfO*q0w%t5708+ulnVRYl-j>P~e;%Z2 z_2NRRHC*PVcJ2tRci0N6UznnZYrp zn#Kn)t(R&-g!tkW49!n56*X}28Jfm0qzs#Js;Y+)+s4$c4?5s_fwKFw(}fLUvlTTV zVg<9uGWI3w0!`R{c^3)pyph7&Uv(oycz`t&z{B>jhFb*}7gcu8g#*~)WlfaW_Nt~0 zLBbj>Ww*am_j>Wm%S}|-mdZg$#nh^Wr!V(B%7EceG=AmeE&&P6JU}xBz&VRGL}MF6 zFQzhtxAU-)Gu>9Mav7q@bCDscTp2N{mId&H8kH*IK$S{~2w9fU*FS+CI$Cz3@hQm6 zsxSZu0hs2*h8JxvDBseO!$>Q#FF$c=L_0sc$WBpSUal3T6*1wn_VnpUyr=f`snMcD zyvK309?mK+KfSP}etUU2eAB|P;#Fb!NG*Hb{hwuD(6*b)vv6ZkmfYpSR&}HI&^M4iufLNFTs;tsAoLj%>SmMIZlo*3bA%WAqYYsIv;iG(CNHQ5N;Xi%dES#O~II5kCx?|49) zKTy;CNDQ0Q-FLi*hmlh?gH*X$c};|{oik2bE3E3a*+KHA0BI*w{}<5>BSbr&*nJZR zK$NRuTH&Irc&tGzRQXER6#KK9VAG5EJvNGYWNZ`*L|fsR%ix9lPHcvUq|5M8qU{b{ z(;LR1c&ys-F>3uD17q#;+eF0C-kI^2AS(Y>Dh~Zbr+?J^w)RXfX<%iP09$PdJ>G>-G9!q>whJmtu77< z9-%>A=t02~0(f!}%$rxx(A@Fh$?&UjU<4f_OcXEtE`WV$U_kFAB$h@HF&Omu^m+5<)0f&<4c!bjh&$`S^e()Lf@MSfA4*9cm0iqmXx;TXP%CYZJ)Cw z>&jkhi^kCFW*NMWs|KL|t3E?3?)!YHQJrzZ44t^Je3fbqM%@vEr1U}y|6r{@4szUhs`ABNiqxvXa}zhOamX%AcXs3BZT~u=6xLzkm$jZGe%&AqTa!( zOmaR--#=e}ia7m`q3-)Wq#A;`ih6r1uH^jJ1Utp+slq%|LDSh(qOap%>JWR1T_;7k zIdAjuz|!bym<+XM#Y*P9F10`O*kzu5+j$JgVJ&hE1S(M3bn6R?Du zjIq}Qqn5u;3J4%N{>_J*ZQHkr_CBidSh<&|8a)-%S7Zibpy*!dz}^|HCDw%&Yn{E~ z^u8Pwk_t}h0~#2A2TI(u*9?2Rb{#cTjS8J>Jq{T{_UOWWouAeEdmD2c0p7iQ4&0Me z@742T8=ouM#(zB$m17L#qe5EkkH6p9`w0wCn{9V-R_*+cuv$ z=9Ht(w^U@t{29o1_6mKxn9mNR-dud;-S267JDz>YcpKsQqHqaZ@kxIv`0MBfmtD*@ z#`tGNCqXs5zaP`T-=w|k+Et^&pZ1}T|{D~1< z>W8Vu6TQbl57V zq(2q3Y6c*|Pq5Jxf2%!A3^P1)BDl8%)EFvty%Da*k{@)dNqtuNudhYf<&#k=drVQE2O2`t=y6SFHS8DIgP005lcbbP8s-n8N5 z42nARt4xZcE_?KfPbor~M4y@tae2RGE6h`jGUa{! zr-Zsr7@o`)Q+SsEFFdqIxQR9#M}jvtbWQm4WEinxRAv}R;txZ(gTf2ie{*musJ{)v zQ}|35uBw3108gfgI($f>lp&l?hTwiUtGF!<;4J`a)fV2#S?@_R$>D}0011!G~!BnvTDi7WBSl(l-u0@s-~%S^tbF7 z8AObp#-c2Ax$(Laa>>Hj5@?`F(%blWnUq7MUcSNXrqjBCI^ zxK&Q^nHoq8q~7cg$VfFFNlY2J9LQ{D zhSeLGxKuSjz`&wp2+^(mSTVL&#G|);t9v8aIto~l?M1{_`p=xKH(LV$X#ZmRO2Pa; z^(WI91(z-*rV37oN=)dfKz;3|Q+n*uL>0WW(2FMSce6@_rjNG&bP zI;d^pv-IMpDWDi92CYuyl%8|yN4i*TxV2@H*k|6Ai%Dmjcn z4SoJy8vnHc007Cr2kN1(Oq!HjXow(GPY?}JLF+;Pe?@abT$2i8Si+kF+sPC@Dp>j! zL@1aJ=k4L#f+*kvw?>6S^G+#c!m|6RWfb4`rGmoKZ_X7CKo@haL_Ul3FnNvY?r^G% z%J4B4^~tD}6-?@ak;QakU@nxt%W5{JyTe<=pb^7dL~R2{VweE==`FK=nEo=^h- zugM`qz=&k)QQ+oV$e_pu69g_(lC3u?!<&;lD8rqTLi0n*TM%1GlWe~ zLk&+}&P=_8P5D~U-AJBB`$GMEEvDR-(tKe?+_zf6pct(rFp@D^xnV>Z{+G_snPXqH zuN#a?W%@?43N!_V;ay6xyVdyytLN(rL%G?cyP4k8!sv{_TBX1i(tPLWp21GzM#SCb zd|)ssnBlY=Oe)fN`lW?F)WXniM#{kW1al6NzDsnfP_(a}UxbCPokf$ch4C}kW*aKb z^Oc|w1@Ew zx41F2)`$gLVPZjN$Q{6w5JJ1WTldHY0K(pSM*#^Etuet57(ot!(}lg2;o-8;0t2}k zbimFOHspN$g|?$0!lHU=uoEzO+yuyl(gDX*HJIqRAR{3r#6|T+U?-6V0~?pBz9EKqPxvns1J!QE2OsJntcRN$3|wv} zujDG4wXSTyOio(VV+1L?;iy1P)7gvwQD%BE5{-0$)q;)Y-go6247}mMXyf|b!dQ)n91F$rdTkDo5{=i=xj!jedc;D4Jf)mEx{=> z?}PR}rZDHK4U8xtD%+*HeR@6=lS^6N9=UK)9mmgL04osyARH;O$tq5SiDJoknA4er zkilmQPZr%|4Sx&SWC}-^>}H4QfL)4`lTBif$q0yx2rVYof5${<%dp~}6+lE}B@O_B z1t5vHG0t_!EO#D?=km|xEibOvL2(%8^1#c>%TaFrxj@XbrMlYmcBG}cVmH_6c0^#e z1H)BbUd=z$;a*;jxoI(J#gDA=ofgbU?LKkE?qIFJ9O@Zk_f88Y<3PFX4tipUE;^7* zYN+aq7U9c256rzQ`w0tB+8K$a(1Q126W?5gwip%rSZ&E6pIO5(@e~-I48epXJSG4D z`zi08Teb5scRqV%!<30l6{d-~fn2IEA@eqF{y!Tm0EFr;0753|2o|{e&yF-Vb_5nP zg^@h$PWJu+;^ivBm^C{L0Rg9YL%^W2hN&BGy|JD>ImAh@kHKYx6=Ts@krRyn2=Q+1JlT2}GpQ0-WaB1PdGoL9ttHZj=_(Mszro%_@e*ge! z<&dbT4PjAnN$H2O@=p{oKJl-FgoNAzPcUsr$iLT=PJ`Paz|CvQ4I#uT@ID$9`->zMdrTEIvm5!L zE<;PA&)j%TtSSqYlRm!If5r#-+oEG7gnU3@gyp6s;#~;=S6fG`V_l^Ue;|0Fmdvm( z6eQ`Xi{Dbw5ckFMJ>hsCrAFrTqhqmDpWL<)T=AbK&e>I&PqkH7wUC!Y*;_8UREyByf&XE6eWYI2qfYYP?@hO{gN07 zB-B!y5&Ij{L?oYHUx43(BPfFNu4UA1z|U&Q*qs?DSXnk`OOd~}ZEgQpi462RH|*nt zwhKbpA!_|p?bVXn;r`0wudnwMfD`iUBiVYf?=N+agEG=ScDqx121jJhJo3vcrRE4# zeI|u2BKi^C=N|FQ!wNC2DmPgs$>=zcB=rcpmDD}DlgX8gdD13tbJldnS$&EHQQ?=S z<5JG!fX`6Y@>f8_N_Zid?@SP_pwOIKa2duc>mopCEP0h)@2m7;H>+b_}P;RQO9M_^2ykqM?6r8t!}N>=6h;#r(N(9 z!q$EHvbt}qKi?(@DL5y!!poPN29nArUzxo;cs?pb>l^1`voHP_^gKHA91LEszyEt6 zf!RPWhv^is7&S~mb%a*vA$W%1ubL%j&IAQ=fP$2s>LsOjUpJ04PkA5v|DDTxH}|}> zYop-veTRe+C1~(^W%-i{#XkKZ3?Jj8z@FVYDgWBCp z1F))3xZkDWYWAHXfmb^LY<>~M>rdl7x%9N3{1WO9PBBEl*u{5-)GSz{hsl{u-fcY* zZ4=L7IB~!YR0gC=xZxrSB^|YPon)UcvgKTSo(*=Ji>X=El~d^%*pqH%*c1iLwL0*t z%F@@_D{-3_(earn@Be*l1H)Nh%+ijiKdN?e!rHtg*vI{DHkgZR!Xv(hoITm6jB`6s$uz>#?xqup09Nwq3>wi4$*zQClIAz5o9lj^g7p4 z2lgM6dzn*|DlGfv=STcJcAMsS2znssHZ@HWz5NCE-kb7?Jp#v49z8>k4t+yNCVT(3 zkhZk^yt-)4*>^TO=ehRLH>APzBcCFt&el}f{Ws({%znHYNX}#IbX^$?q1Q$3*R4~% z{56N}kU+nfP3#*tI32B%=`V7i)wZr9xBV*Saz8G4&ZU{ZZGnVv;GMhnlA3Lbb*uHG z8T&bs^sQ$Eti7tO5qqYHD^W`U+=n(RXMguSN{hw+wp^+;vm?*!;qJ%6EB;j6*gIy6 z=89n&qZIX*kEpPYpGuxICpJciEX@hneofbWw1?w7m|bqQh5KY9cxE^XuXf1@aL^ch zH@qc|@VB%Hwqqt=bW~z?Y*V80yT1o#FRgM^M=v&vQ>dNXK2g8mjIF;XYujAM;>S@< ztrMjOdOTUO&)2_cMV4i<9=wxc1tI3GUd~=ynNLtP$Z@Q$oPzi3*NNB=#(at}DT6sU znalO|$%f6OUCO%gN+op)UWLF_nf$2Qiamqd0nViU%C3}Z^lNyBZ7s= z%E!8P5qq#ytSdU^T6X=Hoq)sQcr%c>&mfId3L<>X2ysBUIr%)eAVai7Vr(a_u50vh zH8*b%;ftsG_Mqte||-M@}pjd=(9B9t$|XBH0VJc1Qh6=1Dd_Od4*MrOy`j8)cHxO!bhNi`P~yQ}IO9;YR4v^de7 z)Mi^UjUEb$gRmBX%m9|u>pZKd(*dSApJN;oOEHD0;vk@o=*o|Uj8(?{z24K80+-%@ z%@B08Bh9;HJy-i9MKX!j7WzDMCr11BDxAUM?b7#yQ@^^o4#FB_Rw=2~@S8HFd-pk1 z_efvA3HaP5MaWG858dCXeW~fSlQ?yfX1gE2&S56FAQ2Rz1fqtNePe;P$%gy4M-##B zBBRA+{R>RIHDpFc#ICx=8md>wZJL+$gt1ao7HST!aOC+$lro?_#UX#>_${kBfBEdO zXyWrS;@2XNA+DJQfg0k1RoP4uax7-i4%%}8Fvr$NBJv>3c^ew@u?GM5P=$PsL!jf2 z7Q>T=bRqZ^b|!Imd`@u?I@K>u9`=u*sVts$^{wt&yB0gx8rTa>5_T8BvD#dTS9V|)C!TW&mk8} zU3t&MQa?I1d%7xh?m7!j5yIdCM^ScuFxWL>m1HlRvncD+t zhUGq|3S#xj*SZpmcd7T@E0Of)Q4UZl#hKariKW-7ZTqb$e3s|}*Vr{oIQH##8CLwb zGn2|be^ksa{JV+$H}O-rq|%2k4lfTJQj@)eVa*ja&bo*ITc7nEW-;&OP46^dysq3z zRJ~dRIZD}$+5W+m@rcs>Y&tphjX-v|%|QNu3v$)v~bP-_?_Eb5b{QcH!~+4LTKn|eP=ZoIXp zz5r5Z(^PHOSGBO6L2bFi8zPga#Hd^!P#-QuEv~)NP@Q*vBYVF+bVNW#;xO5+*IUwn zZNLoZT=%1tLuQxQ8IV%g9vH$_6Ek%D>2q;Y8IcKLaOT3>k*~nLJenVJ8+0p=G~Q%$ zlwu8+*Va}WeJm0Ad+DCLb~v7TEc-`E)Y|0e5b-1GZnH((VTGgn$3ptgnr;P))%nlf&X&@hSeDZrDcDNl z*qgKcmAvZ#$vLuA1<1E70FLKJo9Ob|T@?b!K{H}^2klM5E(s-_xa?WR2G6e+##bJr z1Fz9`Ir@gbfiV-Ko@={X)sBfE7R_coro(R8h>&MTf7|U)AA0nvC)GZk^pp(=U+Vke zQOtzQcfGC0^G35z(@)sv4RXYk=@dE*0q#-Eoz?p&2E5C{p9`i5oJ zHuNuQR*4;0dkfg0_ zkbwpq;-`H2>cpR_PZ?32C{~t|PC#>=hFzq5Y*n){bC@7toCQ*g+-nVkwPEG{UfULR zV0xUuC)$);^3oF9@f!G)q^;;X(1T|i-DQofePoqrsQD-_W_N>lC z1i&-64kW9t7$%A*Zzgr>*iJ)#9?@_xBdV1R=xAOb-!UL?bRy>w|EPX^pyFzR;9}H7 zKc`VKHao^)U#=wOF-{?9c|*DE@U9F{lla^ zCGn{*z6&|exs|EUrXVexE9w5<8uNGOwXxMLH3z%w^%LE?(SzTnKdINjvI@T$H`hFN zkihATT=-b5g23|qJy%Aqlv}4QHt4co=wScxgs({EiP=bUgH@*v|E$Cx_9cH`zQh=F zr&iRRt3l>*AvE37r#=bZlI2q*qN4lkIKyxaRRwrKWC!Q33^wFb_OrWL1jWCsb$up{ zJhN%dhwj%2$4j!5)o}4|w8s7VJ*&J}Z2#0%^G&8S@$(K|u4blZIXRkYXa2y1 zHKg_=q7O2!KSRyFO4=|kl`nlQg(X)oB^2M$v=rN5uP} zUQEL?IKXY*YZsFhc-}&LvSiD{nW?Vbf1aSIQ-10Vk$EadN z(U&|92Q{8`qXuC`LGVoEp3;w`6PvS_BGgWbBRXg5alcgeMcB>>htCnzhCE9$0=FDQp@2^Z$4V9_kc3TmXuTUwZ4?gQ77hL0HKuM;Ov%m0pMVGre zZ9n@+(tqzACs|#V{*|E7Qy_vS`hHb9+Csg%SJ|Ze-qKq&E~Z$BEsI*2);CBAJTN(d z{Hy%Ma9kE2OS22^mo!wchFekir?Ci|!*Ue&F%Nj8Q^*sdepSwV#NI+j{BXeMew&;W zMV8gN6G3NXlQjs-d(SWa8NqYyvFk4Kvf)2EtB&TmW!D6T=D@QeF~+no;dhgZQ)yOu&quYri$~02=Regh1|BXw zo!+7ZX__JG3KlEYOq)q`beDPu|TT%5N`qpU(faz363JqWA$8H z=-W}-V{^|KlW+J;bMJ6#wQZ7I$JeVKP2`wpokKD6+GpAiT-0Y{iwV@p$l1(mI&P|FGIZPr_CO; zG-a5d_WN7m_r1EyXxEjsV6Kctm$;O+Ln?7?cbxr#E?mW>n7{Jw=9!1rei_)c@7~`* z$&jj*ZtmZU&i9Tv7;sglUnp%Pv-zfZ=L986x@-x(3ybg>qS&kW5nH9^iWMpeEK4qC zZ`bvDoVIt5RxNJ0^W#?05NGfZX@P4wFhG)~MXf( zy!~fQ?$zebKoHkAfalpaimajeAsc6+QG2zumpGE-^hUn+g?Sa7HNlRGV&8}T6Uvgu zjSKDyO%Bm%x!qrKZr-uKFNvwCOc&r`uGrBH6ALh0xa;~gAW9YdtF%q>_|ilDeXS~-&6R|C)Nc2UcA!L5Ysi5uaL2>TdzA?dQgQiyIh;`30>I4Lb-Km_71`i76 zeLv!x#NXvgzI(Kyk8#JCax$RB=ze4B-|zXM?5^E?0nTX0y1`SKpS^hox$+r%CM}LB z&`VP3-JS9GY(UeBs({8L76|zW)9Y=Jw2Mg)Z3sW)k~A-225fbn0gplHeA8jxFP%c@ zC^5c&Jq=cqvEuUdHS^%TqzfJznW7`ZJr>RnT)R_X;BN1L%GspIu*?vvt|x*=lq^e6 zykaQ`PV(5Sv+HhYdN^eH_;7u#k+?Tlcy^0&E-0k~i<^3M5sP5!#gE^EID`CapPAekdV$aY4*0Ub7>saWCXwOA4Mo2A1Y() z!( z&+m9aA&T=<2&dKycK%K;28Fgt#;te|LszZJuu0e|p3|L*i&4Fh3yK}fGFvjlo*O9t z#m3G)1~;}0QbgCV?fU{G?dLpv_7IfU(1!1LHYhLYV7|1}L4DeZ-!lrU>n(@pF)E7v~1d|JNsdDvOaXNcvOEZU2BP7=F%X}(sk zFS&azBVfCtL0lj8)!KAct?}xLYWhLUKJN^tLMzdeSFxu zon55d;K-pL85?^Tr7H2dFu#xvqqXk+R5djZKqEX z(K4G(CW^w?mIkzr9l_Ly0B)9|?>ve>jE?R@FyakNj4mP7d*D;^6B z^ds*(P(R5XaN%CU0n&1vU0}B`B_lsk4}Jde-MS`#EkmPlfE(ALutXrUysgJ?WGY=W zauD;84LH!?Sip@-|3l&dfnz1}(e~8ZGV<>;?C#To`1TSZXNca`gZGAFO9K5#W5xDl z?p;tp29`+UU>O}Wx^`zi@@tDtfQ2aB5LqHLzei}T9eqx z`sKy-$5)0WaK;uRub2D4UZ;_^eul#hzOYcd*l0)R>UrzwJi#iF?^O<`+#4Ih(5_X( zbMLcWJu!`b$m!zqowvtyvFK`+if@S|x*Ie?@9wAh$xuOk`!udQ^@Z^AL$#*f2T4Rc z(%z%22!=<0Q?b6-ZH84k;ns0TYQqn;R?ZRSAtXek_`Q==R-b=4WBxe^n`LNZT7r)z z?oLO^1H6ofapttXoR$*C;(>$_j_RtEe#gG?AJ^#{v;D|QK8P&6*%7a3mT>p(%g!)i z>L2(`YZ}qEo@JS|Y>LVqv+mbrMvDY)*rVM}P#td_!{2W>Kj21vuGtdYCIt#xE>Y3X z9JI+@)>1n}(wE1%{(XExwkdhC^ad9I(klca8Zh!{kj2(`b&LBKBJ^z3gMs^l-}vHQv;0|( zjyH1ChL+;3T$3+IF&Yqa4WCh?V`-?_xi%A$r8~1cw0v3vHr4}P07ryo9#zn#-Q^t& zwmER$E%I!T8aHMh@FTA~|7dE|MN&<~2RF@i8^y9%eSnN{q`_y2A^l58@pvobgkl2e zdg7Q-zWW-W-;029KQx}2J(C`RER|eSN;vm=8{N^LEjm8FE)OzZ9gq(8e<_Pgrg!m; zxu4y=UF%3E4DHz<`C&bDGzg|2lHy`@#cg!>G~z8%eQL-VEJs>+=oe(R$3OQyUv_8+ z?VEJ}i^0UnrzCVnV?(ajC2Qah!Ope*uDZ%|t&c&=U#le+MVH%&ch0}<>K`=VgBdUB zG+&WR&8PLDEg11SV%9HczTXMCo{5RhT(B)IXq6J|tkgIAYO8$yY*l47*r4=i$zkVW zTUL*?&uM6tZmt{jDuLwv9wX4=Xaw#8zi-(fZop#j9p{@BwpNL#zwn#6J$|loKWX}G zYfv)Y&WoztLVGS^w#@LEV8-ey+c?2^5`l=x=g_!_`E->a-#Rz?nQc~%utak>^b@dN zy3ZTW&uk%<{IyulMyKYEy~lP&HTWIk*};p4YKKjLshNfJxp2(O(4EDE%in)@RG{2^ zfz&9ewy=f}*IEesu(K4sjMH)}R{`Thn%gikO$LzWx6y@A3EsL4QepCu*bD@f)xMau zf0>cLy`7P`II<9?SY8*mV~M7jok09GTtu6~e+Zpq)R$|&vXgAzBDw#4>(i=%RH ziN)lM%qnD&bmjv-M{$-K-)k4tGYx%ZO%1Mrle&Z+k8$4Ex*VPCRyZwZBd=aQ&;;+Wk(^uwS9p{ z$8P4-;>P{w>_6{5*;5bs)lM|?=S|t>LceG9AE1TZj>cY);FGvYLfPp9d99B_W6|NZ znVI`$c(UruXM&p{Z*$yjuqV&ii?9Vo7;^d#_{pgFy$g5ceVFG)i9ghRJ$8N6e|@oju+aKE KP)DBz@BaXj?U055 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/crane_in.png b/src/main/resources/assets/hbm/textures/blocks/crane_in.png index 9fd5029270c681fc90c1fa7faeff18884349c4b6..8eb25f50217cc7ffc1f328b4d9144391059604ec 100644 GIT binary patch delta 261 zcmV+g0s8*k0kHy*G=JzxL_t(Ijir-Ij)fo)MGqZjvYNLJhpxmGxjPf169b8WKo4G^ zQQxn-?*ysTJ*f*Q`o2&6LlWS2yB&%trLxxFSwaY=X<{75I{;vw=VGXhH7KQo5Tewr zwRga}t^f?f@X^>^*Bv9o7zrT&ptXK!R!R|L#5s2a#28D{Gk%Ct3V?mzOTPrzw(XGl z5hR-dLI?%$1zZj-%NT<(=2Fl7TI-((f0fL{M{1hpb3lE+aLjyGedy9!%Xx}d<_qAr z=CcaGdr#Z8muYgmTsyxR3E;iQId?JEs(-2&W7$i9Wm(=n;b-~=@_xsC)Eux?j=`}@&iJ1Zm3 z3y|?vYklGmJ^F!&wv1*r0Nu>YDYL4Ah+t-;17=2REd>w}sOsn-YHg;^Q7?cMB-&F5 zh#<2i-)8^-aCf-->d6|A(R2g=D5d-k$ObC}?4KT diff --git a/src/main/resources/assets/hbm/textures/blocks/crane_in_side_down.png b/src/main/resources/assets/hbm/textures/blocks/crane_in_side_down.png index f0374fbe7023637a45803160f3c9d5d12149d3a8..9057604d062747565453a9bcac0e20cece7613ae 100644 GIT binary patch delta 379 zcmV->0fhd80;L0xGk*bGNklS5P-j}1&!B2X+e4vL{#Wo^i3?i_2eV? z0JimYdJ#N`3X15tkT$eElu(kz?08tSZqf*X14DLZXTJH#s^M@b{6p#h-EOzw6cP9J z&$%e2h@yxv3@rd)xm>ygKhXz?2udmEPt()_Hk%CqT5F6km4DT%0B!_h3|W?8jH&FR z3ZS(v0&@Lr48OBH)&Y_vaTj42783mqn$0GF>(&9vRX?sKHgF4jhZYia;B0imd_H$^ zaU4_2+smuA+ii}o`ve`EoNaA#Z#-hLSWuQ)dE)@BR*R$lrGxawBUiaBZUm*&4&>r? zf-%Nb&I=Wmm~^IT;nD}?iN3E4P=EwM!1f7{gxbk>&>I*7^;6rCezEq!xwU6gxPQ+7 z()+%Az9L{XezfY_n};7ex^I zv*E&=S8WzVi>9G+WqA^>=tZvfO4?Dkz2Cy*97Wm$gBPEl6ST64Nzh?5SkD>pnV z5Xs>>NL;XU1(Bph4&a0r1;0S40B8W3XCEB9*QbBId%-`j^nqOCrepdH)>aEzYDY1@ SH$Tk)0000*G(xu?Lx*4iLg62=&ubBuf# z3ct^eTIPbPRUipT{REQOuX2hkCrOfS0!b8E&h-M-5q68^Pf^K-z{AxM#uFZr?d-cG zeh;j*%s1QUjkNh?cTBg^aYuy0%JWme% SeTb|80000hGk*aiNklZpiX1>|odW!cot07m zNGTI#-WQ+%xZQ3E#9E6|il6t2`cP4pC2=CJHUO5go2H>YRG14~kMRBS8X&RXFbp%m zO9yD%mika}J;K8y0rK_y#&)~S??F5=DJ4&zA9ovh7a)X4RQUI@d8;OlFD02` Ut8mz=IRF3v07*qoM6N<$f}$^tQvd(} delta 210 zcmV;@04@LQ0{sDyGk*ZINklF()EUw>6qRgWK}{2(GpMd#cb;LBR;s4_{22%K}syct^_ zX0w@Glx6`WLGn8QNn8&GO>L0pc^ZHun%dxg1G*Nt?8`~W2utA0T??!?ctOtF5=Bvr z0BUGxt+6{DCs$qs0D!eN8t~sUCIOc29V*N!;Q1ILk_7p9rqD>$1M)dUnI_$mp8x;= M07*qoM6N<$f(+SNF#rGn diff --git a/src/main/resources/assets/hbm/textures/blocks/crane_out.png b/src/main/resources/assets/hbm/textures/blocks/crane_out.png index 6a296ab4c9a303344558e599fc2bdb15917db9fa..98f5652c1750e14d588c201873832984bb1d6e68 100644 GIT binary patch delta 208 zcmV;>05AWt0sH}wG=H;6L_t(Ijir+@4ul{OMIVOJyO?+v&tUI0JfpRViH)IymU;*m7J`9S8wrM|NjA5E4#&O&Y0Q$by3C=mnvb@x7+v2_7 z4VGomK+2W&-hYn}LeRi43;JkLLOxZ?v#ERer8wIS000000< KMNUMnLSTZ~b6^_) delta 133 zcmeyvxQTIsNnNI=i(`mIZ?ccK_wVx#j0uf~6%`d8mwr4wE#AUtV`IZp{r#QmL>Dsw z>HGKZ&wqG&x;}@v!fY=c`J>zh1>fJrvVlNtZS9^KiG)MX?1K)hU_5-9p(sd^nb}13 l&?PfX236ySn;Qif7*y=dpYA?6F_{4fJYD@<);T3K0RT-+Gv@#R diff --git a/src/main/resources/assets/hbm/textures/blocks/crane_out_side_down.png b/src/main/resources/assets/hbm/textures/blocks/crane_out_side_down.png index 0b77746b16a6fde2d3b165a45f50717c0ac6cfef..c0fef9e9b21efb47fbaf1d29decd43c9f7411195 100644 GIT binary patch delta 373 zcmV-*0gC?p0iOeqGk*bANkl6FVHkT zh%ewp@E|HE;#CT1L)$|LC0Xo_hwZMLw1VKkke%6?|Nm#QYCIkb|F9-Nzu&JUMZ|x@ zvooa>X_}HGi3I>yE|zv$%OfQ?(6bA zr{Ux|)?Tm2)o@s8J^`jt#A30aZjJiJ0lM8T*MkA4yXM;{^2~MfBPgZzKyKm~V~l5Z zM3p6$Wm&llfo@!5n5zRQKw7O9n`b}@8t1#BcQ6K;7gmvewej(#jc0f8@Z$c`$B}%! zAz(d!vL43S<4>I4BeOeuR-@5K+U+)4>%I3MT73i&VZC14C9YO0@;u+$@L%j3p$1~0 Tf`yqt00000NkvXXu0mjfY96w2 delta 210 zcmV;@04@KY1N{MzGk*ZINkl|>jkLuUP1E%3P$eIw)Fv>5Fcb)^wa$XQ_b84b8A~&Q4+(g&KuRvgaE$OZ z0Vh|GlFnLyB)nSi3ltSV576JDQGec?`SFYe|G+XAa*ex=>D$<g^P zKxMHrg%pp zmSx$xcW+S?)oXU&1PH)(yIpoKfGvow4n-ee40NttqkePw`HjmLb9j99(9bjb{f-6a z>e+di=TEG`Z78q>0w;3FHukM=_k6al=(=uV1FE<&#;g*0@81SdY^}`_OTrj~_ntD6x#I8K zav?7Ziw2UAv}jPx9Z2HT_te1P9OF3V-yn(~z!f;OEltzp8B9px9K^f8)xdGaZt~5JjI6RSv*X$3nk?j<$k!_$!zJ#!>nKyrCEXuO9{6i@~Q53 z0TO^|ngWP11}P=?s^U>qWLbt^$hqABvF*C9xmOiGz&G%5y>1XcZXCxI;H(2QO~d1r z{Pr5uJMekCak*TGmBu^H^PI2e^K_7>03k%+!ky#c?S?qd^Wol|k|YUs9|LwRoPl6{ z!iNvZTFbI5XfmyLiE(?basXJC1*Oz3(UQ0`vipGk*Z9Nkl#bjAv^)m?3~LoOTx?uAyCC&uK7K;+Q`e& zCO{IBHUah8g(ObHKm&~4Gfh+e3!?c7T!2H@(Y9?KKoaNKyh5L24RBn6e6--4WAr{* zEv4iito57Hf5%t^_%`pQmbo=N7Q@VnATP_b43z2)rSm@?kGwz!00000NkvXXu0mjf DDBD^~ diff --git a/src/main/resources/assets/hbm/textures/blocks/crane_side.png b/src/main/resources/assets/hbm/textures/blocks/crane_side.png index 5a9f906a64f10bbdfcd63e0d2f2eafdc9ee6f3b9..d2c2e004148a8d4c13d259fb6dc69870d6af9376 100644 GIT binary patch delta 307 zcmV-30nGle0o?+SGk*aTNkl zAvDB|F%dIEDHZOmwVq&}X8?e64n&lFJx35$AR?^m3L?r*k$)p_&TR=K_ST3eliEPA zEKB&2HpT)Ow@hM8fEffi;dkRA7kQWQr8IU!T%+<1c2vRFXTKwE3GuZ0)1 z-VmiOC;(iRCB9w&@B)4JQ}h840mZ#E{h!-@$+nbM_JE^Yd@s zKY}kOe^yP?a4c0-aLyenAFn5_P1EFE7{?LDn2Zm9;~U(uR+p(bxPJfu002ovPDHLk FV1l~)iYEX7 delta 132 zcmV-~0DJ%40uj5qrQ6DvZ079P=97|!dA z+rVy^?I2aH7|;|8Gk1aReij5QA}QF+z|3%WlnAr%{kA;ZrSunkqJRKY0H{j~=3{33 my0wBgaCnMu9D1f}(5oF+2PcC;SKH$N0000$npw~1Afp+e@B0bx04#^kJ5c1Ff9Es zEcaZ!AJ6$KvNhWddlf~IgkebAwu}4k%KfRVwTK91Sq?)iisI%KzN8;&3D_U|V|^R| O0000V2ZVF(GA;wrU zXrIgh@K0W<2B03fCOA3ZQTSWUpnR0^N~lmNH; yb;{(urv!LBH$Vv+?eacXVzF=Ip=J7fSk()U^gCoczq73X0000rUCle~bJBc`KQvd(}07*qoM6N<$g2_dSI{*Lx delta 155 zcmV;M0A&Bg0>=T6G=F|cL_t(IjqQ^$3V<*SMPJ1+2XX6BdW+t&_i*U}1jp=k&|n1- ztB(Gq`3ZR>(6|_5;e~n&M5L)vRd;}hkWxAnYv7p=A)u=J1U2=pKdfNNIRoImzx1Z= zY`+%$fG+`0{s4dj3P2gR#IU}1{4{TXC(Y)aUE`}`suQhR02C62N*0kR;aecx+Bo7jR>6+~3eQ%X1BJWl`s zGebn&>K>quAR;KGKt$XwJODHI0DGRsXgjmm3b?MT{umQm18*(Kx~+gW^PV=Ns)#Wn z7})}B#wXCI=`FxBa#ZlzGmR^24KxozO3AHOD}>O2+%0&w&Kr%0{EMWj$T_2w@|9?p wXIy0m$T@?VU!8BeYPU84z;PUiG2$0}05By(=XQ^sprl6-u)C*Vk_NyeS&K3YzqjpUm&z7w!6G1;hURTIyB`BUNwPfCTvT%b XOS2sdEpFvZ00000NkvXXu0mjfbyF|G diff --git a/src/main/resources/assets/hbm/textures/gui/weapon/gui_turret_arty.png b/src/main/resources/assets/hbm/textures/gui/weapon/gui_turret_arty.png index d5a91504e451481d5fafc7459a175ee042b7ac18..8957e7333c7a45b19afe64a063800fd84ab3ff4d 100644 GIT binary patch literal 4645 zcmbVQXH=6*w|)~t2O%heq7Xw9P>?Q$5|kFY^d63YCt;c6DWcj*DW0heSECgUpOoFgJMEqsFa{Vd`|4~9G&2#7IynV!)24; z%97at2l)#v#*LVpj~*G=RdEL#PtAs_S;d$zk@2VcRAu{P7lTgXsg##Nb6r`Q6uhk) zT{&pwcM`T~_gj{VkMng0kKGLqbmv@bQouyUu7;Y{C0Oj(MiFBaI?wR`-nBG5(omuz zRfZ+e8Bw2p`LI#(*x_HTuee3S#5h~-35tlFHfGSY>pryq+>TsOuhu2IG)cUaEt`Os}ek4TYtYi9{-q4F_$bo zosTz(*e>0YyjY73KdGbn>>w^O2jao;5wC2<#KOw#O=AdT6me@O1EL4BT%OGKJ7{i^ zMe^BMgMhE!%uH7MFuP4b4*L4!rye(yX)Cq>@*Bg2dV8K)vQCr0&rK4P0OH&p*UmXP zfcQ1n_rTT<`xU^QIwf{Gh2_Mp>L9u$=1EN6K}D}ffzoWe6p>lq|b`42^MTq%HuYs3eQQ-SM~ z_yLqbci<%`ooOSS+csFUtON+H+5$H-wwIh_Jx9YvXd=%`flo#|rBmg~I|lkI#hd-T z=Om7)yn!?s)5MOTiq1LPCE^ArrKF+&Yaei`c)M3IK&yVB{?`3;K6*E9}QX zdA%wVy*}j=tFJ$kv}P)}gw>$Q;)=Lo3R5Kt8~rJOReWax)rA{BJivsT^i zqc}s8Kiw1PwE+kvfFRJ}JtelQNKKqI_tQARJiW|KRFO*872b{Qrp!0QxBWwN)d%B_ zeKKl?&)%D~)EN?lXYX1(-=1mi5InajY`+fxN(ZU)IV%kxWlBO$y= z?~xG%UJ%(k_RPU^H^8Gg9Cs)TjtJc*#*oU8j>b_g;294-O<4B8Er;v*>~eLkQzoQ1 zBLhgRn5?@?1@)WzI+4p=i&CFv71yP-eWm4tDJ@dULQ|rd_H1?URJV6#Y9jo=lVJyX zK50l-@alC?cM^i%HXG9MLe=xi2n8>4|-l3{njTS*lgu_PYLdy&ojpME$2RPdNtd6!h!+HEd;YI?~(k&gHbt(Dql+$-dQVbG`ZZHWu?#dUBq1@M54&_Unr0&$m6%dCQ)m#y-^-hdo^m zR_)3$!uu{COqV#!27ZYIpF`|Cn}>P0d)or#98H{DNPT@V5lqXv3>mS9c0kv@GiX#+ z_XT`5GHJzZZ??p*It9ftTdcjYuw;A6UC=bmbLF{w0aN&*e ztS4Q+P52=05oL&7=b$`TdrA;jhQV0^J1 znmSCnKl?Urrmo0_I9zBgZ1IhS=2$KRo6GJ}0Wp9cGc&(@Zg#GpyK z%1RQI1!!|deIRqtr&3hCP&=o=Je3&sZM?^E<%?Ed{rv^!IrRm)wH~%cTd~smTLbXZ z23OM`Eyuz5d))zG%WKT8vLAa9DIY|EtJK}FY?6bAv13^A=@>7t_++FxoOadcL1`Gj zUM^7$#RwC3=ib2_)cH98=^K5iJnMOZ%S-<$>w#feWN$&m3Ad86wl0Mb?mIIxQd!yz z-@wyE@!4*k`9Lw8Uv#daxwx441t#&kq-nQk+?ha!0)WMo+sr!JMgyDpq8l`@y^>Ua zv}gEW@o!7?pi@a1CCkmXSus+xEN^#dTZZk6>E84=y3xy!u)C5>azUS?7;)sDdUWvixi z(`%z3g0ML-+fe0@x>?KrQx4{zb9t=Vv(0$$MvwuFFjEY~TjUmXVr~^@OAx_`MYRO( zJ2^Jd{yL(o4S`HjJ;9TDz+Bdq*`94dD7Gz0asf~UbAdkZMPu}rN|0s!MvVPf1!L7s z4vGkIf;;4NZCHj9Ffhrg=MH>@dl^|&TRo3YgxU~Dsav9v6eCk=E(jqL z|5RZ;OT_IN{X5i>l`FCV7)FrciH(a&Pg@6ww@1HONRLD+;7pa}aU{Rt(fL@R#o-D< zg0Q0fM3RY5*T`GMQ`tY?EXaj`_5M0zxN{{|2qC^#e2fb@^S!vvyX!gY8WA71HLPd9 zh#=#K&>0hax^}gy;bM&}q7XtBPtm-?KBINmvN}bM80)d&-sXe<+j#QA*o1)WWJpR3 zH;@$e%C3{X8*&WD6YHaVhgaEMebhDGWk(|Lh2@ssKN{CHnQRu=G z)-=Ln2dep6Gj@9Ym!{`(S1!h`gm3Jy39*OBDGbLWBWNq6USS~fJv`;f&yS$P%9tLF z*0ny?{2s;dBT5SsE-IlZUf2^A;~53~XNG;Rmd#9CBg|c)oNLPRz%i-;J(Twr2|DMD zb#-o!6^gd^-Ai*Pi$H>n@0;sRAlcVppi72qjVA1p;EZ--uoXeqEORJiZ(liuGd`h? zuDI_$*&kh6$C-1-`Bju6&U9GEZNU_J*EE8k|EP$|x@cTqG2qI3ssCZ5f>ZsybQ4(Y zYO0fuz&kFZo%4_70pW+}yS0H%eaYLl;EQEe;KHl8!B_b3$M}6o(DN2MfWzRSmh*NA zmKqGp;rFgjz9NJ?^Zor|Ppj%r2~1y;4HwekrxHLo(ly(-B_ZF20{6TLIob0C8T8)r zGUvSvR0OXFOUHcJ$FooDb5r-*9ihhfRK4cnBNYqX)n^sBQjU`c&LqBkEc(8JRjp;E z>f6gA+-6la8m?@Gsih@H&RP2WG#qq0$JQA$oS1#eY?WZjR{y|%;S^Vq5YCTkP`=el zdKT&G0&OEPUq9v9S(QcFypaZM@Sjz{bL5m4i!}hc$gx^El0p#Hp%mi1SDan5ZuoQJ>pipa^pc?*E z(uz+Ga1?f@UL7@_1%2cAigFaJKkjQ5U~>U+5ZvEyx1_Y&NMSd zyfESW=JUAPc(v1aOknayF8!fONj<5_k8qZPGODfRg3H0gP4%Gr0uz5=_gXCD;;CD<%1fs!&T*p`Z$5-&G7ACUvj)w(Y~=~ z8VG633y##?s{AE~^m$-rD1D=NJ|Sdzq|()1*bJrahd#zd*_P6-MEzRSDY`|BEg$@NNOg}@2f zPI1*s*93J{17|&v-M*ck?Z!nMh?9Qz|Jqy(%PwEAtn3wZi|N;0DEi#hQsB!REyw5FmQb-_cGdcQrK1OF z(Lw<~M;p`ww98zrT1syBNp=*|4 zU@tWjVowRGOVjxc0|8O-rr=f#$>iw%lrSmhY@4kI5jSB&by;|EkQmItEx%%YwusAv z)j+cX_m*+C>MFwAc9_U-8l`nf9^9MEv#jp``L#AR_YN+we2H>Y9{em;583P~$;LOGq3D~fyP=NILajuW!b|*1cpAV)?>3&vkO?t>H5-(2dL2DXyz&3Q zngiq{^gPt{rVLr`V%J}G9*1k$3pzi`9_s49ggx8aGt@D?a7Q5#(&yslxjWpz{Y1zi zaL(6eb-S#nmU=!95*39>pG0tts|4XhypFSz5e_4;e?z~inV9AdFeG*kf8_lC1`@^O Y9s13i<)7*Q{%|MCz(T+Libu?U0X^DnRsaA1 literal 4431 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 diff --git a/src/main/resources/assets/hbm/textures/items/ammo_arty_mini_nuke.png b/src/main/resources/assets/hbm/textures/items/ammo_arty_mini_nuke.png index 7aa7f75a0b304db12f1292faab3598ab604c447a..5c0bc91c0d31e3e889f2c92e96e8e5ce87223676 100644 GIT binary patch delta 285 zcmV+&0pkAB0>=W7Gk*a7Nkl%_@GRaIkA6qIF& za}HoNw3!Z^b7-y6T2t5cXw1X73NXe9?|qWcS_5!>d$oup6@Pf|vDU`%c6)}*B=^nD zQ6vJ!7%@fm`wRe?NmQZmfh@Tcasg?Zsx*w&pCGn{#g;g!{dDb5a)TFzDGv` zhND3+)?lngoCjzOI>{fzd5qNnESGlypx1lb3u*zxvqdCM3V)4u`xJow&2=~k*eVdj zd7htC22olu91UtA1$l9N8vwdplPMTa)@Y*;C&aTw$xdtc0${ZgHk%*DlQriTXBew7 z)>JAf5%Zp}I+t0fiA7&hQkigmQo7zcNTr4Rgf!SKFtL*=tpqfID4lGo7H|lX0vbKn u-AugvGJpAq8X*IqxSg-h@1s84-ueR=M{$gUM#_@_0000 Date: Mon, 20 Jun 2022 17:00:37 +0200 Subject: [PATCH 75/80] IO fixes, some arty work --- .../items/machine/ItemAssemblyTemplate.java | 37 ++++++++++++------- .../machine/TileEntityMachineArcFurnace.java | 25 +++---------- .../machine/TileEntityMachineAutocrafter.java | 2 +- .../machine/TileEntityMachineBoiler.java | 20 +++------- .../TileEntityMachineBoilerElectric.java | 13 ++----- .../turret/TileEntityTurretArty.java | 22 +++++++---- 6 files changed, 54 insertions(+), 65 deletions(-) diff --git a/src/main/java/com/hbm/items/machine/ItemAssemblyTemplate.java b/src/main/java/com/hbm/items/machine/ItemAssemblyTemplate.java index 5f6bc340f..6c338eec9 100644 --- a/src/main/java/com/hbm/items/machine/ItemAssemblyTemplate.java +++ b/src/main/java/com/hbm/items/machine/ItemAssemblyTemplate.java @@ -91,20 +91,31 @@ public class ItemAssemblyTemplate extends Item { public String getItemStackDisplayName(ItemStack stack) { - //NEW - ComparableStack comp = readType(stack); - //LEGACY - if(comp == null) comp = AssemblerRecipes.recipeList.get(stack.getItemDamage()); - - String s = ("" + StatCollector.translateToLocal(this.getUnlocalizedName() + ".name")).trim(); - ItemStack out = comp != null ? comp.toStack() : null; - String s1 = ("" + StatCollector.translateToLocal((out != null ? out.getUnlocalizedName() : "") + ".name")).trim(); - - if(s1 != null) { - s = s + " " + s1; + try { + //NEW + ComparableStack comp = readType(stack); + //LEGACY + if(comp == null) comp = AssemblerRecipes.recipeList.get(stack.getItemDamage()); + + String s = ("" + StatCollector.translateToLocal(this.getUnlocalizedName() + ".name")).trim(); + ItemStack out = comp != null ? comp.toStack() : null; + if(out.getItem() == null) { + out = null; + } + if(out == null) { + return EnumChatFormatting.RED + "Broken Template" + EnumChatFormatting.RESET; + } + + String s1 = ("" + StatCollector.translateToLocal(out.getUnlocalizedName() + ".name")).trim(); + + if(s1 != null) { + s = s + " " + s1; + } + + return s; + } catch(Exception ex) { + return EnumChatFormatting.RED + "Broken Template" + EnumChatFormatting.RESET; } - - return s; } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcFurnace.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcFurnace.java index b2745929c..bacd632ff 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcFurnace.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcFurnace.java @@ -9,7 +9,6 @@ import com.hbm.packet.AuxGaugePacket; import com.hbm.packet.PacketDispatcher; import com.hbm.tileentity.TileEntityLoadedBase; -import api.hbm.energy.IBatteryItem; import api.hbm.energy.IEnergyUser; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.entity.player.EntityPlayer; @@ -18,7 +17,6 @@ import net.minecraft.item.ItemStack; import net.minecraft.item.crafting.FurnaceRecipes; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; -import net.minecraft.tileentity.TileEntity; public class TileEntityMachineArcFurnace extends TileEntityLoadedBase implements ISidedInventory, IEnergyUser { @@ -35,9 +33,7 @@ public class TileEntityMachineArcFurnace extends TileEntityLoadedBase implements //3: 2 //4: 3 //5: b - private static final int[] slots_top = new int[] {0, 2, 3, 4, 5}; - private static final int[] slots_bottom = new int[] {1, 2, 3, 4, 5}; - private static final int[] slots_side = new int[] {0}; + private static final int[] slots_io = new int[] {0, 1, 2, 3, 4, 5}; private String customName; @@ -114,18 +110,11 @@ public class TileEntityMachineArcFurnace extends TileEntityLoadedBase implements @Override public boolean isItemValidForSlot(int i, ItemStack itemStack) { - if(i == 1) - return false; - - if(i == 5) - if(itemStack.getItem() instanceof IBatteryItem) - return true; - if(i == 2 || i == 3 || i == 4) return itemStack.getItem() == ModItems.arc_electrode || itemStack.getItem() == ModItems.arc_electrode_desh; if(i == 0) - return true; + return FurnaceRecipes.smelting().getSmeltingResult(itemStack) != null; return false; } @@ -193,10 +182,9 @@ public class TileEntityMachineArcFurnace extends TileEntityLoadedBase implements } @Override - public int[] getAccessibleSlotsFromSide(int p_94128_1_) - { - return p_94128_1_ == 0 ? slots_bottom : (p_94128_1_ == 1 ? slots_top : slots_side); - } + public int[] getAccessibleSlotsFromSide(int side) { + return slots_io; + } @Override public boolean canInsertItem(int i, ItemStack itemStack, int j) { @@ -205,9 +193,6 @@ public class TileEntityMachineArcFurnace extends TileEntityLoadedBase implements @Override public boolean canExtractItem(int i, ItemStack itemStack, int j) { - if(i == 5) - if (itemStack.getItem() instanceof IBatteryItem && ((IBatteryItem)itemStack.getItem()).getCharge(itemStack) == 0) - return true; if(i == 1) return true; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAutocrafter.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAutocrafter.java index 4d173f8e3..4d266a204 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAutocrafter.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAutocrafter.java @@ -251,7 +251,7 @@ public class TileEntityMachineAutocrafter extends TileEntityMachineBase implemen if(i == 19) return true; - if(i > 9 && i < 18) { + if(i > 9 && i < 19) { ItemStack filter = slots[i - 10]; String mode = modes[i - 10]; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineBoiler.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineBoiler.java index 80d53d3a7..cb61bbd65 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineBoiler.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineBoiler.java @@ -37,10 +37,6 @@ public class TileEntityMachineBoiler extends TileEntity implements ISidedInvento public List list = new ArrayList(); public FluidTank[] tanks; - private static final int[] slots_top = new int[] {4}; - private static final int[] slots_bottom = new int[] {6}; - private static final int[] slots_side = new int[] {4}; - private String customName; public TileEntityMachineBoiler() { @@ -118,12 +114,7 @@ public class TileEntityMachineBoiler extends TileEntity implements ISidedInvento @Override public boolean isItemValidForSlot(int i, ItemStack stack) { - - if(i == 4) - if(TileEntityFurnace.getItemBurnTime(stack) > 0) - return true; - - return false; + return i == 4 && TileEntityFurnace.getItemBurnTime(stack) > 0; } @Override @@ -193,10 +184,9 @@ public class TileEntityMachineBoiler extends TileEntity implements ISidedInvento } @Override - public int[] getAccessibleSlotsFromSide(int p_94128_1_) - { - return p_94128_1_ == 0 ? slots_bottom : (p_94128_1_ == 1 ? slots_top : slots_side); - } + public int[] getAccessibleSlotsFromSide(int side) { + return new int[] { 4 }; + } @Override public boolean canInsertItem(int i, ItemStack itemStack, int j) { @@ -205,7 +195,7 @@ public class TileEntityMachineBoiler extends TileEntity implements ISidedInvento @Override public boolean canExtractItem(int i, ItemStack itemStack, int j) { - return false; + return i == 4 && !this.isItemValidForSlot(i, itemStack); } public int getHeatScaled(int i) { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineBoilerElectric.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineBoilerElectric.java index ef278e48e..00dd1f73f 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineBoilerElectric.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineBoilerElectric.java @@ -43,10 +43,6 @@ public class TileEntityMachineBoilerElectric extends TileEntityLoadedBase implem public List list = new ArrayList(); public FluidTank[] tanks; - private static final int[] slots_top = new int[] {4}; - private static final int[] slots_bottom = new int[] {6}; - private static final int[] slots_side = new int[] {4}; - private String customName; public TileEntityMachineBoilerElectric() { @@ -199,14 +195,13 @@ public class TileEntityMachineBoilerElectric extends TileEntityLoadedBase implem } @Override - public int[] getAccessibleSlotsFromSide(int p_94128_1_) - { - return p_94128_1_ == 0 ? slots_bottom : (p_94128_1_ == 1 ? slots_top : slots_side); - } + public int[] getAccessibleSlotsFromSide(int side) { + return new int[0]; + } @Override public boolean canInsertItem(int i, ItemStack itemStack, int j) { - return this.isItemValidForSlot(i, itemStack); + return false; } @Override diff --git a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretArty.java b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretArty.java index 00ef27391..f3206da5d 100644 --- a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretArty.java +++ b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretArty.java @@ -8,15 +8,20 @@ import com.hbm.handler.BulletConfigSyncingUtil; import com.hbm.handler.BulletConfiguration; import com.hbm.inventory.container.ContainerTurretBase; import com.hbm.inventory.gui.GUITurretArty; +import com.hbm.lib.Library; import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; import com.hbm.tileentity.IGUIProvider; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.client.gui.GuiScreen; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.potion.Potion; +import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.Vec3; import net.minecraft.world.World; @@ -103,14 +108,18 @@ public class TileEntityTurretArty extends TileEntityTurretBaseNT implements IGUI @Override protected void seekNewTarget() { + super.seekNewTarget(); + } + + @Override + public boolean entityInLOS(Entity e) { - if(this.mode == MODE_CANNON) { - super.seekNewTarget(); - return; + if(this.mode == this.MODE_CANNON) { + return super.entityInLOS(e); + } else { + int height = worldObj.getHeightValue((int) Math.floor(e.posX), (int) Math.floor(e.posZ)); + return height < (e.posY + e.height); } - - - /* TODO: large field artillery target search */ } @Override @@ -169,7 +178,6 @@ public class TileEntityTurretArty extends TileEntityTurretBaseNT implements IGUI if(this.didJustShoot) { this.retracting = true; - System.out.println("beb"); } if(this.retracting) { From 0a017e9672d52801918121f56d39f4be535cf02b Mon Sep 17 00:00:00 2001 From: Bob Date: Mon, 20 Jun 2022 22:34:47 +0200 Subject: [PATCH 76/80] torex tweaks --- .../hbm/entity/effect/EntityNukeTorex.java | 63 ++++++++++++++----- .../hbm/render/entity/effect/RenderTorex.java | 6 +- 2 files changed, 50 insertions(+), 19 deletions(-) diff --git a/src/main/java/com/hbm/entity/effect/EntityNukeTorex.java b/src/main/java/com/hbm/entity/effect/EntityNukeTorex.java index 4ea9d3c6d..3ad54fc6e 100644 --- a/src/main/java/com/hbm/entity/effect/EntityNukeTorex.java +++ b/src/main/java/com/hbm/entity/effect/EntityNukeTorex.java @@ -43,9 +43,13 @@ public class EntityNukeTorex extends Entity { double range = (torusWidth - rollerSize) * 0.25; if(this.ticksExisted + cloudletLife * 2 < maxAge) { - for(int i = 0; i < 20; i++) { + + int toSpawn = (int) Math.ceil(10 * getSimulationSpeed()); + + for(int i = 0; i < toSpawn; i++) { double y = posY + rand.nextGaussian() - 3; //this.ticksExisted < 60 ? this.posY + this.coreHeight : posY + rand.nextGaussian() - 3; Cloudlet cloud = new Cloudlet(posX + rand.nextGaussian() * range, y, posZ + rand.nextGaussian() * range, (float)(rand.nextDouble() * 2D * Math.PI), 0); + cloud.setScale(1F + this.ticksExisted * 0.001F, 5F); cloudlets.add(cloud); } } @@ -53,10 +57,12 @@ public class EntityNukeTorex extends Entity { int cloudCount = ticksExisted * 3; if(ticksExisted < 200) { for(int i = 0; i < cloudCount; i++) { - Vec3 vec = Vec3.createVectorHelper(ticksExisted + rand.nextDouble(), 0, 0); + Vec3 vec = Vec3.createVectorHelper((ticksExisted + rand.nextDouble()) * 2, 0, 0); float rot = (float) (Math.PI * 2 * rand.nextDouble()); vec.rotateAroundY(rot); - this.cloudlets.add(new Cloudlet(vec.xCoord + posX, worldObj.getHeightValue((int) (vec.xCoord + posX) + 2, (int) (vec.zCoord + posZ)), vec.zCoord + posZ, rot, 0)); + this.cloudlets.add(new Cloudlet(vec.xCoord + posX, worldObj.getHeightValue((int) (vec.xCoord + posX) + 1, (int) (vec.zCoord + posZ)), vec.zCoord + posZ, rot, 0) + .setScale(5F, 2F) + .setMotion(0)); } } @@ -79,6 +85,16 @@ public class EntityNukeTorex extends Entity { this.setDead(); } } + + public double getSimulationSpeed() { + + if(EntityNukeTorex.this.ticksExisted > 45 * 20) { + int timeLeft = 1600 - EntityNukeTorex.this.ticksExisted; + return MathHelper.clamp_double((double) timeLeft / 900D, 0, 1); + } + + return 1.0D; + } public class Cloudlet { @@ -135,17 +151,11 @@ public class EntityNukeTorex extends Entity { this.motionY = convection.yCoord * factor + lift.yCoord * (1D - factor); this.motionZ = convection.zCoord * factor + lift.zCoord * (1D - factor); - if(EntityNukeTorex.this.ticksExisted > 45 * 20) { - int timeLeft = 1600 - EntityNukeTorex.this.ticksExisted; - double scaled = Math.max((double) timeLeft / 900D, 0); - this.motionX *= scaled; - this.motionY *= scaled; - this.motionZ *= scaled; - } - - this.posX += this.motionX; - this.posY += this.motionY; - this.posZ += this.motionZ; + double mult = this.motionMult * getSimulationSpeed(); + + this.posX += this.motionX * mult; + this.posY += this.motionY * mult; + this.posZ += this.motionZ * mult; this.updateColor(); } @@ -223,7 +233,6 @@ public class EntityNukeTorex extends Entity { dist = Math.max(dist, 1); double col = 2D / dist; - //col *= col; this.color = Vec3.createVectorHelper( Math.max(col * 2, 0.25), @@ -245,6 +254,30 @@ public class EntityNukeTorex extends Entity { prevColor.yCoord + (color.yCoord - prevColor.yCoord) * interp, prevColor.zCoord + (color.zCoord - prevColor.zCoord) * interp); } + + public float getAlpha() { + return 1F - ((float)age / (float)cloudletLife); + } + + private float startingScale = 1; + private float growingScale = 5F; + + public float getScale() { + return startingScale + ((float)age / (float)cloudletLife) * growingScale; + } + + public Cloudlet setScale(float start, float grow) { + this.startingScale = start; + this.growingScale = grow; + return this; + } + + private double motionMult = 1F; + + public Cloudlet setMotion(double mult) { + this.motionMult = mult; + return this; + } } @Override diff --git a/src/main/java/com/hbm/render/entity/effect/RenderTorex.java b/src/main/java/com/hbm/render/entity/effect/RenderTorex.java index 3fc1195ed..661b57773 100644 --- a/src/main/java/com/hbm/render/entity/effect/RenderTorex.java +++ b/src/main/java/com/hbm/render/entity/effect/RenderTorex.java @@ -84,8 +84,8 @@ public class RenderTorex extends Render { private void tessellateCloudlet(Tessellator tess, double posX, double posY, double posZ, Cloudlet cloud, float interp) { - float alpha = 1F - ((float)cloud.age / (float)EntityNukeTorex.cloudletLife); - float scale = 1F + ((float)cloud.age / (float)EntityNukeTorex.cloudletLife) * 5; + float alpha = cloud.getAlpha(); + float scale = cloud.getScale(); float f1 = ActiveRenderInfo.rotationX; float f2 = ActiveRenderInfo.rotationZ; @@ -93,8 +93,6 @@ public class RenderTorex extends Render { float f4 = ActiveRenderInfo.rotationXY; float f5 = ActiveRenderInfo.rotationXZ; - //Random rand = new Random((long) ((posX * 5 + posY * 25 + posZ * 125) * 1000D)); - float brightness = 0.75F * cloud.colorMod; Vec3 color = cloud.getInterpColor(interp); tess.setColorRGBA_F((float)color.xCoord * brightness, (float)color.yCoord * brightness, (float)color.zCoord * brightness, alpha); From 2952e175b5ad3737954c60f529f797fbb4d06c4f Mon Sep 17 00:00:00 2001 From: Boblet Date: Tue, 21 Jun 2022 16:56:51 +0200 Subject: [PATCH 77/80] fixes and fusion power ports --- .../java/com/hbm/handler/ToolAbility.java | 10 ++++++++- .../machine/TileEntityFurnaceIron.java | 21 ++++++++++++++++--- .../tileentity/machine/TileEntityITER.java | 18 +++++++++++++--- 3 files changed, 42 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/hbm/handler/ToolAbility.java b/src/main/java/com/hbm/handler/ToolAbility.java index babf7af38..77eb41b7d 100644 --- a/src/main/java/com/hbm/handler/ToolAbility.java +++ b/src/main/java/com/hbm/handler/ToolAbility.java @@ -97,7 +97,7 @@ public abstract class ToolAbility { int meta = world.getBlockMetadata(x, y, z); int refMeta = world.getBlockMetadata(refX, refY, refZ); - if(b != ref) + if(!isSameBlock(b, ref)) return; if(meta != refMeta) @@ -122,6 +122,14 @@ public abstract class ToolAbility { } } } + + private boolean isSameBlock(Block b1, Block b2) { + + if(b1 == b2) return true; + if((b1 == Blocks.redstone_ore && b2 == Blocks.lit_redstone_ore) || (b1 == Blocks.lit_redstone_ore && b2 == Blocks.redstone_ore)) return true; + + return false; + } @Override public String getName() { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceIron.java b/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceIron.java index a4b79c8e3..889ceeb15 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceIron.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceIron.java @@ -3,13 +3,11 @@ package com.hbm.tileentity.machine; import com.hbm.inventory.UpgradeManager; import com.hbm.inventory.container.ContainerFurnaceIron; import com.hbm.inventory.gui.GUIFurnaceIron; -import com.hbm.items.ModItems; import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import com.hbm.module.ModuleBurnTime; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; -import api.hbm.energy.IBatteryItem; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.gui.GuiScreen; @@ -18,7 +16,6 @@ import net.minecraft.inventory.Container; import net.minecraft.item.ItemStack; import net.minecraft.item.crafting.FurnaceRecipes; import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntityFurnace; import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @@ -180,6 +177,24 @@ public class TileEntityFurnaceIron extends TileEntityMachineBase implements IGUI public boolean canExtractItem(int i, ItemStack itemStack, int j) { return i == 3; } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + + this.maxBurnTime = nbt.getInteger("maxBurnTime"); + this.burnTime = nbt.getInteger("burnTime"); + this.progress = nbt.getInteger("progress"); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + + nbt.setInteger("maxBurnTime", maxBurnTime); + nbt.setInteger("burnTime", burnTime); + nbt.setInteger("progress", progress); + } @Override public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityITER.java b/src/main/java/com/hbm/tileentity/machine/TileEntityITER.java index fbbc253c8..63f66db13 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityITER.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityITER.java @@ -82,6 +82,7 @@ public class TileEntityITER extends TileEntityMachineBase implements IEnergyUser if (age == 9 || age == 19) fillFluidInit(tanks[1].getTankType()); + this.updateConnections(); power = Library.chargeTEFromItems(slots, 0, power, maxPower); /// START Processing part /// @@ -165,9 +166,6 @@ public class TileEntityITER extends TileEntityMachineBase implements IEnergyUser this.networkPack(data, 250); /// END Notif packets /// - - this.trySubscribe(worldObj, xCoord, yCoord + 3, zCoord, ForgeDirection.UP); - this.trySubscribe(worldObj, xCoord, yCoord - 3, zCoord, ForgeDirection.DOWN); } else { @@ -185,6 +183,20 @@ public class TileEntityITER extends TileEntityMachineBase implements IEnergyUser } } + private void updateConnections() { + + this.trySubscribe(worldObj, xCoord, yCoord + 3, zCoord, ForgeDirection.UP); + this.trySubscribe(worldObj, xCoord, yCoord - 3, zCoord, ForgeDirection.DOWN); + + Vec3 vec = Vec3.createVectorHelper(5.75, 0, 0); + + for(int i = 0; i < 16; i++) { + vec.rotateAroundY((float) (Math.PI / 8)); + this.trySubscribe(worldObj, xCoord + (int)vec.xCoord, yCoord + 3, zCoord + (int)vec.zCoord, ForgeDirection.UP); + this.trySubscribe(worldObj, xCoord + (int)vec.xCoord, yCoord - 3, zCoord + (int)vec.zCoord, ForgeDirection.DOWN); + } + } + private void explode() { this.disassemble(); From c98a011141c43b23f607c81da3f6342f96a4eb98 Mon Sep 17 00:00:00 2001 From: Bob Date: Tue, 21 Jun 2022 22:56:20 +0200 Subject: [PATCH 78/80] manual artillery contoller --- .../projectile/EntityArtilleryShell.java | 1 + src/main/java/com/hbm/items/ModItems.java | 3 + .../items/tool/ItemDesignatorArtyRange.java | 93 ++++++++++++++ .../turret/TileEntityTurretArty.java | 113 +++++++++++++++++- .../hbm/textures/items/designator_arty.png | Bin 0 -> 299 bytes .../textures/items/designator_arty_range.png | Bin 0 -> 259 bytes 6 files changed, 206 insertions(+), 4 deletions(-) create mode 100644 src/main/java/com/hbm/items/tool/ItemDesignatorArtyRange.java create mode 100644 src/main/resources/assets/hbm/textures/items/designator_arty.png create mode 100644 src/main/resources/assets/hbm/textures/items/designator_arty_range.png diff --git a/src/main/java/com/hbm/entity/projectile/EntityArtilleryShell.java b/src/main/java/com/hbm/entity/projectile/EntityArtilleryShell.java index 94db45ec8..59c7cb984 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityArtilleryShell.java +++ b/src/main/java/com/hbm/entity/projectile/EntityArtilleryShell.java @@ -1,5 +1,6 @@ package com.hbm.entity.projectile; +import com.hbm.entity.effect.EntityNukeTorex; import com.hbm.entity.logic.IChunkLoader; import cpw.mods.fml.relauncher.Side; diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 897408806..7eaa6edb2 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -1212,6 +1212,7 @@ public class ModItems { public static Item designator; public static Item designator_range; public static Item designator_manual; + public static Item designator_arty_range; public static Item linker; public static Item reactor_sensor; public static Item oil_detector; @@ -3976,6 +3977,7 @@ public class ModItems { designator = new ItemDesingator().setUnlocalizedName("designator").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":designator"); designator_range = new ItemDesingatorRange().setUnlocalizedName("designator_range").setFull3D().setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":designator_range_alt"); designator_manual = new ItemDesingatorManual().setUnlocalizedName("designator_manual").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":designator_manual"); + designator_arty_range = new ItemDesignatorArtyRange().setUnlocalizedName("designator_arty_range").setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":designator_arty_range"); missile_assembly = new Item().setUnlocalizedName("missile_assembly").setMaxStackSize(1).setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":missile_assembly"); missile_generic = new Item().setUnlocalizedName("missile_generic").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_generic"); missile_anti_ballistic = new Item().setUnlocalizedName("missile_anti_ballistic").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_anti_ballistic"); @@ -6926,6 +6928,7 @@ public class ModItems { GameRegistry.registerItem(designator, designator.getUnlocalizedName()); GameRegistry.registerItem(designator_range, designator_range.getUnlocalizedName()); GameRegistry.registerItem(designator_manual, designator_manual.getUnlocalizedName()); + GameRegistry.registerItem(designator_arty_range, designator_arty_range.getUnlocalizedName()); GameRegistry.registerItem(turret_control, turret_control.getUnlocalizedName()); GameRegistry.registerItem(turret_chip, turret_chip.getUnlocalizedName()); //GameRegistry.registerItem(turret_biometry, turret_biometry.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/tool/ItemDesignatorArtyRange.java b/src/main/java/com/hbm/items/tool/ItemDesignatorArtyRange.java new file mode 100644 index 000000000..b69f70150 --- /dev/null +++ b/src/main/java/com/hbm/items/tool/ItemDesignatorArtyRange.java @@ -0,0 +1,93 @@ +package com.hbm.items.tool; + +import java.util.List; + +import com.hbm.blocks.ModBlocks; +import com.hbm.blocks.turret.TurretArty; +import com.hbm.lib.Library; +import com.hbm.tileentity.turret.TileEntityTurretArty; + +import net.minecraft.block.Block; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.MovingObjectPosition; +import net.minecraft.world.World; + +public class ItemDesignatorArtyRange extends Item { + + public ItemDesignatorArtyRange() { + this.setFull3D(); + this.setMaxStackSize(1); + } + + @Override + public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { + if(itemstack.getTagCompound() == null) { + list.add(EnumChatFormatting.RED + "No turret linked!"); + } else { + list.add(EnumChatFormatting.YELLOW + "Linked to " + itemstack.stackTagCompound.getInteger("x") + ", " + itemstack.stackTagCompound.getInteger("y") + ", " + itemstack.stackTagCompound.getInteger("z")); + } + } + + @Override + public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int side, float hitX, float hitY, float hitZ) { + + Block b = world.getBlock(x, y, z); + + if(b == ModBlocks.turret_arty) { + int pos[] = ((TurretArty) b).findCore(world, x, y, z); + + if(pos == null) + return false; + + TileEntity te = world.getTileEntity(pos[0], pos[1], pos[2]); + + if(te instanceof TileEntityTurretArty) { + + if(world.isRemote) + return true; + + if(!stack.hasTagCompound()) + stack.stackTagCompound = new NBTTagCompound(); + + stack.stackTagCompound.setInteger("x", pos[0]); + stack.stackTagCompound.setInteger("y", pos[1]); + stack.stackTagCompound.setInteger("z", pos[2]); + world.playSoundAtEntity(player, "hbm:item.techBleep", 1.0F, 1.0F); + return true; + } + } + + return false; + } + + @Override + public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) { + + if(!stack.hasTagCompound()) + return stack; + + MovingObjectPosition pos = Library.rayTrace(player, 500, 1); + int x = pos.blockX; + int y = pos.blockY; + int z = pos.blockZ; + + if(!world.isRemote) { + TileEntity te = world.getTileEntity(stack.stackTagCompound.getInteger("x"), stack.stackTagCompound.getInteger("y"), stack.stackTagCompound.getInteger("z")); + + if(te instanceof TileEntityTurretArty) { + TileEntityTurretArty arty = (TileEntityTurretArty) te; + if(arty.mode == arty.MODE_MANUAL) { + arty.enqueueTarget(x + 0.5, y + 0.5, z + 0.5); + world.playSoundAtEntity(player, "hbm:item.techBoop", 1.0F, 1.0F); + } + } + } + + return stack; + } +} diff --git a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretArty.java b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretArty.java index f3206da5d..7728a7e13 100644 --- a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretArty.java +++ b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretArty.java @@ -16,12 +16,9 @@ import com.hbm.tileentity.IGUIProvider; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.potion.Potion; -import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.Vec3; import net.minecraft.world.World; @@ -35,6 +32,8 @@ public class TileEntityTurretArty extends TileEntityTurretBaseNT implements IGUI private boolean retracting = false; public double barrelPos = 0; public double lastBarrelPos = 0; + + private List targetQueue = new ArrayList(); static List configs = new ArrayList(); @@ -46,6 +45,10 @@ public class TileEntityTurretArty extends TileEntityTurretBaseNT implements IGUI configs.add(BulletConfigSyncingUtil.SHELL_W9); } + public void enqueueTarget(double x, double y, double z) { + this.targetQueue.add(Vec3.createVectorHelper(x, y, z)); + } + @Override protected List getAmmoList() { return configs; @@ -195,7 +198,104 @@ public class TileEntityTurretArty extends TileEntityTurretBaseNT implements IGUI } } - super.updateEntity(); + if(this.mode == this.MODE_MANUAL) { + if(!this.targetQueue.isEmpty()) { + this.tPos = this.targetQueue.get(0); + } + } else { + this.targetQueue.clear(); + } + + if(worldObj.isRemote) { + this.lastRotationPitch = this.rotationPitch; + this.lastRotationYaw = this.rotationYaw; + } + + this.aligned = false; + + if(!worldObj.isRemote) { + + if(this.target != null && !target.isEntityAlive()) { + this.target = null; + this.stattrak++; + } + } + + if(target != null && this.mode != this.MODE_MANUAL) { + if(!this.entityInLOS(this.target)) { + this.target = null; + } + } + + if(!worldObj.isRemote) { + + if(target != null) { + this.tPos = this.getEntityPos(target); + } else { + if(this.mode != this.MODE_MANUAL) { + this.tPos = null; + } + } + } + + if(isOn() && hasPower()) { + + if(tPos != null) + this.alignTurret(); + } else { + + this.target = null; + this.tPos = null; + } + + if(!worldObj.isRemote) { + + if(this.target != null && !target.isEntityAlive()) { + this.target = null; + this.tPos = null; + this.stattrak++; + } + + if(isOn() && hasPower()) { + searchTimer--; + + this.setPower(this.getPower() - this.getConsumption()); + + if(searchTimer <= 0) { + searchTimer = this.getDecetorInterval(); + + if(this.target == null) + this.seekNewTarget(); + } + } else { + searchTimer = 0; + } + + if(this.aligned) { + this.updateFiringTick(); + } + + this.power = Library.chargeTEFromItems(slots, 10, this.power, this.getMaxPower()); + + NBTTagCompound data = this.writePacket(); + this.networkPack(data, 250); + + } else { + + Vec3 vec = Vec3.createVectorHelper(this.getBarrelLength(), 0, 0); + vec.rotateAroundZ((float) -this.rotationPitch); + vec.rotateAroundY((float) -(this.rotationYaw + Math.PI * 0.5)); + + //this will fix the interpolation error when the turret crosses the 360° point + if(Math.abs(this.lastRotationYaw - this.rotationYaw) > Math.PI) { + + if(this.lastRotationYaw < this.rotationYaw) + this.lastRotationYaw += Math.PI * 2; + else + this.lastRotationYaw -= Math.PI * 2; + } + } + this.didJustShoot = false; } @@ -220,6 +320,11 @@ public class TileEntityTurretArty extends TileEntityTurretBaseNT implements IGUI vec.rotateAroundY((float) -(this.rotationYaw + Math.PI * 0.5)); this.didJustShoot = true; + if(this.mode == this.MODE_MANUAL && !this.targetQueue.isEmpty()) { + this.targetQueue.remove(0); + this.tPos = null; + } + NBTTagCompound data = new NBTTagCompound(); data.setString("type", "vanillaExt"); data.setString("mode", "largeexplode"); diff --git a/src/main/resources/assets/hbm/textures/items/designator_arty.png b/src/main/resources/assets/hbm/textures/items/designator_arty.png new file mode 100644 index 0000000000000000000000000000000000000000..29d9482423384557abe60753f5c2475d2f1ff54f GIT binary patch literal 299 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJV{wqX6T`Z5GB1G~mUKs7M+SzC z{oH>NS%G}x0G|-oyu7^l`1pDThFA5*ukywJZ>j&kq5S{+=>OAv{%0{TNHYDGWV)Rz z_rF*9c82KfDiff-fK|4qfRtcKkYDhBG{B&`c4iV#lC!`gvY3H^?*IrhW?k##1PZ2j zx;Tbt1m~WPNS%G}T0G|-o+qrW8r}_NfQm>$(@V{5NVA20Cb?iK;|DERk|1#SNs47DLG(V8y zE(!7r{tpKXUjB@qfWn*w9+AZi419+`m{C;2s{tq&;_2cTq7fW>##`us0ta(IhM@L$ z`vUJDS0=VjwsGB*%w*=K^6#kd$FC>%HahT#2{f5U=w&u+IHG#M_1K3=2}?d(CMv04 oh>|iq|Bf|kZ}_V3%PrINWpdabGb9CE1Dem^>FVdQ&MBb@0Ih>sKmY&$ literal 0 HcmV?d00001 From aebcf90026391bfd6c387db995c6de26b9bfb6f0 Mon Sep 17 00:00:00 2001 From: Boblet Date: Wed, 22 Jun 2022 16:58:48 +0200 Subject: [PATCH 79/80] iron furnace fix, artillery shells --- .../projectile/EntityArtilleryShell.java | 39 +++++++++- .../com/hbm/items/weapon/ItemAmmoArty.java | 73 ++++++++++++++----- .../machine/TileEntityFurnaceIron.java | 1 + .../turret/TileEntityTurretArty.java | 3 + 4 files changed, 94 insertions(+), 22 deletions(-) diff --git a/src/main/java/com/hbm/entity/projectile/EntityArtilleryShell.java b/src/main/java/com/hbm/entity/projectile/EntityArtilleryShell.java index 59c7cb984..aa3932408 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityArtilleryShell.java +++ b/src/main/java/com/hbm/entity/projectile/EntityArtilleryShell.java @@ -1,10 +1,12 @@ package com.hbm.entity.projectile; -import com.hbm.entity.effect.EntityNukeTorex; import com.hbm.entity.logic.IChunkLoader; +import com.hbm.items.weapon.ItemAmmoArty; +import com.hbm.items.weapon.ItemAmmoArty.ArtilleryShell; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.MathHelper; import net.minecraft.util.MovingObjectPosition; import net.minecraft.util.Vec3; @@ -33,12 +35,18 @@ public class EntityArtilleryShell extends EntityThrowableNT implements IChunkLoa private double targetX; private double targetY; private double targetZ; + private boolean shouldWhistle = false; private boolean didWhistle = false; public EntityArtilleryShell(World world) { super(world); this.ignoreFrustumCheck = true; } + + @Override + protected void entityInit() { + this.dataWatcher.addObject(10, new Integer(0)); + } @Override @SideOnly(Side.CLIENT) @@ -46,19 +54,36 @@ public class EntityArtilleryShell extends EntityThrowableNT implements IChunkLoa return true; } + public EntityArtilleryShell setType(int type) { + this.dataWatcher.updateObject(10, type); + return this; + } + + public ArtilleryShell getType() { + try { + return ItemAmmoArty.types[this.dataWatcher.getWatchableObjectInt(10)]; + } catch(Exception ex) { + return ItemAmmoArty.types[0]; + } + } + public void setTarget(int x, int y, int z) { this.targetX = x; this.targetY = y; this.targetZ = z; } + public void setWhistle(boolean whistle) { + this.shouldWhistle = whistle; + } + @Override public void onUpdate() { if(!worldObj.isRemote) { super.onUpdate(); - if(!didWhistle) { + if(!didWhistle && this.shouldWhistle) { double speed = Math.sqrt(this.motionX * this.motionX + this.motionZ * this.motionZ); double deltaX = this.posX - this.targetX; double deltaZ = this.posZ - this.targetZ; @@ -128,6 +153,16 @@ public class EntityArtilleryShell extends EntityThrowableNT implements IChunkLoa } } + @Override + public void writeEntityToNBT(NBTTagCompound nbt) { + super.writeEntityToNBT(nbt); + } + + @Override + public void readEntityFromNBT(NBTTagCompound nbt) { + super.readEntityFromNBT(nbt); + } + @Override protected float getAirDrag() { return 1.0F; diff --git a/src/main/java/com/hbm/items/weapon/ItemAmmoArty.java b/src/main/java/com/hbm/items/weapon/ItemAmmoArty.java index 7fd5cd5e3..ca959594c 100644 --- a/src/main/java/com/hbm/items/weapon/ItemAmmoArty.java +++ b/src/main/java/com/hbm/items/weapon/ItemAmmoArty.java @@ -2,9 +2,9 @@ package com.hbm.items.weapon; import java.util.List; +import com.hbm.entity.projectile.EntityArtilleryShell; import com.hbm.lib.RefStrings; import com.hbm.main.MainRegistry; -import com.hbm.util.EnumUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -13,45 +13,40 @@ import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.IIcon; +import net.minecraft.util.MovingObjectPosition; public class ItemAmmoArty extends Item { - public static enum EnumArtyType { - NORMAL("ammo_arty"), - CLASSIC("ammo_arty_classic"), - EXPLOSIVE("ammo_arty_he"), - MINI_NUKE("ammo_arty_mini_nuke"), - NUKE("ammo_arty_nuke"); - - private String name; - - private EnumArtyType(String texture) { - this.name = texture; - } - } + public static ArtilleryShell[] types = new ArtilleryShell[5]; + public int NORMAL = 0; + public int CLASSIC = 1; + public int EXPLOSIVE = 2; + public int MINI_NUKE = 3; + public int NUKE = 4; public ItemAmmoArty() { this.setHasSubtypes(true); this.setCreativeTab(MainRegistry.weaponTab); + init(); } @Override @SideOnly(Side.CLIENT) public void getSubItems(Item item, CreativeTabs tab, List list) { - for(int i = 0; i < EnumArtyType.values().length; i++) { + for(int i = 0; i < types.length; i++) { list.add(new ItemStack(item, 1, i)); } } - private IIcon[] icons = new IIcon[EnumArtyType.values().length]; + private IIcon[] icons = new IIcon[types.length]; @SideOnly(Side.CLIENT) public void registerIcons(IIconRegister reg) { - this.icons = new IIcon[EnumArtyType.values().length]; + this.icons = new IIcon[types.length]; for(int i = 0; i < icons.length; i++) { - this.icons[i] = reg.registerIcon(RefStrings.MODID + ":" + EnumArtyType.values()[i].name); + this.icons[i] = reg.registerIcon(RefStrings.MODID + ":" + types[i].name); } } @@ -63,7 +58,45 @@ public class ItemAmmoArty extends Item { @Override public String getUnlocalizedName(ItemStack stack) { - EnumArtyType num = EnumUtil.grabEnumSafely(EnumArtyType.class, stack.getItemDamage()); - return "item." + num.name; + return "item." + types[Math.abs(stack.getItemDamage()) % types.length].name; + } + + public static abstract class ArtilleryShell { + + String name; + + public ArtilleryShell(String name) { + this.name = name; + } + + public abstract void onImpact(EntityArtilleryShell shell, MovingObjectPosition mop); + } + + private void init() { + this.types[NORMAL] = new ArtilleryShell("ammo_arty") { + @Override public void onImpact(EntityArtilleryShell shell, MovingObjectPosition mop) { + shell.setDead(); + } + }; + this.types[CLASSIC] = new ArtilleryShell("ammo_arty") { + @Override public void onImpact(EntityArtilleryShell shell, MovingObjectPosition mop) { + shell.setDead(); + } + }; + this.types[EXPLOSIVE] = new ArtilleryShell("ammo_arty") { + @Override public void onImpact(EntityArtilleryShell shell, MovingObjectPosition mop) { + shell.setDead(); + } + }; + this.types[MINI_NUKE] = new ArtilleryShell("ammo_arty") { + @Override public void onImpact(EntityArtilleryShell shell, MovingObjectPosition mop) { + shell.setDead(); + } + }; + this.types[NUKE] = new ArtilleryShell("ammo_arty") { + @Override public void onImpact(EntityArtilleryShell shell, MovingObjectPosition mop) { + shell.setDead(); + } + }; } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceIron.java b/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceIron.java index 889ceeb15..2b8fcab0b 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceIron.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceIron.java @@ -202,6 +202,7 @@ public class TileEntityFurnaceIron extends TileEntityMachineBase implements IGUI } @Override + @SideOnly(Side.CLIENT) public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIFurnaceIron(player.inventory, this); } diff --git a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretArty.java b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretArty.java index 7728a7e13..050a1f007 100644 --- a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretArty.java +++ b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretArty.java @@ -14,6 +14,8 @@ import com.hbm.packet.PacketDispatcher; import com.hbm.tileentity.IGUIProvider; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; @@ -367,6 +369,7 @@ public class TileEntityTurretArty extends TileEntityTurretBaseNT implements IGUI } @Override + @SideOnly(Side.CLIENT) public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUITurretArty(player.inventory, this); } From 90de2eabdcd411f98303bdbd8d01f930c8e869e4 Mon Sep 17 00:00:00 2001 From: Bob Date: Wed, 22 Jun 2022 23:24:55 +0200 Subject: [PATCH 80/80] arty actually using the proper ammo types --- .../projectile/EntityArtilleryShell.java | 7 +- .../com/hbm/items/weapon/ItemAmmoArty.java | 18 +++- .../turret/TileEntityTurretArty.java | 98 ++++++++++++++----- 3 files changed, 92 insertions(+), 31 deletions(-) diff --git a/src/main/java/com/hbm/entity/projectile/EntityArtilleryShell.java b/src/main/java/com/hbm/entity/projectile/EntityArtilleryShell.java index aa3932408..1585ade7b 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityArtilleryShell.java +++ b/src/main/java/com/hbm/entity/projectile/EntityArtilleryShell.java @@ -9,7 +9,6 @@ import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.MathHelper; import net.minecraft.util.MovingObjectPosition; -import net.minecraft.util.Vec3; import net.minecraft.world.ChunkCoordIntPair; import net.minecraft.world.World; import net.minecraftforge.common.ForgeChunkManager; @@ -135,9 +134,11 @@ public class EntityArtilleryShell extends EntityThrowableNT implements IChunkLoa protected void onImpact(MovingObjectPosition mop) { if(!worldObj.isRemote) { - Vec3 vec = Vec3.createVectorHelper(motionX, motionY, motionZ).normalize(); + /*Vec3 vec = Vec3.createVectorHelper(motionX, motionY, motionZ).normalize(); this.worldObj.newExplosion(this, mop.hitVec.xCoord - vec.xCoord, mop.hitVec.yCoord - vec.yCoord, mop.hitVec.zCoord - vec.zCoord, 15F, false, false); - this.setDead(); + this.setDead();*/ + + this.getType().onImpact(this, mop); } } diff --git a/src/main/java/com/hbm/items/weapon/ItemAmmoArty.java b/src/main/java/com/hbm/items/weapon/ItemAmmoArty.java index ca959594c..a0caea460 100644 --- a/src/main/java/com/hbm/items/weapon/ItemAmmoArty.java +++ b/src/main/java/com/hbm/items/weapon/ItemAmmoArty.java @@ -3,6 +3,7 @@ package com.hbm.items.weapon; import java.util.List; import com.hbm.entity.projectile.EntityArtilleryShell; +import com.hbm.explosion.ExplosionNukeSmall; import com.hbm.lib.RefStrings; import com.hbm.main.MainRegistry; @@ -14,6 +15,7 @@ import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.IIcon; import net.minecraft.util.MovingObjectPosition; +import net.minecraft.util.Vec3; public class ItemAmmoArty extends Item { @@ -75,25 +77,33 @@ public class ItemAmmoArty extends Item { private void init() { this.types[NORMAL] = new ArtilleryShell("ammo_arty") { @Override public void onImpact(EntityArtilleryShell shell, MovingObjectPosition mop) { + Vec3 vec = Vec3.createVectorHelper(shell.motionX, shell.motionY, shell.motionZ).normalize(); + shell.worldObj.newExplosion(shell, mop.hitVec.xCoord - vec.xCoord, mop.hitVec.yCoord - vec.yCoord, mop.hitVec.zCoord - vec.zCoord, 15F, false, false); shell.setDead(); } }; - this.types[CLASSIC] = new ArtilleryShell("ammo_arty") { + this.types[CLASSIC] = new ArtilleryShell("ammo_arty_classic") { @Override public void onImpact(EntityArtilleryShell shell, MovingObjectPosition mop) { + Vec3 vec = Vec3.createVectorHelper(shell.motionX, shell.motionY, shell.motionZ).normalize(); + shell.worldObj.newExplosion(shell, mop.hitVec.xCoord - vec.xCoord, mop.hitVec.yCoord - vec.yCoord, mop.hitVec.zCoord - vec.zCoord, 25F, false, false); shell.setDead(); } }; - this.types[EXPLOSIVE] = new ArtilleryShell("ammo_arty") { + this.types[EXPLOSIVE] = new ArtilleryShell("ammo_arty_he") { @Override public void onImpact(EntityArtilleryShell shell, MovingObjectPosition mop) { + Vec3 vec = Vec3.createVectorHelper(shell.motionX, shell.motionY, shell.motionZ).normalize(); + shell.worldObj.newExplosion(shell, mop.hitVec.xCoord - vec.xCoord, mop.hitVec.yCoord - vec.yCoord, mop.hitVec.zCoord - vec.zCoord, 15F, false, true); shell.setDead(); } }; - this.types[MINI_NUKE] = new ArtilleryShell("ammo_arty") { + this.types[MINI_NUKE] = new ArtilleryShell("ammo_arty_mini_nuke") { @Override public void onImpact(EntityArtilleryShell shell, MovingObjectPosition mop) { + //Vec3 vec = Vec3.createVectorHelper(shell.motionX, shell.motionY, shell.motionZ).normalize(); + ExplosionNukeSmall.explode(shell.worldObj, mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord, ExplosionNukeSmall.medium); shell.setDead(); } }; - this.types[NUKE] = new ArtilleryShell("ammo_arty") { + this.types[NUKE] = new ArtilleryShell("ammo_arty_nuke") { @Override public void onImpact(EntityArtilleryShell shell, MovingObjectPosition mop) { shell.setDead(); } diff --git a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretArty.java b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretArty.java index 050a1f007..2e147e50d 100644 --- a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretArty.java +++ b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretArty.java @@ -5,9 +5,9 @@ import java.util.List; import com.hbm.entity.projectile.EntityArtilleryShell; import com.hbm.handler.BulletConfigSyncingUtil; -import com.hbm.handler.BulletConfiguration; import com.hbm.inventory.container.ContainerTurretBase; import com.hbm.inventory.gui.GUITurretArty; +import com.hbm.items.ModItems; import com.hbm.lib.Library; import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; @@ -20,6 +20,7 @@ import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; +import net.minecraft.item.Item; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.Vec3; import net.minecraft.world.World; @@ -83,12 +84,12 @@ public class TileEntityTurretArty extends TileEntityTurretBaseNT implements IGUI @Override public double getDecetorRange() { - return 128D; + return this.mode == this.MODE_CANNON ? 128D : 3000D; } @Override public double getDecetorGrace() { - return 32D; + return this.mode == this.MODE_CANNON ? 32D : 250D; } @Override @@ -122,6 +123,15 @@ public class TileEntityTurretArty extends TileEntityTurretBaseNT implements IGUI if(this.mode == this.MODE_CANNON) { return super.entityInLOS(e); } else { + + Vec3 pos = this.getTurretPos(); + Vec3 ent = this.getEntityPos(e); + Vec3 delta = Vec3.createVectorHelper(ent.xCoord - pos.xCoord, ent.yCoord - pos.yCoord, ent.zCoord - pos.zCoord); + double length = delta.lengthVector(); + + if(length < this.getDecetorGrace() || length > this.getDecetorRange() * 1.1) //the latter statement is only relevant for entities that have already been detected + return false; + int height = worldObj.getHeightValue((int) Math.floor(e.posX), (int) Math.floor(e.posZ)); return height < (e.posY + e.height); } @@ -153,14 +163,38 @@ public class TileEntityTurretArty extends TileEntityTurretBaseNT implements IGUI double v0 = 20; double v02 = v0 * v0; double g = 9.81 * 0.05; - double upperLower = mode == MODE_CANNON ? 1 : 1; + double upperLower = mode == MODE_CANNON ? -1 : 1; double targetPitch = Math.atan((v02 + Math.sqrt(v02*v02 - g*(g*x*x + 2*y*v02)) * upperLower) / (g*x)); this.turnTowardsAngle(targetPitch, targetYaw); } + + public int getShellLoaded() { + + for(int i = 1; i < 10; i++) { + if(slots[i] != null) { + if(slots[i].getItem() == ModItems.ammo_arty) { + return slots[i].getItemDamage(); + } + } + } + + return -1; + } + + public void conusmeAmmo(Item ammo) { + + for(int i = 1; i < 10; i++) { + if(slots[i] != null && slots[i].getItem() == ammo) { + this.decrStackSize(i, 1); + return; + } + } + + this.markDirty(); + } - @Override - public void spawnBullet(BulletConfiguration bullet) { + public void spawnShell(int type) { Vec3 pos = this.getTurretPos(); Vec3 vec = Vec3.createVectorHelper(this.getBarrelLength(), 0, 0); @@ -171,6 +205,10 @@ public class TileEntityTurretArty extends TileEntityTurretBaseNT implements IGUI proj.setPositionAndRotation(pos.xCoord + vec.xCoord, pos.yCoord + vec.yCoord, pos.zCoord + vec.zCoord, 0.0F, 0.0F); proj.setThrowableHeading(vec.xCoord, vec.yCoord, vec.zCoord, 20F, 0.0F); proj.setTarget((int) tPos.xCoord, (int) tPos.yCoord, (int) tPos.zCoord); + proj.setType(type); + + if(this.mode != this.MODE_CANNON) + proj.setWhistle(true); worldObj.spawnEntityInWorld(proj); } @@ -181,10 +219,6 @@ public class TileEntityTurretArty extends TileEntityTurretBaseNT implements IGUI if(worldObj.isRemote) { this.lastBarrelPos = this.barrelPos; - if(this.didJustShoot) { - this.retracting = true; - } - if(this.retracting) { this.barrelPos += 0.5; @@ -266,7 +300,7 @@ public class TileEntityTurretArty extends TileEntityTurretBaseNT implements IGUI if(searchTimer <= 0) { searchTimer = this.getDecetorInterval(); - if(this.target == null) + if(this.target == null && this.mode != this.MODE_MANUAL) this.seekNewTarget(); } } else { @@ -282,6 +316,8 @@ public class TileEntityTurretArty extends TileEntityTurretBaseNT implements IGUI NBTTagCompound data = this.writePacket(); this.networkPack(data, 250); + this.didJustShoot = false; + } else { Vec3 vec = Vec3.createVectorHelper(this.getBarrelLength(), 0, 0); @@ -297,8 +333,6 @@ public class TileEntityTurretArty extends TileEntityTurretBaseNT implements IGUI this.lastRotationYaw -= Math.PI * 2; } } - - this.didJustShoot = false; } int timer; @@ -310,11 +344,11 @@ public class TileEntityTurretArty extends TileEntityTurretBaseNT implements IGUI if(timer % 40 == 0) { - BulletConfiguration conf = this.getFirstConfigLoaded(); + int conf = this.getShellLoaded(); - if(conf != null) { - this.spawnBullet(conf); - //this.conusmeAmmo(conf.ammo); + if(conf != -1) { + this.spawnShell(conf); + this.conusmeAmmo(ModItems.ammo_arty); this.worldObj.playSoundEffect(xCoord, yCoord, zCoord, "hbm:turret.jeremy_fire", 25.0F, 1.0F); Vec3 pos = this.getTurretPos(); Vec3 vec = Vec3.createVectorHelper(this.getBarrelLength(), 0, 0); @@ -322,11 +356,6 @@ public class TileEntityTurretArty extends TileEntityTurretBaseNT implements IGUI vec.rotateAroundY((float) -(this.rotationYaw + Math.PI * 0.5)); this.didJustShoot = true; - if(this.mode == this.MODE_MANUAL && !this.targetQueue.isEmpty()) { - this.targetQueue.remove(0); - this.tPos = null; - } - NBTTagCompound data = new NBTTagCompound(); data.setString("type", "vanillaExt"); data.setString("mode", "largeexplode"); @@ -334,6 +363,11 @@ public class TileEntityTurretArty extends TileEntityTurretBaseNT implements IGUI data.setByte("count", (byte)5); PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, pos.xCoord + vec.xCoord, pos.yCoord + vec.yCoord, pos.zCoord + vec.zCoord), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 150)); } + + if(this.mode == this.MODE_MANUAL && !this.targetQueue.isEmpty()) { + this.targetQueue.remove(0); + this.tPos = null; + } } } @@ -352,7 +386,8 @@ public class TileEntityTurretArty extends TileEntityTurretBaseNT implements IGUI protected NBTTagCompound writePacket() { NBTTagCompound data = super.writePacket(); data.setShort("mode", mode); - data.setBoolean("didJustShoot", didJustShoot); + if(didJustShoot) + data.setBoolean("didJustShoot", didJustShoot); return data; } @@ -360,7 +395,22 @@ public class TileEntityTurretArty extends TileEntityTurretBaseNT implements IGUI public void networkUnpack(NBTTagCompound nbt) { super.networkUnpack(nbt); this.mode = nbt.getShort("mode"); - this.didJustShoot = nbt.getBoolean("didJustShoot"); + if(nbt.getBoolean("didJustShoot")) + this.retracting = true; + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + + this.mode = nbt.getShort("mode"); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + + nbt.setShort("mode", this.mode); } @Override

    j9)&WwgN9ZPA?J(vf~~ueKR} z5>3L!cACX|o6)_xUxT#@$7#fs^nxqaY+?_NbQa)FF%J3cb^%V08mAZju;&@2v+~?w z@un|B{&pH^ot@>Z)JgW9`(u*1nQqO)#zf=9xAXPNXiNz`c2Z9*+LAXb{Ur|^EGuuh zscDr#jc6$2M9QcO^p0-X_}HAU<~8SqOjs-&FnLX|rmL>Oxo!&yE|AX!>dIgcfvYpA zNj>`Upmfb*>@R1nt+Zmhr|lLA0A&u#Q0$ycd6PiApCkBalUB1=0 z70Y&6NM@#KX_GtdXGI<_->DC_A-e0%u#>!uihZI`q+Od!hlKIBqwjUi#%yD}J-Ebh zNnqASK!poakF7TFm6Hp9)VQ&ctu;?2I>s|1+{Y7C9%NFGJ@GmlX^ATh8;}ZfB4LIM znEB9gkjD{@vrIFOj&(W_rOqqfnfQnXjQf);qk31f9?wL?J#Q#O8kp3TGb}k$l1}+P z1lz{-@!!C7<7Nh>Y{wd_SNLT@9NjP|@R%dI7#)Py)*1&n)C@mm+#mP;=i#A9lB=cp zy!5Gq;nOjtiP3J*PFY}$Xh-*JRQQTVP@7f1@q}{rJ8G=?xQpX zTgt>1m1&{lq4x^qpbFFLvWUf5d{3Rdi@rDK3OC!B*mf-AQek*=B4-zu5~nJMry56u zY%iI1uyU@RE$)cg>$%%tqP||U=fs>}MPprRXxb zRDAB71DqtpGwpu8VoUO>GXDYN38U(ADXLnuy7{_dv7_%aD0c6f&C{2Z`Go3E#|TH} z0YzIfKqcr^!H^^m%@4%oY{|6NMI~Pt>Dc@>&JMAZDV6NMa!VS}AK_FLu5}{0a;Hc! z?~x$D&qG*jG9FbB5BZq$R!-ct`ALOwb6jr_Q_|4Y3wFc%mT1rCl<@|pT0?gqFKlSd z-1N(ie8OM94I;mF6qf-Ssw&E5-1yWq)>n9u2iE7!MC<+TtYaTu8kQcTK!d5S9o`TO zB=EG{dacZ*J`5}8IYbjf-}o9s8;?&M;MKg448XYE2e;EjJ5+b;x(Q zGWq7;-@v|$UQZPz#nV)xu2Z(Jg}PRlb!c9B-^svet&|08CP~!blcb9yj*C?L>vSF# zn^?S~RAE7-8n4Kv7&V4;Xc3$^ky_!2mzN_6AF62i#BPeL$mhVxbApw3^?>Y}-_DP= z4!(nHBMN?yLZL47@sG21Wt%jpT0QmFfO2qzBWcRr?caEPo!x>3x}7gx#^QgsU(;d6 zpej3HygAiER0Q&pSz11Y z{qQf3P-RGGq@pR-%CuHVh)^|`gLAKwc+`LlH4qJc4n?vmf=+0|WwINIasbWD*h_g- ze(Ky(^V$iPG|F+I3rOz=NuBc8YDuM7|p6ydft~lNsDqQEP!a-MWR~j7I zGW5`^5#~f>Wif>YLLoii&k(vZ>`M2!l`!L7=pgHsXB>%G-XtXM-D=H z*d-I!C`~F&g31oMq`;&Omd9G?c zhEc>Eh#e8wi7NLz?y%eR^pXA5jOr$1UIevy=9(kQsUUn4pH{6-9bg zxggAP>j5?yRGh7q`WJ$^yL-E>ZV37AO zhI8E)ubIEnEtB3Yq;Yqk`w)0@lx~VIe)nGi&Pm^K^z}U0?dJbOveo~ZJdTUti*{sG zW^nYWp;FcD8wFsmIR0V5IDsw5=O(9*SvT^w=v}L)=wC64h}F>{?P9NC#81xscZ6|KCp zO&VIH#|_a7p(y?mT1d+kE>rwUni%;UAd}<-;2BQ#7Rp6nvs4D>QEJiv>08xX4|G2j z;3<0LN%^At$hjeu=~y9-e~;7hKbww&ZSxW`K8vn%bh`Kr{9E_59%)vo+eZFBWR_9h delta 8883 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 NO*L&)k&1cH{{i?ENFx9M From af35180620ede0cd47b541c2765e0e7e880a106d Mon Sep 17 00:00:00 2001 From: Vaern Date: Fri, 17 Jun 2022 11:25:51 -0700 Subject: [PATCH 72/80] changed the recipes a lil --- src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java index b6348bd0e..1d63c2a09 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java @@ -374,8 +374,8 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModItems.grenade_nuclear, 1), new AStack[] {new OreDictStack(IRON.plate(), 1), new OreDictStack(STEEL.plate(), 1), new OreDictStack(PU239.nugget(), 2), new ComparableStack(ModItems.wire_red_copper, 2), },200); makeRecipe(new ComparableStack(ModItems.grenade_zomg, 1), new AStack[] {new ComparableStack(ModItems.plate_paa, 3), new OreDictStack(OreDictManager.getReflector(), 1), new ComparableStack(ModItems.coil_magnetized_tungsten, 3), new ComparableStack(ModItems.powder_power, 3), },300); makeRecipe(new ComparableStack(ModItems.grenade_black_hole, 1), new AStack[] {new OreDictStack(ANY_PLASTIC.ingot(), 6), new OreDictStack(OreDictManager.getReflector(), 3), new ComparableStack(ModItems.coil_magnetized_tungsten, 2), new ComparableStack(ModItems.black_hole, 1), },500); - makeRecipe(new ComparableStack(ModItems.early_explosive_lenses, 1), new AStack[] {new OreDictStack(AL.plate(), 8), new ComparableStack(ModItems.hull_small_steel, 4), new ComparableStack(ModItems.wire_copper, 16), new ComparableStack(ModItems.wire_tungsten, 8), new ComparableStack(ModItems.ball_dynamite, 4), new OreDictStack(CU.plate(), 4), new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 24), new OreDictStack(AL.ingot(), 8)},400); //8 HE lenses w/ bridge-wire detonators, aluminum pushers, & duraluminum shell - makeRecipe(new ComparableStack(ModItems.explosive_lenses, 1), new AStack[] {new OreDictStack(AL.plate(), 8), new ComparableStack(ModItems.hull_small_steel, 2), new ComparableStack(ModItems.wire_red_copper, 8), new ComparableStack(ModItems.wire_gold, 8), new OreDictStack(ANY_PLASTICEXPLOSIVE.ingot(), 4), new OreDictStack(CU.plate(), 4), new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 20), new OreDictStack(AL.ingot(), 1)},500); //8 HE (To use 16 PBX ingots) lenses w/ improved bridge-wire detonators, thin aluminum pushers, & duraluminum shell + makeRecipe(new ComparableStack(ModItems.early_explosive_lenses, 1), new AStack[] {new OreDictStack(AL.plate(), 8), new ComparableStack(ModItems.wire_copper, 16), new ComparableStack(ModItems.wire_tungsten, 8), new ComparableStack(ModBlocks.det_cord, 8), new OreDictStack(CU.plate(), 2), new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 20), new OreDictStack(ANY_PLASTIC.ingot(), 4), new OreDictStack(AL.ingot(), 8)},400); //8 HE lenses (polymer inserts since no baratol) w/ bridge-wire detonators, aluminum pushers, & duraluminum shell + makeRecipe(new ComparableStack(ModItems.explosive_lenses, 1), new AStack[] {new OreDictStack(AL.plate(), 8), new ComparableStack(ModItems.wire_red_copper, 8), new ComparableStack(ModItems.wire_gold, 8), new OreDictStack(ANY_PLASTICEXPLOSIVE.ingot(), 4), new OreDictStack(CU.plate(), 2), new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 16), new OreDictStack(RUBBER.ingot(), 2), new OreDictStack(AL.ingot(), 1)},500); //8 HE (To use 16 PBX ingots; rubber inserts) lenses w/ improved bridge-wire detonators, thin aluminum pushers, & duraluminum shell makeRecipe(new ComparableStack(ModItems.gadget_wireing, 1), new AStack[] {new OreDictStack(IRON.plate(), 1), new ComparableStack(ModItems.wire_gold, 12), },100); makeRecipe(new ComparableStack(ModItems.gadget_core, 1), new AStack[] {new OreDictStack(PU239.nugget(), 7), new OreDictStack(U238.nugget(), 3), },200); makeRecipe(new ComparableStack(ModItems.boy_shielding, 1), new AStack[] {new OreDictStack(OreDictManager.getReflector(), 12), new OreDictStack(STEEL.plate(), 4), },150); From 43049bb730e2541c37bf5d7689e3b88faaa1c2d1 Mon Sep 17 00:00:00 2001 From: Vaern Date: Fri, 17 Jun 2022 12:20:31 -0700 Subject: [PATCH 73/80] Fixed the GC recipe for uranium fuel only having 2 UF nuggets, not 6 --- .../java/com/hbm/inventory/recipes/GasCentrifugeRecipes.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/hbm/inventory/recipes/GasCentrifugeRecipes.java b/src/main/java/com/hbm/inventory/recipes/GasCentrifugeRecipes.java index a7b78c542..0032e95ab 100644 --- a/src/main/java/com/hbm/inventory/recipes/GasCentrifugeRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/GasCentrifugeRecipes.java @@ -106,7 +106,7 @@ public class GasCentrifugeRecipes { gasCent.put(new FluidStack(1200, Fluids.UF6), new Object[] { new ItemStack[] {new ItemStack(ModItems.nugget_u238, 11), new ItemStack(ModItems.nugget_u235, 1), new ItemStack(ModItems.fluorite, 4)}, true, 4 }); gasCent.put(new FluidStack(1200, Fluids.UF6), new Object[] { new ItemStack[] - {new ItemStack(ModItems.nugget_u238, 6), new ItemStack(ModItems.nugget_uranium_fuel, 2), new ItemStack(ModItems.fluorite, 4)}, false, 2 }); + {new ItemStack(ModItems.nugget_u238, 6), new ItemStack(ModItems.nugget_uranium_fuel, 6), new ItemStack(ModItems.fluorite, 4)}, false, 2 }); gasCent.put(new FluidStack(900, Fluids.PUF6), new Object[] { new ItemStack[] {new ItemStack(ModItems.nugget_pu238, 3), new ItemStack(ModItems.nugget_pu_mix, 6), new ItemStack(ModItems.fluorite, 3)}, false, 1 }); gasCent.put(new FluidStack(1000, Fluids.WATZ), new Object[] { new ItemStack[] From 86a531cebe116477304ee861ea714cadd3f708e3 Mon Sep 17 00:00:00 2001 From: Bob Date: Sun, 19 Jun 2022 19:44:30 +0200 Subject: [PATCH 74/80] more arty stuff, conveyor fixes, crane retexture --- .../com/hbm/blocks/network/CraneInserter.java | 5 +- .../projectile/EntityArtilleryShell.java | 139 ++++++++ .../entity/projectile/EntityThrowableNT.java | 311 ++++++++++++++++++ .../container/ContainerMassStorage.java | 7 + .../java/com/hbm/inventory/fluid/Fluids.java | 4 +- .../com/hbm/inventory/gui/GUITurretArty.java | 5 +- src/main/java/com/hbm/items/ModItems.java | 3 + .../com/hbm/items/weapon/ItemAmmoArty.java | 69 ++++ src/main/java/com/hbm/main/ClientProxy.java | 1 + src/main/java/com/hbm/main/MainRegistry.java | 2 +- .../projectile/RenderArtilleryShell.java | 41 +++ .../render/tileentity/RenderTurretArty.java | 3 + .../storage/TileEntityMassStorage.java | 10 + .../network/TileEntityCraneInserter.java | 5 + .../turret/TileEntityTurretArty.java | 166 ++++++++-- .../turret/TileEntityTurretBaseNT.java | 33 +- src/main/resources/assets/hbm/sounds.json | 3 + .../assets/hbm/sounds/block/storageClose.ogg | Bin 0 -> 4369 bytes .../assets/hbm/sounds/block/storageOpen.ogg | Bin 0 -> 4426 bytes .../hbm/sounds/weapon/mortarWhistle.ogg | Bin 0 -> 11062 bytes .../assets/hbm/textures/blocks/crane_in.png | Bin 221 -> 305 bytes .../textures/blocks/crane_in_side_down.png | Bin 259 -> 421 bytes .../hbm/textures/blocks/crane_in_side_up.png | Bin 259 -> 419 bytes .../hbm/textures/blocks/crane_in_top.png | Bin 253 -> 364 bytes .../assets/hbm/textures/blocks/crane_out.png | Bin 178 -> 252 bytes .../textures/blocks/crane_out_side_down.png | Bin 253 -> 415 bytes .../hbm/textures/blocks/crane_out_side_up.png | Bin 254 -> 412 bytes .../hbm/textures/blocks/crane_out_top.png | Bin 244 -> 355 bytes .../assets/hbm/textures/blocks/crane_side.png | Bin 176 -> 349 bytes .../hbm/textures/blocks/crane_side_in.png | Bin 239 -> 358 bytes .../hbm/textures/blocks/crane_side_out.png | Bin 199 -> 325 bytes .../assets/hbm/textures/blocks/crane_top.png | Bin 162 -> 290 bytes .../textures/gui/weapon/gui_turret_arty.png | Bin 4431 -> 4645 bytes .../textures/items/ammo_arty_mini_nuke.png | Bin 338 -> 327 bytes 34 files changed, 763 insertions(+), 44 deletions(-) create mode 100644 src/main/java/com/hbm/entity/projectile/EntityArtilleryShell.java create mode 100644 src/main/java/com/hbm/entity/projectile/EntityThrowableNT.java create mode 100644 src/main/java/com/hbm/items/weapon/ItemAmmoArty.java create mode 100644 src/main/java/com/hbm/render/entity/projectile/RenderArtilleryShell.java create mode 100644 src/main/resources/assets/hbm/sounds/block/storageClose.ogg create mode 100644 src/main/resources/assets/hbm/sounds/block/storageOpen.ogg create mode 100644 src/main/resources/assets/hbm/sounds/weapon/mortarWhistle.ogg diff --git a/src/main/java/com/hbm/blocks/network/CraneInserter.java b/src/main/java/com/hbm/blocks/network/CraneInserter.java index 9b67b3eb6..4a78bb8e3 100644 --- a/src/main/java/com/hbm/blocks/network/CraneInserter.java +++ b/src/main/java/com/hbm/blocks/network/CraneInserter.java @@ -130,7 +130,8 @@ public class CraneInserter extends BlockCraneBase implements IEnterableBlock { int index = access == null ? i : access[i]; ItemStack stack = inv.getStackInSlot(index); - if(stack != null && toAdd.isItemEqual(stack) && ItemStack.areItemStackTagsEqual(toAdd, stack) && stack.stackSize < Math.min(stack.getMaxStackSize(), limit)) { + if(stack != null && toAdd.isItemEqual(stack) && ItemStack.areItemStackTagsEqual(toAdd, stack) && stack.stackSize < Math.min(stack.getMaxStackSize(), limit) + && ((sided == null || sided.canInsertItem(index, toAdd, side)) && inv.isItemValidForSlot(index, toAdd))) { int stackLimit = Math.min(stack.getMaxStackSize(), limit); int amount = Math.min(toAdd.stackSize, stackLimit - stack.stackSize); @@ -149,7 +150,7 @@ public class CraneInserter extends BlockCraneBase implements IEnterableBlock { int index = access == null ? i : access[i]; ItemStack stack = inv.getStackInSlot(index); - if(stack == null && (sided != null ? sided.canInsertItem(index, toAdd, side) : inv.isItemValidForSlot(index, toAdd))) { + if(stack == null && ((sided == null || sided.canInsertItem(index, toAdd, side)) && inv.isItemValidForSlot(index, toAdd))) { int amount = Math.min(toAdd.stackSize, limit); diff --git a/src/main/java/com/hbm/entity/projectile/EntityArtilleryShell.java b/src/main/java/com/hbm/entity/projectile/EntityArtilleryShell.java new file mode 100644 index 000000000..94db45ec8 --- /dev/null +++ b/src/main/java/com/hbm/entity/projectile/EntityArtilleryShell.java @@ -0,0 +1,139 @@ +package com.hbm.entity.projectile; + +import com.hbm.entity.logic.IChunkLoader; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.util.MathHelper; +import net.minecraft.util.MovingObjectPosition; +import net.minecraft.util.Vec3; +import net.minecraft.world.ChunkCoordIntPair; +import net.minecraft.world.World; +import net.minecraftforge.common.ForgeChunkManager; +import net.minecraftforge.common.ForgeChunkManager.Ticket; + +public class EntityArtilleryShell extends EntityThrowableNT implements IChunkLoader { + + private Ticket loaderTicket; + + private int turnProgress; + private double syncPosX; + private double syncPosY; + private double syncPosZ; + private double syncYaw; + private double syncPitch; + @SideOnly(Side.CLIENT) + private double velocityX; + @SideOnly(Side.CLIENT) + private double velocityY; + @SideOnly(Side.CLIENT) + private double velocityZ; + + private double targetX; + private double targetY; + private double targetZ; + private boolean didWhistle = false; + + public EntityArtilleryShell(World world) { + super(world); + this.ignoreFrustumCheck = true; + } + + @Override + @SideOnly(Side.CLIENT) + public boolean isInRangeToRenderDist(double distance) { + return true; + } + + public void setTarget(int x, int y, int z) { + this.targetX = x; + this.targetY = y; + this.targetZ = z; + } + + @Override + public void onUpdate() { + + if(!worldObj.isRemote) { + super.onUpdate(); + + if(!didWhistle) { + double speed = Math.sqrt(this.motionX * this.motionX + this.motionZ * this.motionZ); + double deltaX = this.posX - this.targetX; + double deltaZ = this.posZ - this.targetZ; + double dist = Math.sqrt(deltaX * deltaX + deltaZ * deltaZ); + + if(speed * 18 > dist) { + worldObj.playSoundEffect(this.targetX, this.targetY, this.targetZ, "hbm:turret.mortarWhistle", 5.0F, 1.0F); + this.didWhistle = true; + } + } + + } else { + if(this.turnProgress > 0) { + double interpX = this.posX + (this.syncPosX - this.posX) / (double) this.turnProgress; + double interpY = this.posY + (this.syncPosY - this.posY) / (double) this.turnProgress; + double interpZ = this.posZ + (this.syncPosZ - this.posZ) / (double) this.turnProgress; + double d = MathHelper.wrapAngleTo180_double(this.syncYaw - (double) this.rotationYaw); + this.rotationYaw = (float) ((double) this.rotationYaw + d / (double) this.turnProgress); + this.rotationPitch = (float)((double)this.rotationPitch + (this.syncPitch - (double)this.rotationPitch) / (double)this.turnProgress); + --this.turnProgress; + this.setPosition(interpX, interpY, interpZ); + } else { + this.setPosition(this.posX, this.posY, this.posZ); + } + } + } + + @SideOnly(Side.CLIENT) + public void setVelocity(double p_70016_1_, double p_70016_3_, double p_70016_5_) { + this.velocityX = this.motionX = p_70016_1_; + this.velocityY = this.motionY = p_70016_3_; + this.velocityZ = this.motionZ = p_70016_5_; + } + + @SideOnly(Side.CLIENT) + public void setPositionAndRotation2(double x, double y, double z, float yaw, float pitch, int theNumberThree) { + this.syncPosX = x; + this.syncPosY = y; + this.syncPosZ = z; + this.syncYaw = yaw; + this.syncPitch = pitch; + this.turnProgress = theNumberThree; + this.motionX = this.velocityX; + this.motionY = this.velocityY; + this.motionZ = this.velocityZ; + } + + @Override + protected void onImpact(MovingObjectPosition mop) { + + if(!worldObj.isRemote) { + Vec3 vec = Vec3.createVectorHelper(motionX, motionY, motionZ).normalize(); + this.worldObj.newExplosion(this, mop.hitVec.xCoord - vec.xCoord, mop.hitVec.yCoord - vec.yCoord, mop.hitVec.zCoord - vec.zCoord, 15F, false, false); + this.setDead(); + } + } + + @Override + public void init(Ticket ticket) { + if(!worldObj.isRemote && ticket != null) { + if(loaderTicket == null) { + loaderTicket = ticket; + loaderTicket.bindEntity(this); + loaderTicket.getModData(); + } + ForgeChunkManager.forceChunk(loaderTicket, new ChunkCoordIntPair(chunkCoordX, chunkCoordZ)); + } + } + + @Override + protected float getAirDrag() { + return 1.0F; + } + + @Override + public double getGravityVelocity() { + return 9.81 * 0.05; + } +} diff --git a/src/main/java/com/hbm/entity/projectile/EntityThrowableNT.java b/src/main/java/com/hbm/entity/projectile/EntityThrowableNT.java new file mode 100644 index 000000000..cfbfabc17 --- /dev/null +++ b/src/main/java/com/hbm/entity/projectile/EntityThrowableNT.java @@ -0,0 +1,311 @@ +package com.hbm.entity.projectile; + +import java.util.List; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.IProjectile; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.MathHelper; +import net.minecraft.util.MovingObjectPosition; +import net.minecraft.util.Vec3; +import net.minecraft.world.World; + +/** + * Near-identical copy of EntityThrowable but deobfuscated & untangled + * @author hbm + * + */ +public abstract class EntityThrowableNT extends Entity implements IProjectile { + + private int stuckBlockX = -1; + private int stuckBlockY = -1; + private int stuckBlockZ = -1; + private Block stuckBlock; + protected boolean inGround; + public int throwableShake; + private EntityLivingBase thrower; + private String throwerName; + private int ticksInGround; + private int ticksInAir; + + public EntityThrowableNT(World world) { + super(world); + this.setSize(0.25F, 0.25F); + } + + @Override + protected void entityInit() { } + + @Override + @SideOnly(Side.CLIENT) + public boolean isInRangeToRenderDist(double dist) { + + double perimeter = this.boundingBox.getAverageEdgeLength() * 4.0D; + perimeter *= 64.0D; + return dist < perimeter * perimeter; + } + + public EntityThrowableNT(World world, EntityLivingBase thrower) { + super(world); + this.thrower = thrower; + this.setSize(0.25F, 0.25F); + this.setLocationAndAngles(thrower.posX, thrower.posY + (double) thrower.getEyeHeight(), thrower.posZ, thrower.rotationYaw, thrower.rotationPitch); + this.posX -= (double) (MathHelper.cos(this.rotationYaw / 180.0F * (float) Math.PI) * 0.16F); + this.posY -= 0.1D; + this.posZ -= (double) (MathHelper.sin(this.rotationYaw / 180.0F * (float) Math.PI) * 0.16F); + this.setPosition(this.posX, this.posY, this.posZ); + this.yOffset = 0.0F; + float velocity = 0.4F; + this.motionX = (double) (-MathHelper.sin(this.rotationYaw / 180.0F * (float) Math.PI) * MathHelper.cos(this.rotationPitch / 180.0F * (float) Math.PI) * velocity); + this.motionZ = (double) (MathHelper.cos(this.rotationYaw / 180.0F * (float) Math.PI) * MathHelper.cos(this.rotationPitch / 180.0F * (float) Math.PI) * velocity); + this.motionY = (double) (-MathHelper.sin((this.rotationPitch + this.throwAngle()) / 180.0F * (float) Math.PI) * velocity); + this.setThrowableHeading(this.motionX, this.motionY, this.motionZ, this.throwForce(), 1.0F); + } + + public EntityThrowableNT(World world, double x, double y, double z) { + super(world); + this.ticksInGround = 0; + this.setSize(0.25F, 0.25F); + this.setPosition(x, y, z); + this.yOffset = 0.0F; + } + + protected float throwForce() { + return 1.5F; + } + + protected float throwAngle() { + return 0.0F; + } + + @Override + public void setThrowableHeading(double motionX, double motionY, double motionZ, float velocity, float inaccuracy) { + float throwLen = MathHelper.sqrt_double(motionX * motionX + motionY * motionY + motionZ * motionZ); + motionX /= (double) throwLen; + motionY /= (double) throwLen; + motionZ /= (double) throwLen; + motionX += this.rand.nextGaussian() * 0.0075D * (double) inaccuracy; + motionY += this.rand.nextGaussian() * 0.0075D * (double) inaccuracy; + motionZ += this.rand.nextGaussian() * 0.0075D * (double) inaccuracy; + motionX *= (double) velocity; + motionY *= (double) velocity; + motionZ *= (double) velocity; + this.motionX = motionX; + this.motionY = motionY; + this.motionZ = motionZ; + float hyp = MathHelper.sqrt_double(motionX * motionX + motionZ * motionZ); + this.prevRotationYaw = this.rotationYaw = (float) (Math.atan2(motionX, motionZ) * 180.0D / Math.PI); + this.prevRotationPitch = this.rotationPitch = (float) (Math.atan2(motionY, (double) hyp) * 180.0D / Math.PI); + this.ticksInGround = 0; + } + + @Override + @SideOnly(Side.CLIENT) + public void setVelocity(double x, double y, double z) { + this.motionX = x; + this.motionY = y; + this.motionZ = z; + + if(this.prevRotationPitch == 0.0F && this.prevRotationYaw == 0.0F) { + float hyp = MathHelper.sqrt_double(x * x + z * z); + this.prevRotationYaw = this.rotationYaw = (float) (Math.atan2(x, z) * 180.0D / Math.PI); + this.prevRotationPitch = this.rotationPitch = (float) (Math.atan2(y, (double) hyp) * 180.0D / Math.PI); + } + } + + @Override + public void onUpdate() { + this.lastTickPosX = this.posX; + this.lastTickPosY = this.posY; + this.lastTickPosZ = this.posZ; + super.onUpdate(); + + if(this.throwableShake > 0) { + --this.throwableShake; + } + + if(this.inGround) { + if(this.worldObj.getBlock(this.stuckBlockX, this.stuckBlockY, this.stuckBlockZ) == this.stuckBlock) { + ++this.ticksInGround; + + if(this.groundDespawn() > 0 && this.ticksInGround == this.groundDespawn()) { + this.setDead(); + } + + return; + } + + this.inGround = false; + this.motionX *= (double) (this.rand.nextFloat() * 0.2F); + this.motionY *= (double) (this.rand.nextFloat() * 0.2F); + this.motionZ *= (double) (this.rand.nextFloat() * 0.2F); + this.ticksInGround = 0; + this.ticksInAir = 0; + } else { + ++this.ticksInAir; + } + + Vec3 pos = Vec3.createVectorHelper(this.posX, this.posY, this.posZ); + Vec3 nextPos = Vec3.createVectorHelper(this.posX + this.motionX, this.posY + this.motionY, this.posZ + this.motionZ); + MovingObjectPosition mop = this.worldObj.rayTraceBlocks(pos, nextPos); + pos = Vec3.createVectorHelper(this.posX, this.posY, this.posZ); + nextPos = Vec3.createVectorHelper(this.posX + this.motionX, this.posY + this.motionY, this.posZ + this.motionZ); + + if(mop != null) { + nextPos = Vec3.createVectorHelper(mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord); + } + + if(!this.worldObj.isRemote) { + + Entity hitEntity = null; + List list = this.worldObj.getEntitiesWithinAABBExcludingEntity(this, this.boundingBox.addCoord(this.motionX, this.motionY, this.motionZ).expand(1.0D, 1.0D, 1.0D)); + double nearest = 0.0D; + EntityLivingBase thrower = this.getThrower(); + + for(int j = 0; j < list.size(); ++j) { + Entity entity = (Entity) list.get(j); + + if(entity.canBeCollidedWith() && (entity != thrower || this.ticksInAir >= 5)) { + double hitbox = 0.3F; + AxisAlignedBB aabb = entity.boundingBox.expand(hitbox, hitbox, hitbox); + MovingObjectPosition hitMop = aabb.calculateIntercept(pos, nextPos); + + if(hitMop != null) { + double dist = pos.distanceTo(hitMop.hitVec); + + if(dist < nearest || nearest == 0.0D) { + hitEntity = entity; + nearest = dist; + } + } + } + } + + if(hitEntity != null) { + mop = new MovingObjectPosition(hitEntity); + } + } + + if(mop != null) { + if(mop.typeOfHit == MovingObjectPosition.MovingObjectType.BLOCK && this.worldObj.getBlock(mop.blockX, mop.blockY, mop.blockZ) == Blocks.portal) { + this.setInPortal(); + } else { + this.onImpact(mop); + } + } + + this.posX += this.motionX; + this.posY += this.motionY; + this.posZ += this.motionZ; + + float hyp = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ); + this.rotationYaw = (float) (Math.atan2(this.motionX, this.motionZ) * 180.0D / Math.PI); + + for(this.rotationPitch = (float) (Math.atan2(this.motionY, (double) hyp) * 180.0D / Math.PI); this.rotationPitch - this.prevRotationPitch < -180.0F; this.prevRotationPitch -= 360.0F) { + ; + } + + while(this.rotationPitch - this.prevRotationPitch >= 180.0F) { + this.prevRotationPitch += 360.0F; + } + + while(this.rotationYaw - this.prevRotationYaw < -180.0F) { + this.prevRotationYaw -= 360.0F; + } + + while(this.rotationYaw - this.prevRotationYaw >= 180.0F) { + this.prevRotationYaw += 360.0F; + } + + this.rotationPitch = this.prevRotationPitch + (this.rotationPitch - this.prevRotationPitch) * 0.2F; + this.rotationYaw = this.prevRotationYaw + (this.rotationYaw - this.prevRotationYaw) * 0.2F; + float drag = this.getAirDrag(); + double gravity = this.getGravityVelocity(); + + if(this.isInWater()) { + for(int i = 0; i < 4; ++i) { + float f = 0.25F; + this.worldObj.spawnParticle("bubble", this.posX - this.motionX * (double) f, this.posY - this.motionY * (double) f, this.posZ - this.motionZ * (double) f, this.motionX, this.motionY, this.motionZ); + } + + drag = this.getWaterDrag(); + } + + this.motionX *= (double) drag; + this.motionY *= (double) drag; + this.motionZ *= (double) drag; + this.motionY -= gravity; + this.setPosition(this.posX, this.posY, this.posZ); + } + + public double getGravityVelocity() { + return 0.03D; + } + + protected abstract void onImpact(MovingObjectPosition mop); + + @Override + public void writeEntityToNBT(NBTTagCompound nbt) { + nbt.setShort("xTile", (short) this.stuckBlockX); + nbt.setShort("yTile", (short) this.stuckBlockY); + nbt.setShort("zTile", (short) this.stuckBlockZ); + nbt.setByte("inTile", (byte) Block.getIdFromBlock(this.stuckBlock)); + nbt.setByte("shake", (byte) this.throwableShake); + nbt.setByte("inGround", (byte) (this.inGround ? 1 : 0)); + + if((this.throwerName == null || this.throwerName.length() == 0) && this.thrower != null && this.thrower instanceof EntityPlayer) { + this.throwerName = this.thrower.getCommandSenderName(); + } + + nbt.setString("ownerName", this.throwerName == null ? "" : this.throwerName); + } + + @Override + public void readEntityFromNBT(NBTTagCompound nbt) { + this.stuckBlockX = nbt.getShort("xTile"); + this.stuckBlockY = nbt.getShort("yTile"); + this.stuckBlockZ = nbt.getShort("zTile"); + this.stuckBlock = Block.getBlockById(nbt.getByte("inTile") & 255); + this.throwableShake = nbt.getByte("shake") & 255; + this.inGround = nbt.getByte("inGround") == 1; + this.throwerName = nbt.getString("ownerName"); + + if(this.throwerName != null && this.throwerName.length() == 0) { + this.throwerName = null; + } + } + + @Override + @SideOnly(Side.CLIENT) + public float getShadowSize() { + return 0.0F; + } + + public EntityLivingBase getThrower() { + if(this.thrower == null && this.throwerName != null && this.throwerName.length() > 0) { + this.thrower = this.worldObj.getPlayerEntityByName(this.throwerName); + } + return this.thrower; + } + + /* ================================== Additional Getters =====================================*/ + + protected float getAirDrag() { + return 0.99F; + } + + protected float getWaterDrag() { + return 0.8F; + } + + protected int groundDespawn() { + return 1200; + } +} diff --git a/src/main/java/com/hbm/inventory/container/ContainerMassStorage.java b/src/main/java/com/hbm/inventory/container/ContainerMassStorage.java index 07eeea814..8363de61f 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerMassStorage.java +++ b/src/main/java/com/hbm/inventory/container/ContainerMassStorage.java @@ -16,6 +16,7 @@ public class ContainerMassStorage extends Container { public ContainerMassStorage(InventoryPlayer invPlayer, TileEntityMassStorage te) { this.storage = te; + this.storage.openInventory(); this.addSlotToContainer(new Slot(storage, 0, 61, 17)); this.addSlotToContainer(new SlotPattern(storage, 1, 61, 53)); @@ -100,4 +101,10 @@ public class ContainerMassStorage extends Container { public boolean canInteractWith(EntityPlayer player) { return storage.isUseableByPlayer(player); } + + @Override + public void onContainerClosed(EntityPlayer p_75134_1_) { + super.onContainerClosed(p_75134_1_); + this.storage.closeInventory(); + } } diff --git a/src/main/java/com/hbm/inventory/fluid/Fluids.java b/src/main/java/com/hbm/inventory/fluid/Fluids.java index 98af390df..d77597286 100644 --- a/src/main/java/com/hbm/inventory/fluid/Fluids.java +++ b/src/main/java/com/hbm/inventory/fluid/Fluids.java @@ -158,7 +158,7 @@ public class Fluids { WASTEFLUID = new RadioactiveLiquid( "WASTEFLUID", 0x544400, 2, 0, 1, EnumSymbol.RADIATION).setRadiation(0.5F).addTraits(FluidTrait.NO_CONTAINER); WASTEGAS = new RadioactiveGas( "WASTEGAS", 0xB8B8B8, 2, 0, 1, EnumSymbol.RADIATION).setRadiation(0.5F).addTraits(FluidTrait.NO_CONTAINER); GASOLINE = new Fuel( "GASOLINE", 0x445772, 1, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.HIGH, 1_000_000).setHeatEnergy(400_000).addContainers(0x2F7747, ExtContainer.CANISTER); - COALGAS = new Fuel( "COALGAS", 0x445772, 1, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.MEDIUM, 150_000).setHeatEnergy(75_000).addContainers(0x2F7759, ExtContainer.CANISTER); + COALGAS = new Fuel( "COALGAS", 0x445772, 1, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.MEDIUM, 150_000).setHeatEnergy(75_000).addContainers(0x2E155F, ExtContainer.CANISTER); SPENTSTEAM = new Gas( "SPENTSTEAM", 0x445772, 2, 0, 0, EnumSymbol.NONE).addTraits(FluidTrait.NO_CONTAINER).setCompression(1D); FRACKSOL = new Petrochemical( "FRACKSOL", 0x798A6B, 1, 3, 3, EnumSymbol.ACID).addTraits(FluidTrait.CORROSIVE).addContainers(0x4F887F, ExtContainer.CANISTER); PLASMA_DT = new FluidType( "PLASMA_DT", 0xF7AFDE, 0, 4, 0, EnumSymbol.RADIATION).setTemp(3250).addTraits(FluidTrait.NO_CONTAINER, FluidTrait.NO_ID); @@ -184,7 +184,7 @@ public class Fluids { XPJUICE = new FluidType( "XPJUICE", 0xBBFF09, 0, 0, 0, EnumSymbol.NONE); ENDERJUICE = new FluidType( "ENDERJUICE", 0x127766, 0, 0, 0, EnumSymbol.NONE); PETROIL_LEADED = new Fuel( "PETROIL_LEADED", 0x44413d, 1, 3, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.MEDIUM, 450_000).setHeatEnergy(((FluidTypeFlammable)PETROIL).getHeatEnergy()).addContainers(0x2331F6, ExtContainer.CANISTER); - GASOLINE_LEADED = new Fuel( "GASOLINE_LEADED", 0x445772, 1, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.HIGH, 1_500_000).setHeatEnergy(((FluidTypeFlammable)GASOLINE).getHeatEnergy()).addContainers(0xD4F4ED, ExtContainer.CANISTER); + GASOLINE_LEADED = new Fuel( "GASOLINE_LEADED", 0x445772, 1, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.HIGH, 1_500_000).setHeatEnergy(((FluidTypeFlammable)GASOLINE).getHeatEnergy()).addContainers(0x2F775A, ExtContainer.CANISTER); COALGAS_LEADED = new Fuel( "COALGAS_LEADED", 0x445772, 1, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.MEDIUM, 250_000).setHeatEnergy(((FluidTypeFlammable)COALGAS).getHeatEnergy()).addContainers(0x1E155F, ExtContainer.CANISTER); SULFURIC_ACID = new FluidType( "SULFURIC_ACID", 0xB0AA64, 3, 0, 2, EnumSymbol.ACID).addTraits(FluidTrait.CORROSIVE); COOLANT_HOT = new FluidType( "COOLANT_HOT", 0x99525E, 1, 0, 0, EnumSymbol.NONE).setTemp(600).setHeatCap(COOLANT.heatCap); diff --git a/src/main/java/com/hbm/inventory/gui/GUITurretArty.java b/src/main/java/com/hbm/inventory/gui/GUITurretArty.java index 0b6425f4b..550de0462 100644 --- a/src/main/java/com/hbm/inventory/gui/GUITurretArty.java +++ b/src/main/java/com/hbm/inventory/gui/GUITurretArty.java @@ -34,8 +34,9 @@ public class GUITurretArty extends GUITurretBase { protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int mX, int mY) { super.drawGuiContainerBackgroundLayer(p_146976_1_, mX, mY); - if(((TileEntityTurretArty)turret).directMode) - drawTexturedModalRect(guiLeft + 151, guiTop + 16, 210, 0, 18, 18); + short mode = ((TileEntityTurretArty)turret).mode; + if(mode == TileEntityTurretArty.MODE_CANNON) drawTexturedModalRect(guiLeft + 151, guiTop + 16, 210, 0, 18, 18); + if(mode == TileEntityTurretArty.MODE_MANUAL) drawTexturedModalRect(guiLeft + 151, guiTop + 16, 210, 18, 18, 18); } @Override diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 9ee90e9e7..897408806 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -1563,6 +1563,7 @@ public class ModItems { public static Item ammo_shell_apfsds_du; public static Item ammo_shell_w9; public static Item ammo_dgk; + public static Item ammo_arty; public static Item ammo_nuke; public static Item ammo_nuke_low; public static Item ammo_nuke_high; @@ -4292,6 +4293,7 @@ public class ModItems { ammo_shell_apfsds_du = new ItemAmmo().setUnlocalizedName("ammo_shell_apfsds_du"); ammo_shell_w9 = new ItemAmmo().setUnlocalizedName("ammo_shell_w9"); ammo_dgk = new ItemAmmo().setUnlocalizedName("ammo_dgk"); + ammo_arty = new ItemAmmoArty().setUnlocalizedName("ammo_arty"); ammo_nuke = new ItemAmmo().setUnlocalizedName("ammo_nuke"); ammo_nuke_low = new ItemAmmo().setUnlocalizedName("ammo_nuke_low"); ammo_nuke_high = new ItemAmmo().setUnlocalizedName("ammo_nuke_high"); @@ -7391,6 +7393,7 @@ public class ModItems { GameRegistry.registerItem(ammo_shell_apfsds_du, ammo_shell_apfsds_du.getUnlocalizedName()); GameRegistry.registerItem(ammo_shell_w9, ammo_shell_w9.getUnlocalizedName()); GameRegistry.registerItem(ammo_dgk, ammo_dgk.getUnlocalizedName()); + GameRegistry.registerItem(ammo_arty, ammo_arty.getUnlocalizedName()); GameRegistry.registerItem(ammo_nuke, ammo_nuke.getUnlocalizedName()); GameRegistry.registerItem(ammo_nuke_low, ammo_nuke_low.getUnlocalizedName()); GameRegistry.registerItem(ammo_nuke_high, ammo_nuke_high.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/weapon/ItemAmmoArty.java b/src/main/java/com/hbm/items/weapon/ItemAmmoArty.java new file mode 100644 index 000000000..7fd5cd5e3 --- /dev/null +++ b/src/main/java/com/hbm/items/weapon/ItemAmmoArty.java @@ -0,0 +1,69 @@ +package com.hbm.items.weapon; + +import java.util.List; + +import com.hbm.lib.RefStrings; +import com.hbm.main.MainRegistry; +import com.hbm.util.EnumUtil; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.IIcon; + +public class ItemAmmoArty extends Item { + + public static enum EnumArtyType { + NORMAL("ammo_arty"), + CLASSIC("ammo_arty_classic"), + EXPLOSIVE("ammo_arty_he"), + MINI_NUKE("ammo_arty_mini_nuke"), + NUKE("ammo_arty_nuke"); + + private String name; + + private EnumArtyType(String texture) { + this.name = texture; + } + } + + public ItemAmmoArty() { + this.setHasSubtypes(true); + this.setCreativeTab(MainRegistry.weaponTab); + } + + @Override + @SideOnly(Side.CLIENT) + public void getSubItems(Item item, CreativeTabs tab, List list) { + for(int i = 0; i < EnumArtyType.values().length; i++) { + list.add(new ItemStack(item, 1, i)); + } + } + + private IIcon[] icons = new IIcon[EnumArtyType.values().length]; + + @SideOnly(Side.CLIENT) + public void registerIcons(IIconRegister reg) { + + this.icons = new IIcon[EnumArtyType.values().length]; + + for(int i = 0; i < icons.length; i++) { + this.icons[i] = reg.registerIcon(RefStrings.MODID + ":" + EnumArtyType.values()[i].name); + } + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIconFromDamage(int meta) { + return this.icons[meta]; + } + + @Override + public String getUnlocalizedName(ItemStack stack) { + EnumArtyType num = EnumUtil.grabEnumSafely(EnumArtyType.class, stack.getItemDamage()); + return "item." + num.name; + } +} diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index c5f5a931b..352994107 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -530,6 +530,7 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerEntityRenderingHandler(EntityBeamVortex.class, new RenderVortexBeam()); RenderingRegistry.registerEntityRenderingHandler(EntityRBMKDebris.class, new RenderRBMKDebris()); RenderingRegistry.registerEntityRenderingHandler(EntityZirnoxDebris.class, new RenderZirnoxDebris()); + RenderingRegistry.registerEntityRenderingHandler(EntityArtilleryShell.class, new RenderArtilleryShell()); //grenades RenderingRegistry.registerEntityRenderingHandler(EntityGrenadeGeneric.class, new RenderSnowball(ModItems.grenade_generic)); RenderingRegistry.registerEntityRenderingHandler(EntityGrenadeStrong.class, new RenderSnowball(ModItems.grenade_strong)); diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index 74b8d2d49..dc174345e 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -35,7 +35,6 @@ import java.util.HashSet; import java.util.List; import java.util.Map.Entry; import java.util.Random; -import java.util.Set; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -503,6 +502,7 @@ public class MainRegistry { EntityRegistry.registerModEntity(EntityMinecartPowder.class, "entity_ntm_cart_powder", 175, this, 250, 1, false); EntityRegistry.registerModEntity(EntityMinecartSemtex.class, "entity_ntm_cart_semtex", 176, this, 250, 1, false); EntityRegistry.registerModEntity(EntityNukeTorex.class, "entity_effect_torex", 177, this, 250, 1, false); + EntityRegistry.registerModEntity(EntityArtilleryShell.class, "entity_artillery_shell", 178, this, 1000, 1, true); EntityRegistry.registerGlobalEntityID(EntityNuclearCreeper.class, "entity_mob_nuclear_creeper", EntityRegistry.findGlobalUniqueEntityId(), 0x204131, 0x75CE00); EntityRegistry.registerGlobalEntityID(EntityTaintedCreeper.class, "entity_mob_tainted_creeper", EntityRegistry.findGlobalUniqueEntityId(), 0x813b9b, 0xd71fdd); diff --git a/src/main/java/com/hbm/render/entity/projectile/RenderArtilleryShell.java b/src/main/java/com/hbm/render/entity/projectile/RenderArtilleryShell.java new file mode 100644 index 000000000..65cbdfc1d --- /dev/null +++ b/src/main/java/com/hbm/render/entity/projectile/RenderArtilleryShell.java @@ -0,0 +1,41 @@ +package com.hbm.render.entity.projectile; + +import org.lwjgl.opengl.GL11; + +import com.hbm.main.ResourceManager; + +import net.minecraft.client.renderer.entity.Render; +import net.minecraft.entity.Entity; +import net.minecraft.util.ResourceLocation; + +public class RenderArtilleryShell extends Render { + + @Override + public void doRender(Entity shell, double x, double y, double z, float f0, float f1) { + + GL11.glPushMatrix(); + GL11.glTranslated(x, y, z); + GL11.glRotatef(shell.prevRotationYaw + (shell.rotationYaw - shell.prevRotationYaw) * f1 - 90.0F, 0.0F, 1.0F, 0.0F); + GL11.glRotatef(shell.prevRotationPitch + (shell.rotationPitch - shell.prevRotationPitch) * f1 - 90, 0.0F, 0.0F, 1.0F); + + float scale = 5F; + GL11.glScalef(scale * 0.5F, scale, scale * 0.5F); + + this.bindEntityTexture(shell); + + boolean fog = GL11.glIsEnabled(GL11.GL_FOG); + + if(fog) GL11.glDisable(GL11.GL_FOG); + GL11.glShadeModel(GL11.GL_SMOOTH); + ResourceManager.projectiles.renderPart("Grenade"); + GL11.glShadeModel(GL11.GL_FLAT); + if(fog) GL11.glEnable(GL11.GL_FOG); + + GL11.glPopMatrix(); + } + + @Override + protected ResourceLocation getEntityTexture(Entity entity) { + return ResourceManager.grenade_tex; + } +} diff --git a/src/main/java/com/hbm/render/tileentity/RenderTurretArty.java b/src/main/java/com/hbm/render/tileentity/RenderTurretArty.java index b5d6cf13f..6319df081 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderTurretArty.java +++ b/src/main/java/com/hbm/render/tileentity/RenderTurretArty.java @@ -35,6 +35,9 @@ public class RenderTurretArty extends TileEntitySpecialRenderer { GL11.glRotated(pitch, 1, 0, 0); GL11.glTranslated(0, -3, 0); ResourceManager.turret_arty.renderPart("Cannon"); + double barrel = turret.lastBarrelPos + (turret.barrelPos - turret.lastBarrelPos) * interp; + double length = 2.5; + GL11.glTranslated(0, 0, barrel * length); ResourceManager.turret_arty.renderPart("Barrel"); GL11.glShadeModel(GL11.GL_FLAT); diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMassStorage.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMassStorage.java index c75245199..b73c3d077 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMassStorage.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMassStorage.java @@ -99,6 +99,16 @@ public class TileEntityMassStorage extends TileEntityCrateBase implements INBTPa return Vec3.createVectorHelper(xCoord - player.posX, yCoord - player.posY, zCoord - player.posZ).lengthVector() < 20; } + @Override + public void openInventory() { + this.worldObj.playSoundEffect(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, "hbm:block.storageOpen", 1.0F, 1.0F); + } + + @Override + public void closeInventory() { + this.worldObj.playSoundEffect(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, "hbm:block.storageClose", 1.0F, 1.0F); + } + @Override public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt); diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityCraneInserter.java b/src/main/java/com/hbm/tileentity/network/TileEntityCraneInserter.java index d3fbb2d10..35ce9fdaf 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityCraneInserter.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityCraneInserter.java @@ -75,6 +75,11 @@ public class TileEntityCraneInserter extends TileEntityMachineBase implements IG return true; } + @Override + public boolean canExtractItem(int i, ItemStack itemStack, int j) { + return true; + } + @Override public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { return new ContainerCraneInserter(player.inventory, this); diff --git a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretArty.java b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretArty.java index 978368386..00ef27391 100644 --- a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretArty.java +++ b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretArty.java @@ -3,7 +3,7 @@ package com.hbm.tileentity.turret; import java.util.ArrayList; import java.util.List; -import com.hbm.entity.projectile.EntityBulletBase; +import com.hbm.entity.projectile.EntityArtilleryShell; import com.hbm.handler.BulletConfigSyncingUtil; import com.hbm.handler.BulletConfiguration; import com.hbm.inventory.container.ContainerTurretBase; @@ -22,7 +22,14 @@ import net.minecraft.world.World; public class TileEntityTurretArty extends TileEntityTurretBaseNT implements IGUIProvider { - public boolean directMode = false; + public short mode = 0; + public static final short MODE_ARTILLERY = 0; + public static final short MODE_CANNON = 1; + public static final short MODE_MANUAL = 2; + private boolean didJustShoot = false; + private boolean retracting = false; + public double barrelPos = 0; + public double lastBarrelPos = 0; static List configs = new ArrayList(); @@ -64,10 +71,40 @@ public class TileEntityTurretArty extends TileEntityTurretBaseNT implements IGUI return 3D; } + @Override + public double getDecetorRange() { + return 128D; + } + + @Override + public double getDecetorGrace() { + return 32D; + } + + @Override + public double getTurretYawSpeed() { + return 1D; + } + + @Override + public double getTurretPitchSpeed() { + return 0.5D; + } + + @Override + public double getTurretDepression() { + return 30D; + } + + @Override + public double getTurretElevation() { + return 90D; + } + @Override protected void seekNewTarget() { - if(this.directMode) { + if(this.mode == MODE_CANNON) { super.seekNewTarget(); return; } @@ -78,8 +115,34 @@ public class TileEntityTurretArty extends TileEntityTurretBaseNT implements IGUI @Override protected void alignTurret() { - /* TODO: calculate angles */ - this.turnTowards(tPos); + + Vec3 pos = this.getTurretPos(); + + Vec3 barrel = Vec3.createVectorHelper(this.getBarrelLength(), 0, 0); + barrel.rotateAroundZ((float) -this.rotationPitch); + barrel.rotateAroundY((float) -(this.rotationYaw + Math.PI * 0.5)); + /* + * This is done to compensate for the barrel length, as this small deviation has a huge impact in both modes at longer ranges. + * The consequence of this is that using the >before< angle of the barrel as an approximation can lead to problems at closer range, + * as the math tries to properly calculate the >after< angle. This should not be a problem due to the etector grace distance being + * rather high, but it is still important to note. + */ + pos.xCoord += barrel.xCoord; + pos.yCoord += barrel.yCoord; + pos.zCoord += barrel.zCoord; + + Vec3 delta = Vec3.createVectorHelper(tPos.xCoord - pos.xCoord, tPos.yCoord - pos.yCoord, tPos.zCoord - pos.zCoord); + double targetYaw = -Math.atan2(delta.xCoord, delta.zCoord); + + double x = Math.sqrt(delta.xCoord * delta.xCoord + delta.zCoord * delta.zCoord); + double y = delta.yCoord; + double v0 = 20; + double v02 = v0 * v0; + double g = 9.81 * 0.05; + double upperLower = mode == MODE_CANNON ? 1 : 1; + double targetPitch = Math.atan((v02 + Math.sqrt(v02*v02 - g*(g*x*x + 2*y*v02)) * upperLower) / (g*x)); + + this.turnTowardsAngle(targetPitch, targetYaw); } @Override @@ -90,46 +153,101 @@ public class TileEntityTurretArty extends TileEntityTurretBaseNT implements IGUI vec.rotateAroundZ((float) -this.rotationPitch); vec.rotateAroundY((float) -(this.rotationYaw + Math.PI * 0.5)); - /* TODO: replace bullet base entity with a chunkloading artillery shell */ - EntityBulletBase proj = new EntityBulletBase(worldObj, BulletConfigSyncingUtil.getKey(bullet)); + EntityArtilleryShell proj = new EntityArtilleryShell(worldObj); proj.setPositionAndRotation(pos.xCoord + vec.xCoord, pos.yCoord + vec.yCoord, pos.zCoord + vec.zCoord, 0.0F, 0.0F); + proj.setThrowableHeading(vec.xCoord, vec.yCoord, vec.zCoord, 20F, 0.0F); + proj.setTarget((int) tPos.xCoord, (int) tPos.yCoord, (int) tPos.zCoord); - proj.setThrowableHeading(vec.xCoord, vec.yCoord, vec.zCoord, bullet.velocity, bullet.spread); worldObj.spawnEntityInWorld(proj); } + + @Override + public void updateEntity() { + + if(worldObj.isRemote) { + this.lastBarrelPos = this.barrelPos; + + if(this.didJustShoot) { + this.retracting = true; + System.out.println("beb"); + } + + if(this.retracting) { + this.barrelPos += 0.5; + + if(this.barrelPos >= 1) { + this.retracting = false; + } + + } else { + this.barrelPos -= 0.05; + if(this.barrelPos < 0) { + this.barrelPos = 0; + } + } + } + + super.updateEntity(); + this.didJustShoot = false; + } + int timer; + @Override public void updateFiringTick() { - BulletConfiguration conf = this.getFirstConfigLoaded(); + timer++; - if(conf != null) { - this.spawnBullet(conf); - this.conusmeAmmo(conf.ammo); - this.worldObj.playSoundEffect(xCoord, yCoord, zCoord, "hbm:turret.jeremy_fire", 4.0F, 1.0F); - Vec3 pos = this.getTurretPos(); - Vec3 vec = Vec3.createVectorHelper(this.getBarrelLength(), 0, 0); - vec.rotateAroundZ((float) -this.rotationPitch); - vec.rotateAroundY((float) -(this.rotationYaw + Math.PI * 0.5)); + if(timer % 40 == 0) { - NBTTagCompound data = new NBTTagCompound(); - data.setString("type", "vanillaExt"); - data.setString("mode", "largeexplode"); - data.setFloat("size", 0F); - data.setByte("count", (byte)5); - PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, pos.xCoord + vec.xCoord, pos.yCoord + vec.yCoord, pos.zCoord + vec.zCoord), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50)); + BulletConfiguration conf = this.getFirstConfigLoaded(); + + if(conf != null) { + this.spawnBullet(conf); + //this.conusmeAmmo(conf.ammo); + this.worldObj.playSoundEffect(xCoord, yCoord, zCoord, "hbm:turret.jeremy_fire", 25.0F, 1.0F); + Vec3 pos = this.getTurretPos(); + Vec3 vec = Vec3.createVectorHelper(this.getBarrelLength(), 0, 0); + vec.rotateAroundZ((float) -this.rotationPitch); + vec.rotateAroundY((float) -(this.rotationYaw + Math.PI * 0.5)); + this.didJustShoot = true; + + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "vanillaExt"); + data.setString("mode", "largeexplode"); + data.setFloat("size", 0F); + data.setByte("count", (byte)5); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, pos.xCoord + vec.xCoord, pos.yCoord + vec.yCoord, pos.zCoord + vec.zCoord), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 150)); + } } } @Override public void handleButtonPacket(int value, int meta) { if(meta == 5) { - this.directMode = !this.directMode; + this.mode++; + if(this.mode > 2) + this.mode = 0; } else{ super.handleButtonPacket(value, meta); } } + @Override + protected NBTTagCompound writePacket() { + NBTTagCompound data = super.writePacket(); + data.setShort("mode", mode); + data.setBoolean("didJustShoot", didJustShoot); + return data; + } + + @Override + public void networkUnpack(NBTTagCompound nbt) { + super.networkUnpack(nbt); + this.mode = nbt.getShort("mode"); + this.didJustShoot = nbt.getBoolean("didJustShoot"); + } + @Override public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { return new ContainerTurretBase(player.inventory, this); diff --git a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretBaseNT.java b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretBaseNT.java index d45c89c0e..11b8b5412 100644 --- a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretBaseNT.java +++ b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretBaseNT.java @@ -209,19 +209,7 @@ public abstract class TileEntityTurretBaseNT extends TileEntityMachineBase imple this.power = Library.chargeTEFromItems(slots, 10, this.power, this.getMaxPower()); - NBTTagCompound data = new NBTTagCompound(); - if(this.tPos != null) { - data.setDouble("tX", this.tPos.xCoord); - data.setDouble("tY", this.tPos.yCoord); - data.setDouble("tZ", this.tPos.zCoord); - } - data.setLong("power", this.power); - data.setBoolean("isOn", this.isOn); - data.setBoolean("targetPlayers", this.targetPlayers); - data.setBoolean("targetAnimals", this.targetAnimals); - data.setBoolean("targetMobs", this.targetMobs); - data.setBoolean("targetMachines", this.targetMachines); - data.setInteger("stattrak", this.stattrak); + NBTTagCompound data = this.writePacket(); this.networkPack(data, 250); } else { @@ -241,6 +229,25 @@ public abstract class TileEntityTurretBaseNT extends TileEntityMachineBase imple } } + protected NBTTagCompound writePacket() { + + NBTTagCompound data = new NBTTagCompound(); + if(this.tPos != null) { + data.setDouble("tX", this.tPos.xCoord); + data.setDouble("tY", this.tPos.yCoord); + data.setDouble("tZ", this.tPos.zCoord); + } + data.setLong("power", this.power); + data.setBoolean("isOn", this.isOn); + data.setBoolean("targetPlayers", this.targetPlayers); + data.setBoolean("targetAnimals", this.targetAnimals); + data.setBoolean("targetMobs", this.targetMobs); + data.setBoolean("targetMachines", this.targetMachines); + data.setInteger("stattrak", this.stattrak); + + return data; + } + private void updateConnections() { ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset).getOpposite(); ForgeDirection rot = dir.getRotation(ForgeDirection.UP); diff --git a/src/main/resources/assets/hbm/sounds.json b/src/main/resources/assets/hbm/sounds.json index 8d4d8faa9..26f12b89f 100644 --- a/src/main/resources/assets/hbm/sounds.json +++ b/src/main/resources/assets/hbm/sounds.json @@ -40,6 +40,8 @@ "block.bobble": {"category": "block", "sounds": [{"name": "block/bobble", "stream": false}]}, "block.crateOpen": {"category": "block", "sounds": [{"name": "block/crateOpen", "stream": false}]}, "block.crateClose": {"category": "block", "sounds": [{"name": "block/crateClose", "stream": false}]}, + "block.storageOpen": {"category": "block", "sounds": [{"name": "block/storageOpen", "stream": false}]}, + "block.storageClose": {"category": "block", "sounds": [{"name": "block/storageClose", "stream": false}]}, "door.TransitionSealOpen": {"category": "block", "sounds": [{"name": "block/door/transition_seal_open", "stream": true}]}, @@ -168,6 +170,7 @@ "turret.richard_fire": {"category": "block", "sounds": [{"name": "turret/richard_fire", "stream": false}]}, "turret.howard_fire": {"category": "block", "sounds": [{"name": "turret/howard_fire", "stream": false}]}, "turret.howard_reload": {"category": "block", "sounds": [{"name": "turret/howard_reload", "stream": false}]}, + "turret.mortarWhistle": {"category": "block", "sounds": [{"name": "weapon/mortarWhistle", "stream": false}]}, "entity.chopperFlyingLoop": {"category": "hostile", "sounds": [{"name": "entity/chopperFlyingLoop", "stream": true}]}, "entity.chopperDrop": {"category": "hostile", "sounds": [{"name": "entity/chopperDrop", "stream": false}]}, diff --git a/src/main/resources/assets/hbm/sounds/block/storageClose.ogg b/src/main/resources/assets/hbm/sounds/block/storageClose.ogg new file mode 100644 index 0000000000000000000000000000000000000000..c157dbe7cade772d47f85edfb87f186cb024637f GIT binary patch literal 4369 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 Fe*i7Gq$B_U literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/sounds/block/storageOpen.ogg b/src/main/resources/assets/hbm/sounds/block/storageOpen.ogg new file mode 100644 index 0000000000000000000000000000000000000000..cee45c0083a644208b5fdb9a58a52061c8c81034 GIT binary patch literal 4426 zcmai2d0bP+7M=iNSfoKB1dKLlA_PGR1|(J#un36;;lgD#f-DNgC=jDii$)SCMx`_c ztdJtLL;*oXAu3c{Ktx$Y5zr!Nr3D1FzWOS(E`4)vgh&5)zc;_h+*!W)=FFKh_nez` zn>PmmJ@7HjEkCjqtGW%ZQxfJ9c5Y9JNfcupgwHFm2LMUt1pIlCunwC!nXsAIh=Gi_^PObAX+P4I*A8>XzmHp~IPL=y`!bq@h zm?rzwT(S$Y^xFXel>vwLh5gi*xgRnTdCHfsE@qZX@69 zm1?P5gYM;*D>L+JrpQ-&K?w{w7s>J#uTmSi1BdvjoW_ou1#$r>K5nl#Zf{JoIcE%- z0U&t>l5ZwcZ+%0(RYf%+&Iq3dl>vwl=cg#~%lXAmNe@>t@I1J`+_B{xo?YPvWO@d-5JBKLGs?Y;c01V(V>{UU_eN~^|2}XOgqTVSvGC$rL zpAL0Mx|g`A%rM(o-`WsA2PlTrT;bd(olvrr!ZSN=RLOa)9w-hsE8tae=BWK@(v*dY zOPnFKxc%0kn$-?#$JODc1rRr+ZY&Nr*46B)(mDzpu)gH>XVGf&CRkfgnU-5{s0P-i zRVL;Xtf_)Eze{OI;To(@j8Wmm$c<-IwFTBJy?iOZu;T`-t!sMLuO>}Ga2&2=xL;3F z)}f7$n8bTS3AEMbF*YvGyvBx|jcjCU?~%L12_>p!L`GgR!n4yUTn~5>Z8OP;-$W6U zZJR|&xy?LToWXM_D?NVDrN!}lD_$&nUUA;+GgDS0Y1P8YMkGk&+8ri*$r&n;Rfj|f zD{BxQQ=>wRasAPt?!67I<8lKr=9p~eNp*^`L#a-kH0)>qSob^iuKAq*=6_M|m@@)r z!tB)P;@TPHgG%Ci@+ILH(jy;a3dYj=U>=uj49kxX|3}ts9bRx6Gs{f(xU~>juttT;}Af?AXrkINL7@jDoRsxhO?CkNApX|3Krfz@x1o*=>N+mxPj9F z*g^MAq5C3q9|Tr#?Mh8C?NS?9be|N*mV0d79`9OsK!t|x(7iN19smHQx6YDV?o#

  2. 8ui$5NinDgH zXt}jmEY`BJ{N$pqAb(o{@NPzc2SC@mDNf& zE|>dsWC&mM&dVllvmEUjZ`)Bp|S7>Pr#kK(bTg)n&kq5%w&;#+- z{^w?_Da;5P_Fu5RiPVuvBpsUKw(vhXE=1=q^FZih1OKl0D?4;oIh%9{!_D+Wc2H~= z=L>hr?bSR?zBT$+Ed9TL!#*LE)?b7?C6?Yxz7LQ87zxz=MA+ZHQL!$2Vujr(=_HND z3APN$j)dxbtAZE_%h_RgV4FQ>#WH+vN$)HX!T)Nve=q0_D4;IUwUKzXd&pNWw=Eu< JD_ufP{SM;4Lcjn3 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/gui/gui_safe.png b/src/main/resources/assets/hbm/textures/gui/storage/gui_safe.png similarity index 100% rename from src/main/resources/assets/hbm/textures/gui/gui_safe.png rename to src/main/resources/assets/hbm/textures/gui/storage/gui_safe.png From c616a645006676c4b325368835226e480e61cb51 Mon Sep 17 00:00:00 2001 From: Bob Date: Thu, 26 May 2022 23:29:11 +0200 Subject: [PATCH 24/80] mass storage --- src/main/java/com/hbm/blocks/ModBlocks.java | 5 +- .../hbm/blocks/generic/BlockStorageCrate.java | 4 + .../hbm/blocks/machine/BlockMassStorage.java | 69 +++++++++ .../entity/cart/EntityMinecartDestroyer.java | 5 +- src/main/java/com/hbm/handler/GUIHandler.java | 3 +- .../container/ContainerMassStorage.java | 105 +++++++++++++ .../com/hbm/inventory/gui/GUICrateDesh.java | 2 +- .../com/hbm/inventory/gui/GUIMassStorage.java | 84 +++++++++++ src/main/java/com/hbm/main/ClientProxy.java | 11 +- .../java/com/hbm/main/CraftingManager.java | 1 + .../java/com/hbm/tileentity/TileMappings.java | 4 +- .../machine/TileEntityMachineAssembler.java | 9 +- .../machine/TileEntityMachineTurbofan.java | 42 ++++++ .../machine/storage/TileEntityCrateBase.java | 4 - .../storage/TileEntityMachineFluidTank.java | 1 - .../storage/TileEntityMachinePuF6Tank.java | 3 - .../storage/TileEntityMachineUF6Tank.java | 3 - .../storage/TileEntityMassStorage.java | 141 ++++++++++++++++++ .../hbm/textures/blocks/mass_storage_side.png | Bin 0 -> 300 bytes .../hbm/textures/blocks/mass_storage_top.png | Bin 0 -> 302 bytes .../gui/storage/gui_mass_storage_double.png | Bin 0 -> 3320 bytes .../gui/storage/gui_mass_storage_triple.png | Bin 0 -> 3413 bytes 22 files changed, 472 insertions(+), 24 deletions(-) create mode 100644 src/main/java/com/hbm/blocks/machine/BlockMassStorage.java create mode 100644 src/main/java/com/hbm/inventory/container/ContainerMassStorage.java create mode 100644 src/main/java/com/hbm/inventory/gui/GUIMassStorage.java create mode 100644 src/main/java/com/hbm/tileentity/machine/storage/TileEntityMassStorage.java create mode 100644 src/main/resources/assets/hbm/textures/blocks/mass_storage_side.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/mass_storage_top.png create mode 100644 src/main/resources/assets/hbm/textures/gui/storage/gui_mass_storage_double.png create mode 100644 src/main/resources/assets/hbm/textures/gui/storage/gui_mass_storage_triple.png diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 3a6e79685..948fd7ec2 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -587,6 +587,7 @@ public class ModBlocks { public static Block crate_desh; public static Block crate_tungsten; public static Block safe; + public static Block mass_storage; public static Block nuke_gadget; public static final int guiID_nuke_gadget = 3; @@ -2107,8 +2108,9 @@ public class ModBlocks { crate_iron = new BlockStorageCrate(Material.iron).setBlockName("crate_iron").setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); crate_steel = new BlockStorageCrate(Material.iron).setBlockName("crate_steel").setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); crate_desh = new BlockStorageCrate(Material.iron).setBlockName("crate_desh").setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); - crate_tungsten = new BlockStorageCrate(Material.iron).setBlockName("crate_tungsten").setStepSound(Block.soundTypeMetal).setHardness(7.5F).setResistance(60.0F).setCreativeTab(MainRegistry.machineTab); + crate_tungsten = new BlockStorageCrate(Material.iron).setBlockName("crate_tungsten").setStepSound(Block.soundTypeMetal).setHardness(7.5F).setResistance(300.0F).setCreativeTab(MainRegistry.machineTab); safe = new BlockStorageCrate(Material.iron).setBlockName("safe").setStepSound(Block.soundTypeMetal).setHardness(7.5F).setResistance(10000.0F).setCreativeTab(MainRegistry.machineTab); + mass_storage = new BlockMassStorage().setBlockName("mass_storage").setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); boxcar = new DecoBlock(Material.iron).setBlockName("boxcar").setStepSound(Block.soundTypeMetal).setHardness(10.0F).setResistance(10.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":boxcar"); boat = new DecoBlock(Material.iron).setBlockName("boat").setStepSound(Block.soundTypeMetal).setHardness(10.0F).setResistance(10.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":boat"); @@ -2904,6 +2906,7 @@ public class ModBlocks { GameRegistry.registerBlock(crate_desh, crate_desh.getUnlocalizedName()); GameRegistry.registerBlock(crate_tungsten, crate_tungsten.getUnlocalizedName()); GameRegistry.registerBlock(safe, safe.getUnlocalizedName()); + GameRegistry.registerBlock(mass_storage, mass_storage.getUnlocalizedName()); //Junk GameRegistry.registerBlock(boxcar, boxcar.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/generic/BlockStorageCrate.java b/src/main/java/com/hbm/blocks/generic/BlockStorageCrate.java index b313837c7..306698713 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockStorageCrate.java +++ b/src/main/java/com/hbm/blocks/generic/BlockStorageCrate.java @@ -66,6 +66,10 @@ public class BlockStorageCrate extends BlockContainer { this.iconTop = iconRegister.registerIcon(RefStrings.MODID + ":safe_front"); this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":safe_side"); } + if(this == ModBlocks.mass_storage) { + this.iconTop = iconRegister.registerIcon(RefStrings.MODID + ":mass_storage_top"); + this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":mass_storage_side"); + } } @Override diff --git a/src/main/java/com/hbm/blocks/machine/BlockMassStorage.java b/src/main/java/com/hbm/blocks/machine/BlockMassStorage.java new file mode 100644 index 000000000..6e26763b8 --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/BlockMassStorage.java @@ -0,0 +1,69 @@ +package com.hbm.blocks.machine; + +import com.hbm.blocks.ModBlocks; +import com.hbm.items.ModItems; +import com.hbm.items.tool.ItemLock; +import com.hbm.lib.RefStrings; +import com.hbm.main.MainRegistry; +import com.hbm.tileentity.machine.storage.TileEntityMassStorage; + +import cpw.mods.fml.common.network.internal.FMLNetworkHandler; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.IIcon; +import net.minecraft.world.World; + +public class BlockMassStorage extends BlockContainer { + + @SideOnly(Side.CLIENT) + private IIcon iconTop; + + public BlockMassStorage() { + super(Material.iron); + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister iconRegister) { + this.iconTop = iconRegister.registerIcon(RefStrings.MODID + ":mass_storage_top"); + this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":mass_storage_side"); + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int metadata) { + + if(this == ModBlocks.safe) + return metadata == 0 && side == 3 ? this.iconTop : (side == metadata ? this.iconTop : this.blockIcon); + + return side == 1 ? this.iconTop : (side == 0 ? this.iconTop : this.blockIcon); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + return new TileEntityMassStorage(); + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + if(world.isRemote) { + return true; + } else if(player.getHeldItem() != null && (player.getHeldItem().getItem() instanceof ItemLock || player.getHeldItem().getItem() == ModItems.key_kit)) { + return false; + + } else if(!player.isSneaking()) { + TileEntity entity = world.getTileEntity(x, y, z); + if(entity instanceof TileEntityMassStorage && ((TileEntityMassStorage) entity).canAccess(player)) { + FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y, z); + } + return true; + } else { + return false; + } + } +} diff --git a/src/main/java/com/hbm/entity/cart/EntityMinecartDestroyer.java b/src/main/java/com/hbm/entity/cart/EntityMinecartDestroyer.java index 49b43e6ff..7c3aa7d1c 100644 --- a/src/main/java/com/hbm/entity/cart/EntityMinecartDestroyer.java +++ b/src/main/java/com/hbm/entity/cart/EntityMinecartDestroyer.java @@ -20,13 +20,12 @@ import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.DamageSource; import net.minecraft.world.World; public class EntityMinecartDestroyer extends EntityMinecartContainerBase { - public EntityMinecartDestroyer(World p_i1712_1_) { - super(p_i1712_1_); + public EntityMinecartDestroyer(World world) { + super(world); } public EntityMinecartDestroyer(World world, double x, double y, double z, EnumCartBase type) { diff --git a/src/main/java/com/hbm/handler/GUIHandler.java b/src/main/java/com/hbm/handler/GUIHandler.java index ede516501..af9f7ba34 100644 --- a/src/main/java/com/hbm/handler/GUIHandler.java +++ b/src/main/java/com/hbm/handler/GUIHandler.java @@ -33,7 +33,7 @@ public class GUIHandler implements IGuiHandler { if(entity instanceof TileEntityCrateSteel) { return new ContainerCrateSteel(player.inventory, (TileEntityCrateSteel) entity); } if(entity instanceof TileEntityCrateDesh) { return new ContainerCrateDesh(player.inventory, (TileEntityCrateDesh) entity); } if(entity instanceof TileEntityCrateTungsten) { return new ContainerCrateTungsten(player.inventory, (TileEntityCrateTungsten) entity); } - if(entity instanceof TileEntitySafe) { return new ContainerSafe(player.inventory, (TileEntitySafe) entity); } + if(entity instanceof TileEntityMassStorage) { return new ContainerMassStorage(player.inventory, (TileEntityMassStorage) entity); } if(entity instanceof TileEntityMachineLiquefactor) { return new ContainerLiquefactor(player.inventory, (TileEntityMachineLiquefactor) entity); } if(entity instanceof TileEntityMachineSolidifier) { return new ContainerSolidifier(player.inventory, (TileEntityMachineSolidifier) entity); } @@ -857,6 +857,7 @@ public class GUIHandler implements IGuiHandler { if(entity instanceof TileEntityCrateDesh) { return new GUICrateDesh(player.inventory, (TileEntityCrateDesh) entity); } if(entity instanceof TileEntityCrateTungsten) { return new GUICrateTungsten(player.inventory, (TileEntityCrateTungsten) entity); } if(entity instanceof TileEntitySafe) { return new GUISafe(player.inventory, (TileEntitySafe) entity); } + if(entity instanceof TileEntityMassStorage) { return new GUIMassStorage(player.inventory, (TileEntityMassStorage) entity); } if(entity instanceof TileEntityMachineLiquefactor) { return new GUILiquefactor(player.inventory, (TileEntityMachineLiquefactor) entity); } if(entity instanceof TileEntityMachineSolidifier) { return new GUISolidifier(player.inventory, (TileEntityMachineSolidifier) entity); } diff --git a/src/main/java/com/hbm/inventory/container/ContainerMassStorage.java b/src/main/java/com/hbm/inventory/container/ContainerMassStorage.java new file mode 100644 index 000000000..820008c64 --- /dev/null +++ b/src/main/java/com/hbm/inventory/container/ContainerMassStorage.java @@ -0,0 +1,105 @@ +package com.hbm.inventory.container; + +import com.hbm.inventory.SlotMachineOutput; +import com.hbm.inventory.SlotPattern; +import com.hbm.tileentity.machine.storage.TileEntityMassStorage; + +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 ContainerMassStorage extends Container { + + private TileEntityMassStorage storage; + + public ContainerMassStorage(InventoryPlayer invPlayer, TileEntityMassStorage te) { + this.storage = te; + + this.addSlotToContainer(new Slot(storage, 0, 61, 17)); + this.addSlotToContainer(new SlotPattern(storage, 1, 61, 53)); + this.addSlotToContainer(new SlotMachineOutput(storage, 2, 61, 89)); + + 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, 139 + i * 18)); + } + } + + for(int i = 0; i < 9; i++) { + this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 197)); + } + } + + @Override + public ItemStack transferStackInSlot(EntityPlayer player, int par2) { + ItemStack var3 = null; + Slot var4 = (Slot) this.inventorySlots.get(par2); + + if(var4 != null && var4.getHasStack()) { + ItemStack var5 = var4.getStack(); + var3 = var5.copy(); + + if(par2 == 0 || par2 == 2) { + if(!this.mergeItemStack(var5, storage.getSizeInventory(), this.inventorySlots.size(), true)) { + return null; + } + } else if(!this.mergeItemStack(var5, 0, 1, false)) { + return null; + } + + if(var5.stackSize == 0) { + var4.putStack((ItemStack) null); + } else { + var4.onSlotChanged(); + } + + var4.onPickupFromSlot(player, var5); + } + + return var3; + } + + @Override + public ItemStack slotClick(int index, int button, int mode, EntityPlayer player) { + + //L/R: 0 + //M3: 3 + //SHIFT: 1 + //DRAG: 5 + //System.out.println("Mode " + mode); + //System.out.println("Slot " + index); + + if(index != 1) { + return super.slotClick(index, button, mode, player); + } + + Slot slot = this.getSlot(index); + + ItemStack ret = null; + ItemStack held = player.inventory.getItemStack(); + + if(slot.getHasStack()) + ret = slot.getStack().copy(); + + //Don't allow for a type change when the thing isn't empty + if(storage.getStockpile() > 0) + return ret; + + slot.putStack(held != null ? held.copy() : null); + + if(slot.getHasStack()) { + slot.getStack().stackSize = 1; + } + + slot.onSlotChanged(); + + return ret; + } + + @Override + public boolean canInteractWith(EntityPlayer player) { + return storage.isUseableByPlayer(player); + } +} diff --git a/src/main/java/com/hbm/inventory/gui/GUICrateDesh.java b/src/main/java/com/hbm/inventory/gui/GUICrateDesh.java index 61cb62526..d75a8ee62 100644 --- a/src/main/java/com/hbm/inventory/gui/GUICrateDesh.java +++ b/src/main/java/com/hbm/inventory/gui/GUICrateDesh.java @@ -30,7 +30,7 @@ public class GUICrateDesh extends GuiContainer { String name = this.crate.hasCustomInventoryName() ? this.crate.getInventoryName() : I18n.format(this.crate.getInventoryName()); this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); - this.fontRendererObj.drawString(I18n.format("container.inventory"), 40, this.ySize - 96 + 3, 4210752); + this.fontRendererObj.drawString(I18n.format("container.inventory"), 44, this.ySize - 96 + 3, 4210752); } @Override diff --git a/src/main/java/com/hbm/inventory/gui/GUIMassStorage.java b/src/main/java/com/hbm/inventory/gui/GUIMassStorage.java new file mode 100644 index 000000000..b2e7255f0 --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GUIMassStorage.java @@ -0,0 +1,84 @@ +package com.hbm.inventory.gui; + +import org.lwjgl.input.Keyboard; +import org.lwjgl.opengl.GL11; + +import com.hbm.inventory.container.ContainerMassStorage; +import com.hbm.lib.RefStrings; +import com.hbm.packet.NBTControlPacket; +import com.hbm.packet.PacketDispatcher; +import com.hbm.tileentity.machine.storage.TileEntityMassStorage; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.audio.PositionedSoundRecord; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.ResourceLocation; + +public class GUIMassStorage extends GuiInfoContainer { + + private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/storage/gui_mass_storage.png"); + private TileEntityMassStorage storage; + + public GUIMassStorage(InventoryPlayer invPlayer, TileEntityMassStorage tile) { + super(new ContainerMassStorage(invPlayer, tile)); + storage = tile; + + this.xSize = 176; + this.ySize = 221; + } + + @Override + public void drawScreen(int mouseX, int mouseY, float f) { + super.drawScreen(mouseX, mouseY, f); + + String percent = (((int) (storage.getStockpile() * 1000D / (double) storage.getCapacity())) / 10D) + "%"; + this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 96, guiTop + 16, 18, 90, mouseX, mouseY, new String[] { storage.getStockpile() + " / " + storage.getCapacity(), percent }); + + this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 62, guiTop + 72, 14, 14, mouseX, mouseY, new String[] { "Click: Provide one", "Shift-click: Provide stack" }); + this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 80, guiTop + 72, 14, 14, mouseX, mouseY, new String[] { "Toggle output" }); + } + + @Override + protected void mouseClicked(int x, int y, int i) { + super.mouseClicked(x, y, i); + + if(guiLeft + 62 <= x && guiLeft + 62 + 14 > x && guiTop + 72 < y && guiTop + 72 + 14 >= y) { + + mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); + NBTTagCompound data = new NBTTagCompound(); + data.setBoolean("provide", Keyboard.isKeyDown(Keyboard.KEY_LSHIFT)); + PacketDispatcher.wrapper.sendToServer(new NBTControlPacket(data, storage.xCoord, storage.yCoord, storage.zCoord)); + } + + if(guiLeft + 80 <= x && guiLeft + 80 + 14 > x && guiTop + 72 < y && guiTop + 72 + 14 >= y) { + + mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); + NBTTagCompound data = new NBTTagCompound(); + data.setBoolean("toggle", false); + PacketDispatcher.wrapper.sendToServer(new NBTControlPacket(data, storage.xCoord, storage.yCoord, storage.zCoord)); + } + } + + @Override + protected void drawGuiContainerForegroundLayer(int i, int j) { + String name = this.storage.hasCustomInventoryName() ? this.storage.getInventoryName() : I18n.format(this.storage.getInventoryName()); + + this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); + this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); + } + + @Override + protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + + int gauge = storage.getStockpile() * 88 / storage.getCapacity(); + drawTexturedModalRect(guiLeft + 97, guiTop + 105 - gauge, 176, 88 - gauge, 16, gauge); + + if(storage.output) + drawTexturedModalRect(guiLeft + 80, guiTop + 72, 192, 0, 14, 14); + } +} diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index 3ada8dd13..b3150ec36 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -1631,16 +1631,19 @@ public class ClientProxy extends ServerProxy { int gW = (int)(width / 0.25F); int gH = (int)(height / 0.25F); + int count = (int) (gW * 1.5 * gH); + + if(data.hasKey("cDiv")) + count = (int) Math.ceil(count / (double)data.getInteger("cDiv")); + boolean blowMeIntoTheGodDamnStratosphere = rand.nextInt(15) == 0; double mult = 1D; if(blowMeIntoTheGodDamnStratosphere) mult *= 10; - for(int i = -(gW / 2); i <= gW; i++) { - for(int j = 0; j <= gH; j++) { - Minecraft.getMinecraft().effectRenderer.addEffect(new ParticleGiblet(man, world, x, y, z, rand.nextGaussian() * 0.25 * mult, rand.nextDouble() * mult, rand.nextGaussian() * 0.25 * mult)); - } + for(int i = 0; i < count; i++) { + Minecraft.getMinecraft().effectRenderer.addEffect(new ParticleGiblet(man, world, x, y, z, rand.nextGaussian() * 0.25 * mult, rand.nextDouble() * mult, rand.nextGaussian() * 0.25 * mult)); } } diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index 69f4a68b8..f16fc2630 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -266,6 +266,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.machine_converter_rf_he, 1), new Object[] { "SSS", "BRC", "SSS", 'S', BE.ingot(), 'C', ModItems.coil_copper, 'R', ModItems.coil_copper_torus, 'B', REDSTONE.block() }); 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.crate_desh, 1), new Object[] { " D ", "DSD", " D ", 'D', ModItems.plate_desh, 'S', ModBlocks.crate_steel }); addRecipeAuto(new ItemStack(ModBlocks.crate_tungsten, 1), new Object[] { "BPB", "PCP", "BPB", 'B', W.block(), 'P', ModItems.board_copper, 'C', ModBlocks.crate_steel }); addRecipeAuto(new ItemStack(ModBlocks.safe, 1), new Object[] { "LAL", "ACA", "LAL", 'L', PB.plate(), 'A', ALLOY.plate(), 'C', ModBlocks.crate_steel }); addRecipeAuto(new ItemStack(ModBlocks.machine_waste_drum, 1), new Object[] { "LRL", "BRB", "LRL", 'L', PB.ingot(), 'B', Blocks.iron_bars, 'R', ModItems.rod_quad_empty }); diff --git a/src/main/java/com/hbm/tileentity/TileMappings.java b/src/main/java/com/hbm/tileentity/TileMappings.java index 91855540a..6a539da64 100644 --- a/src/main/java/com/hbm/tileentity/TileMappings.java +++ b/src/main/java/com/hbm/tileentity/TileMappings.java @@ -8,9 +8,7 @@ import com.hbm.blocks.generic.BlockLoot.TileEntityLoot; import com.hbm.blocks.generic.BlockMotherOfAllOres.TileEntityRandomOre; import com.hbm.blocks.network.CableDiode.TileEntityDiode; import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidContainer; import com.hbm.interfaces.IFluidSource; -import com.hbm.main.MainRegistry; import com.hbm.tileentity.bomb.*; import com.hbm.tileentity.conductor.*; import com.hbm.tileentity.deco.*; @@ -96,6 +94,8 @@ public class TileMappings { put(TileEntityMachineTurbofan.class, "tileentity_machine_turbofan"); put(TileEntityCrateIron.class, "tileentity_crate_iron"); put(TileEntityCrateSteel.class, "tileentity_crate_steel"); + put(TileEntityCrateDesh.class, "tileentity_crate_desh"); + put(TileEntityMassStorage.class, "tileentity_mass_storage"); put(TileEntityMachinePress.class, "tileentity_press"); put(TileEntityAMSBase.class, "tileentity_ams_base"); put(TileEntityAMSEmitter.class, "tileentity_ams_emitter"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssembler.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssembler.java index ba77308a0..ced4e8098 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssembler.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssembler.java @@ -6,6 +6,7 @@ import java.util.Random; import com.hbm.blocks.ModBlocks; import com.hbm.inventory.RecipesCommon.AStack; +import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.recipes.AssemblerRecipes; import com.hbm.inventory.UpgradeManager; import com.hbm.items.ModItems; @@ -208,12 +209,18 @@ public class TileEntityMachineAssembler extends TileEntityMachineBase implements break; } + int rec = -1; + if(AssemblerRecipes.getOutputFromTempate(slots[4]) != null) { + ComparableStack comp = ItemAssemblyTemplate.readType(slots[4]); + rec = AssemblerRecipes.recipeList.indexOf(comp); + } + NBTTagCompound data = new NBTTagCompound(); data.setLong("power", power); data.setInteger("progress", progress); data.setInteger("maxProgress", maxProgress); data.setBoolean("isProgressing", isProgressing); - data.setInteger("recipe", slots[4] != null ? AssemblerRecipes.recipeList.indexOf(AssemblerRecipes.getOutputFromTempate(slots[4])) : -1); + data.setInteger("recipe", rec); this.networkPack(data, 150); } else { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java index feadfe218..a7751b620 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java @@ -14,6 +14,7 @@ import com.hbm.inventory.fluid.Fluids; import com.hbm.items.ModItems; import com.hbm.lib.ModDamageSource; import com.hbm.packet.AuxElectricityPacket; +import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.LoopedSoundPacket; import com.hbm.packet.PacketDispatcher; import com.hbm.packet.TETurbofanPacket; @@ -24,6 +25,7 @@ import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.ISidedInventory; import net.minecraft.item.ItemStack; @@ -322,6 +324,16 @@ public class TileEntityMachineTurbofan extends TileEntityLoadedBase implements I for(Entity e : list) { e.attackEntityFrom(ModDamageSource.turbofan, 1000); + + if(!e.isEntityAlive() && e instanceof EntityLivingBase) { + NBTTagCompound vdat = new NBTTagCompound(); + vdat.setString("type", "giblets"); + vdat.setInteger("ent", e.getEntityId()); + vdat.setInteger("cDiv", 5); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(vdat, e.posX, e.posY + e.height * 0.5, e.posZ), new TargetPoint(e.dimension, e.posX, e.posY + e.height * 0.5, e.posZ, 150)); + + worldObj.playSoundEffect(e.posX, e.posY, e.posZ, "mob.zombie.woodbreak", 2.0F, 0.95F + worldObj.rand.nextFloat() * 0.2F); + } } } if(meta == 3) { @@ -374,6 +386,16 @@ public class TileEntityMachineTurbofan extends TileEntityLoadedBase implements I for(Entity e : list) { e.attackEntityFrom(ModDamageSource.turbofan, 1000); + + if(!e.isEntityAlive() && e instanceof EntityLivingBase) { + NBTTagCompound vdat = new NBTTagCompound(); + vdat.setString("type", "giblets"); + vdat.setInteger("ent", e.getEntityId()); + vdat.setInteger("cDiv", 5); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(vdat, e.posX, e.posY + e.height * 0.5, e.posZ), new TargetPoint(e.dimension, e.posX, e.posY + e.height * 0.5, e.posZ, 150)); + + worldObj.playSoundEffect(e.posX, e.posY, e.posZ, "mob.zombie.woodbreak", 2.0F, 0.95F + worldObj.rand.nextFloat() * 0.2F); + } } } if(meta == 4) { @@ -426,6 +448,16 @@ public class TileEntityMachineTurbofan extends TileEntityLoadedBase implements I for(Entity e : list) { e.attackEntityFrom(ModDamageSource.turbofan, 1000); + + if(!e.isEntityAlive() && e instanceof EntityLivingBase) { + NBTTagCompound vdat = new NBTTagCompound(); + vdat.setString("type", "giblets"); + vdat.setInteger("ent", e.getEntityId()); + vdat.setInteger("cDiv", 5); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(vdat, e.posX, e.posY + e.height * 0.5, e.posZ), new TargetPoint(e.dimension, e.posX, e.posY + e.height * 0.5, e.posZ, 150)); + + worldObj.playSoundEffect(e.posX, e.posY, e.posZ, "mob.zombie.woodbreak", 2.0F, 0.95F + worldObj.rand.nextFloat() * 0.2F); + } } } if(meta == 5) { @@ -478,6 +510,16 @@ public class TileEntityMachineTurbofan extends TileEntityLoadedBase implements I for(Entity e : list) { e.attackEntityFrom(ModDamageSource.turbofan, 1000); + + if(!e.isEntityAlive() && e instanceof EntityLivingBase) { + NBTTagCompound vdat = new NBTTagCompound(); + vdat.setString("type", "giblets"); + vdat.setInteger("ent", e.getEntityId()); + vdat.setInteger("cDiv", 5); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(vdat, e.posX, e.posY + e.height * 0.5, e.posZ), new TargetPoint(e.dimension, e.posX, e.posY + e.height * 0.5, e.posZ, 150)); + + worldObj.playSoundEffect(e.posX, e.posY, e.posZ, "mob.zombie.woodbreak", 2.0F, 0.95F + worldObj.rand.nextFloat() * 0.2F); + } } } } diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityCrateBase.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityCrateBase.java index 14568a358..1f477ecee 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityCrateBase.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityCrateBase.java @@ -13,10 +13,6 @@ public abstract class TileEntityCrateBase extends TileEntityLockableBase impleme protected ItemStack slots[]; public String customName; - public TileEntityCrateBase() { - slots = new ItemStack[0]; - } - public TileEntityCrateBase(int count) { slots = new ItemStack[count]; } diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java index ab683fc23..a59f7cbab 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java @@ -3,7 +3,6 @@ package com.hbm.tileentity.machine.storage; import java.util.ArrayList; import java.util.List; -import com.hbm.blocks.ModBlocks; import com.hbm.interfaces.IFluidAcceptor; import com.hbm.interfaces.IFluidContainer; import com.hbm.interfaces.IFluidSource; diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachinePuF6Tank.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachinePuF6Tank.java index 49996bdbb..1dfe5dc04 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachinePuF6Tank.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachinePuF6Tank.java @@ -1,8 +1,5 @@ package com.hbm.tileentity.machine.storage; -import java.util.ArrayList; -import java.util.List; - import com.hbm.interfaces.IFluidContainer; import com.hbm.inventory.FluidTank; import com.hbm.inventory.fluid.FluidType; diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineUF6Tank.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineUF6Tank.java index 115bc7ec9..9a1d5db6e 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineUF6Tank.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineUF6Tank.java @@ -1,8 +1,5 @@ package com.hbm.tileentity.machine.storage; -import java.util.ArrayList; -import java.util.List; - import com.hbm.interfaces.IFluidContainer; import com.hbm.inventory.FluidTank; import com.hbm.inventory.fluid.FluidType; diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMassStorage.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMassStorage.java new file mode 100644 index 000000000..06f18b433 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMassStorage.java @@ -0,0 +1,141 @@ +package com.hbm.tileentity.machine.storage; + +import com.hbm.interfaces.IControlReceiver; +import com.hbm.items.ModItems; +import com.hbm.tileentity.INBTPacketReceiver; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.nbt.NBTTagList; +import net.minecraft.util.Vec3; + +public class TileEntityMassStorage extends TileEntityCrateBase implements INBTPacketReceiver, IControlReceiver { + + private int stack = 0; + public boolean output = false; + + public TileEntityMassStorage() { + super(3); + } + + @Override + public String getInventoryName() { + return "container.massStorage"; + } + + @Override + public void updateEntity() { + + if(!worldObj.isRemote) { + + if(slots[0] != null && slots[0].getItem() == ModItems.fluid_barrel_infinite) { + this.stack = this.getCapacity(); + } + + if(this.getType() == null) + this.stack = 0; + + if(getType() != null && getStockpile() < getCapacity() && slots[0] != null && slots[0].isItemEqual(getType()) && ItemStack.areItemStackTagsEqual(slots[0], getType())) { + + int remaining = getCapacity() - getStockpile(); + int toRemove = Math.min(remaining, slots[0].stackSize); + this.decrStackSize(0, toRemove); + this.stack += toRemove; + this.worldObj.markTileEntityChunkModified(this.xCoord, this.yCoord, this.zCoord, this); + } + + if(output) { + + if(slots[2] != null && !(slots[2].isItemEqual(getType()) && ItemStack.areItemStackTagsEqual(slots[2], getType()))) { + return; + } + + int amount = Math.min(getStockpile(), getType().getMaxStackSize()); + + if(slots[2] == null) { + slots[2] = slots[1].copy(); + slots[2].stackSize = amount; + this.stack -= amount; + } else { + amount = Math.min(amount, slots[2].getMaxStackSize() - slots[2].stackSize); + slots[2].stackSize += amount; + this.stack -= amount; + } + } + + NBTTagCompound data = new NBTTagCompound(); + data.setInteger("stack", getStockpile()); + data.setBoolean("output", output); + INBTPacketReceiver.networkPack(this, data, 15); + } + } + + @Override + public void networkUnpack(NBTTagCompound nbt) { + this.stack = nbt.getInteger("stack"); + this.output = nbt.getBoolean("output"); + } + + public int getCapacity() { + return 10_000; + } + + public ItemStack getType() { + return slots[1] == null ? null : slots[1].copy(); + } + + public int getStockpile() { + return stack; + } + + @Override + public boolean hasPermission(EntityPlayer player) { + return Vec3.createVectorHelper(xCoord - player.posX, yCoord - player.posY, zCoord - player.posZ).lengthVector() < 20; + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + this.stack = nbt.getInteger("stack"); + this.output = nbt.getBoolean("output"); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + nbt.setInteger("stack", stack); + nbt.setBoolean("output", output); + } + + @Override + public void receiveControl(NBTTagCompound data) { + if(data.hasKey("provide") && slots[1] != null) { + + if(this.getStockpile() == 0) { + return; + } + + int amount = data.getBoolean("provide") ? slots[1].getMaxStackSize() : 1; + amount = Math.min(amount, getStockpile()); + + if(slots[2] != null && !(slots[2].isItemEqual(getType()) && ItemStack.areItemStackTagsEqual(slots[2], getType()))) { + return; + } + + if(slots[2] == null) { + slots[2] = slots[1].copy(); + slots[2].stackSize = amount; + this.stack -= amount; + } else { + amount = Math.min(amount, slots[2].getMaxStackSize() - slots[2].stackSize); + slots[2].stackSize += amount; + this.stack -= amount; + } + } + + if(data.hasKey("toggle")) { + this.output = !output; + } + } +} diff --git a/src/main/resources/assets/hbm/textures/blocks/mass_storage_side.png b/src/main/resources/assets/hbm/textures/blocks/mass_storage_side.png new file mode 100644 index 0000000000000000000000000000000000000000..a909909555702c4d8ecbe6bd501600238d739cb2 GIT binary patch literal 300 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfnXQ%+$mDR@WVU1Wo&4>Q3=DIM>t*NJ&76AaXN^srRgKNurr2e(ukT}L z&{*2kKeM?u@3uyrA_GHcXk*8rU(xfnmI>|_2=Hp`FyL`M(KK`6*0?VxjTfItRcL*+ ztM8Pj=B4uK0)Zu~-yF^2Jj3%`W`^Wr3%7kD$v*o!85V5i`*uzKBv(Xsd2qa_$NkEF y4~Ksn=CgiV=4+IiB+MU`JcW316^5&>>LxT- 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/gui/storage/gui_mass_storage_triple.png b/src/main/resources/assets/hbm/textures/gui/storage/gui_mass_storage_triple.png new file mode 100644 index 0000000000000000000000000000000000000000..aa9a3cc4094c35abd959548cd3f1d8882784ae3c GIT binary patch literal 3413 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 literal 0 HcmV?d00001 From 26bcbcf7e0f5230344f549ccb461cc07676340df Mon Sep 17 00:00:00 2001 From: Boblet Date: Fri, 27 May 2022 14:54:45 +0200 Subject: [PATCH 25/80] it's an autocrafter --- src/main/java/com/hbm/blocks/ModBlocks.java | 6 ++ .../blocks/machine/MachineAutocrafter.java | 65 ++++++++++++++++++ .../java/com/hbm/tileentity/TileMappings.java | 1 + .../machine/TileEntityMachineAutocrafter.java | 20 ++++++ src/main/resources/assets/hbm/lang/de_DE.lang | 2 + src/main/resources/assets/hbm/lang/en_US.lang | 2 + .../blocks/machine_autocrafter_bottom.png | Bin 0 -> 466 bytes .../blocks/machine_autocrafter_side.png | Bin 0 -> 466 bytes .../blocks/machine_autocrafter_top.png | Bin 0 -> 556 bytes .../gui/processing/gui_autocrafter.png | Bin 0 -> 2444 bytes .../gui/storage/gui_mass_storage_double.png | Bin 3320 -> 0 bytes .../gui/storage/gui_mass_storage_triple.png | Bin 3413 -> 0 bytes 12 files changed, 96 insertions(+) create mode 100644 src/main/java/com/hbm/blocks/machine/MachineAutocrafter.java create mode 100644 src/main/java/com/hbm/tileentity/machine/TileEntityMachineAutocrafter.java create mode 100644 src/main/resources/assets/hbm/textures/blocks/machine_autocrafter_bottom.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/machine_autocrafter_side.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/machine_autocrafter_top.png create mode 100644 src/main/resources/assets/hbm/textures/gui/processing/gui_autocrafter.png delete mode 100644 src/main/resources/assets/hbm/textures/gui/storage/gui_mass_storage_double.png delete mode 100644 src/main/resources/assets/hbm/textures/gui/storage/gui_mass_storage_triple.png diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 948fd7ec2..2f25a1301 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -1047,6 +1047,8 @@ public class ModBlocks { public static Block machine_storage_drum; public static final int guiID_storage_drum = 118; + public static Block machine_autocrafter; + public static Block anvil_iron; public static Block anvil_lead; public static Block anvil_steel; @@ -2166,6 +2168,8 @@ public class ModBlocks { machine_electrolyser = new MachineElectrolyser().setBlockName("machine_electrolyser").setHardness(10.0F).setResistance(20.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel_machine"); + machine_autocrafter = new MachineAutocrafter().setBlockName("machine_autocrafter").setCreativeTab(MainRegistry.machineTab); + anvil_iron = new NTMAnvil(Material.iron, 1).setBlockName("anvil_iron").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":anvil_iron"); anvil_lead = new NTMAnvil(Material.iron, 1).setBlockName("anvil_lead").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":anvil_lead"); anvil_steel = new NTMAnvil(Material.iron, 2).setBlockName("anvil_steel").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":anvil_steel"); @@ -2917,6 +2921,8 @@ public class ModBlocks { //GameRegistry.registerBlock(observer_off, observer_off.getUnlocalizedName()); //GameRegistry.registerBlock(observer_on, observer_on.getUnlocalizedName()); + GameRegistry.registerBlock(machine_autocrafter, ItemBlockBase.class, machine_autocrafter.getUnlocalizedName()); + GameRegistry.registerBlock(anvil_iron, ItemBlockBase.class, anvil_iron.getUnlocalizedName()); GameRegistry.registerBlock(anvil_lead, ItemBlockBase.class, anvil_lead.getUnlocalizedName()); GameRegistry.registerBlock(anvil_steel, ItemBlockBase.class, anvil_steel.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/machine/MachineAutocrafter.java b/src/main/java/com/hbm/blocks/machine/MachineAutocrafter.java new file mode 100644 index 000000000..7bb318c6a --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/MachineAutocrafter.java @@ -0,0 +1,65 @@ +package com.hbm.blocks.machine; + +import com.hbm.items.ModItems; +import com.hbm.items.tool.ItemLock; +import com.hbm.lib.RefStrings; +import com.hbm.main.MainRegistry; +import com.hbm.tileentity.machine.TileEntityMachineAutocrafter; +import com.hbm.tileentity.machine.storage.TileEntityCrateBase; + +import cpw.mods.fml.common.network.internal.FMLNetworkHandler; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.IIcon; +import net.minecraft.world.World; + +public class MachineAutocrafter extends BlockContainer { + + @SideOnly(Side.CLIENT) + private IIcon iconTop; + @SideOnly(Side.CLIENT) + private IIcon iconBottom; + + public MachineAutocrafter() { + super(Material.iron); + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister iconRegister) { + this.iconTop = iconRegister.registerIcon(RefStrings.MODID + ":machine_autocrafter_top"); + this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":machine_autocrafter_side"); + this.iconBottom = iconRegister.registerIcon(RefStrings.MODID + ":machine_autocrafter_bottom"); + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int metadata) { + return side == 1 ? this.iconTop : (side == 0 ? this.iconBottom : this.blockIcon); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + return new TileEntityMachineAutocrafter(); + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + if(world.isRemote) { + return true; + } else if(!player.isSneaking()) { + TileEntity entity = world.getTileEntity(x, y, z); + if(entity instanceof TileEntityMachineAutocrafter) { + FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y, z); + } + return true; + } else { + return false; + } + } +} diff --git a/src/main/java/com/hbm/tileentity/TileMappings.java b/src/main/java/com/hbm/tileentity/TileMappings.java index 6a539da64..73d9c279a 100644 --- a/src/main/java/com/hbm/tileentity/TileMappings.java +++ b/src/main/java/com/hbm/tileentity/TileMappings.java @@ -246,6 +246,7 @@ public class TileMappings { } private static void putMachines() { + put(TileEntityMachineAutocrafter.class, "tileentity_autocrafter"); put(TileEntityDiFurnaceRTG.class, "tileentity_rtg_difurnace"); put(TileEntityMachineRadiolysis.class, "tileentity_radiolysis"); put(TileEntityUVLamp.class, "tileentity_uv_lamp"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAutocrafter.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAutocrafter.java new file mode 100644 index 000000000..388ef2ef9 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAutocrafter.java @@ -0,0 +1,20 @@ +package com.hbm.tileentity.machine; + +import com.hbm.tileentity.TileEntityMachineBase; + +public class TileEntityMachineAutocrafter extends TileEntityMachineBase { + + public TileEntityMachineAutocrafter() { + super(21); + } + + @Override + public String getName() { + return "container.autocrafter"; + } + + @Override + public void updateEntity() { + + } +} diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 950c219b3..6f579507d 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -261,6 +261,7 @@ container.machineSolidifier=Verfestiger container.machineTurbine=Dampfturbine container.machineTurbofan=Turbofan container.machine_schrabidium_transmutator=Schrabidium-Transmutationsgerät +container.massStorage=Speicher container.microwave=Mikrowelle container.miningDrill=Automatischer Minenbohrer container.miningLaser=Bergbaulaser @@ -3404,6 +3405,7 @@ tile.machine_waste_drum.name=Abklingbecken-Trommel tile.machine_well.name=Ölbohrturm tile.machine_zirnox.name=ZIRNOX Atomreaktor tile.marker_structure.name=Multiblock-Strukturvorlage +tile.mass_storage.name=Massenspeicher tile.meteor_battery.name=Stermenmetall-Elektrostatikgenerator tile.meteor_brick.name=Meteoritenziegel tile.meteor_brick_chiseled.name=Gemeißelter Meteoritenziegel diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index dc3f6b587..31e3ec3b9 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -437,6 +437,7 @@ container.machineSolidifier=Solidifier container.machineTurbine=Steam Turbine container.machineTurbofan=Turbofan container.machine_schrabidium_transmutator=Schrabidium Transmutation Device +container.massStorage=Storage container.microwave=Microwave container.miningDrill=Automatic Mining Drill container.miningLaser=Mining Laser @@ -3797,6 +3798,7 @@ tile.machine_waste_drum.name=Spent Fuel Pool Drum tile.machine_well.name=Oil Derrick tile.machine_zirnox.name=ZIRNOX Nuclear Reactor tile.marker_structure.name=Multiblock Structure Marker +tile.mass_storage.name=Mass Storage Unit tile.meteor_battery.name=Starmetal Static Electricity Generator tile.meteor_brick.name=Meteor Bricks tile.meteor_brick_chiseled.name=Chiseled Meteor Bricks diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_autocrafter_bottom.png b/src/main/resources/assets/hbm/textures/blocks/machine_autocrafter_bottom.png new file mode 100644 index 0000000000000000000000000000000000000000..d737646cf087e43eb8d0e08e2c797e9ca7feefaa GIT binary patch literal 466 zcmV;@0WJQCP)&u5QV>(#9c)!78L)AXkqQ2-%eSyP_)oO5R}#3Y?51C z5{&o3JCGuonKS3i5V2mbeO=cGA<$Z*wMHq05CZQ#0YV6#&nH5Ny_j2$p7#!yQ*zlw%hHW;e-UOb@H{}?{`A@0|bES=W)Q>`Tzg`07*qo IM6N<$f+aoBCIA2c literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_autocrafter_side.png b/src/main/resources/assets/hbm/textures/blocks/machine_autocrafter_side.png new file mode 100644 index 0000000000000000000000000000000000000000..5f88cdcb8fa852e6db6ca046c34420feef629b32 GIT binary patch literal 466 zcmV;@0WJQCP)G^!l;c&n?H@FOh z0O#C5uqX=hJV!T81Hj|)Kq-Y%3hzD6Ih0ZWXsrjuZQF9c-@kX^a5|k**EQ$!ITC|F zz+$mryytBLDyZ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_autocrafter_top.png b/src/main/resources/assets/hbm/textures/blocks/machine_autocrafter_top.png new file mode 100644 index 0000000000000000000000000000000000000000..f22794800063728acdcee8a82a453113274cc10c GIT binary patch literal 556 zcmV+{0@MA8P)!-uQha`XqLk|7%+1XW ztJMnUT<0j;0_)mjUfwU%D5*BQx} zYq|Gc#u0$oY{pM$Fa;9$8m>~IF7lyyQ3%yk=gv0PHT-ZMidGB{9PSh0vTDB zQ4|FLUteG3dCp?70InW*e0-!R3aqu9&u1Z1Iyf8-G))6sb#I!6rfE99sHzIBHPh+z zmxI48B}qb(Bn$=voO6suBZk8vWm%%N=KlU(d?6h;=L8_^z4vIXMXr$7T64Kvga_|E zCW@{?%;$5)Q*KerPPrtPTt{eVlm;PpCNt+#`#fi#r)TeT)<0`~>s{;jzQ6bVe($rcIXPI# zNGnPM0Ay^eEu8^?kR=4r63FBkQ4okss7Q00V`yZ=qEGz|04WO_OS5Aavp){A!j#;; zlNf1bzlm^RG%JlkT^XpMu!rwf@CoH`hB3z&=15!;XAK1o0>y&@kW7x>>~YB>rfpA1 z)904bH*6h zYQD=At#vTuwpX01U!CYm3Qseo8n;OjH5sv@?$URYj#XsQQf1g~o(VZSmvYg|fOEhJ z>XE_%AIc*UkJYHxPU6|OMS&=D6uU2lTOp#8==JM!lL+E&JTV6Y%?=KB%ve{X1}N>g z|5Nu{c{Mm@<1pCvPq;uGpxacwP|>0qBTSK)5RP~MFM~1Mi=3@o&Gi{o^fonrDCuMc zFqug32+pxD;eN@#??1qJe>P2gC{v*v4M)a$8()efNMr-cezVjy;7GZmn?pJ;IN6 z=xW)#zAZNhV8ZfZ95;>dm~vuK;}9O)MlPy@gw{IL>|Spxpf{$OdZ}uxgRpAHl60~I zsDL@jPNd>gs=ZKIbgOMI8U1&oO&D5BM+OS){4-EvVPb$WZ0Z%?urdagULFwgWJS{BeVIW?`^eyhZ9zEdf@$HhOBg z-BA-(lfm60qlofaU2!m}QN=50>XakMx{8&Dy4(0^7%&wNW7SFwJ%i5pYaU6ErZ4XRLOwzKlvL?>gFtsNa zYYNYQmwaT=Fr2OfmGwq>^)Bzb(fYuB+p-HSmcEBjx}KAA8Vg2B z30mSs+EnJ`i-D+wQeNOeY*u@ZvZ*X;Po_urg1HgHsT`v>=vFYG;oxVi>V4lfy|I~TS(~yH{ zRP$oiP9S@9;Wb7fxPeu1-hn)By0DlMWq*0fy-IZM7<|dz8=7)hV*NF!w|a?Ayss=5 znzb7&ExuGLPEpaJ+ZaHhYi5Jl5`SuzQ1QnCGbyN14Zt|KC*n}JdV9`GChuON^oVo; z%CLVY6#jw4RTyuJ|70SF0<;c!YUCr?JnTJtzmHE8lIg_wo1c4%WU0^nMqhv0q_euU zVE_t`iJ7bsZqi-d+KPM>;PzmWCJ})+xxtlvE%z#9I{WBJOIM|-ea5Thee%PJyYETk z0pkOjM4J>dOgE*Dmf%*CXB*j*4w1L&Y=Kh?_*X6iaNi6tV+ zFuI_KK{RD1vu|ObO3LuFqJlgyQ?BKVbB>soA!@Jmm{YCAG>?sAAk2_|>fqS8LOt>LZeF35bEA&t6Jz>SXdE-*dG<}#9OJ!@N~+Z{!x<36Xoj3nj+OQ&%LdepXk%ix2udR4l*mA z%KtCKZ=6j99sc_3mk75v>dJ;@raS9rwcSl~7It1Vvr^-g>$I1tcb=`#Vx&bxN4vdf z;+|~JSHFHfQ`O2UkIxbN-PphJ^ef|TY_nloN&|_6+V3#W`+(L{R*t82e>OCRk2a}% zX|La;;rF06l1C>to{8IbH?mwEQ*LdQ_sJdpcV0QKjuO4%f9if}*uZ4dtlWHgdWY$4 zeExq<{1NVd6@@PylKsBvq;U<5qchn&7V1~l=l~Dl0s0n38qy*M7sxZuub!&JvqO*` yxbJv_ArecuzAKS3t?`$QeVZc=mP~Wsgnt1UZW{pr literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/gui/storage/gui_mass_storage_double.png b/src/main/resources/assets/hbm/textures/gui/storage/gui_mass_storage_double.png deleted file mode 100644 index 65d5327881a2c69e294666ea335941c0b0e844d0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3320 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 diff --git a/src/main/resources/assets/hbm/textures/gui/storage/gui_mass_storage_triple.png b/src/main/resources/assets/hbm/textures/gui/storage/gui_mass_storage_triple.png deleted file mode 100644 index aa9a3cc4094c35abd959548cd3f1d8882784ae3c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3413 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 From 0535d3c49f66e6d546d4571fc0607967d39e060e Mon Sep 17 00:00:00 2001 From: Bob Date: Sun, 29 May 2022 00:57:08 +0200 Subject: [PATCH 26/80] the man --- src/main/java/com/hbm/handler/GUIHandler.java | 4 + .../com/hbm/inventory/OreDictManager.java | 4 +- .../java/com/hbm/inventory/SlotPattern.java | 15 ++ .../container/ContainerAutocrafter.java | 102 +++++++++++++ .../container/ContainerMassStorage.java | 2 - .../com/hbm/inventory/gui/GUIAutocrafter.java | 80 +++++++++++ .../java/com/hbm/main/CraftingManager.java | 1 + .../com/hbm/main/ModEventHandlerClient.java | 9 +- .../machine/TileEntityMachineAutocrafter.java | 136 ++++++++++++++++++ .../storage/TileEntityMassStorage.java | 1 - src/main/java/com/hbm/util/ItemStackUtil.java | 34 +++++ 11 files changed, 380 insertions(+), 8 deletions(-) create mode 100644 src/main/java/com/hbm/inventory/container/ContainerAutocrafter.java create mode 100644 src/main/java/com/hbm/inventory/gui/GUIAutocrafter.java diff --git a/src/main/java/com/hbm/handler/GUIHandler.java b/src/main/java/com/hbm/handler/GUIHandler.java index af9f7ba34..f021a75ff 100644 --- a/src/main/java/com/hbm/handler/GUIHandler.java +++ b/src/main/java/com/hbm/handler/GUIHandler.java @@ -35,6 +35,8 @@ public class GUIHandler implements IGuiHandler { if(entity instanceof TileEntityCrateTungsten) { return new ContainerCrateTungsten(player.inventory, (TileEntityCrateTungsten) entity); } if(entity instanceof TileEntityMassStorage) { return new ContainerMassStorage(player.inventory, (TileEntityMassStorage) entity); } + if(entity instanceof TileEntityMachineAutocrafter) { return new ContainerAutocrafter(player.inventory, (TileEntityMachineAutocrafter) entity); } + if(entity instanceof TileEntityMachineLiquefactor) { return new ContainerLiquefactor(player.inventory, (TileEntityMachineLiquefactor) entity); } if(entity instanceof TileEntityMachineSolidifier) { return new ContainerSolidifier(player.inventory, (TileEntityMachineSolidifier) entity); } if(entity instanceof TileEntityMachineRadiolysis) { return new ContainerRadiolysis(player.inventory, (TileEntityMachineRadiolysis) entity); } @@ -859,6 +861,8 @@ public class GUIHandler implements IGuiHandler { if(entity instanceof TileEntitySafe) { return new GUISafe(player.inventory, (TileEntitySafe) entity); } if(entity instanceof TileEntityMassStorage) { return new GUIMassStorage(player.inventory, (TileEntityMassStorage) entity); } + if(entity instanceof TileEntityMachineAutocrafter) { return new GUIAutocrafter(player.inventory, (TileEntityMachineAutocrafter) entity); } + if(entity instanceof TileEntityMachineLiquefactor) { return new GUILiquefactor(player.inventory, (TileEntityMachineLiquefactor) entity); } if(entity instanceof TileEntityMachineSolidifier) { return new GUISolidifier(player.inventory, (TileEntityMachineSolidifier) entity); } if(entity instanceof TileEntityMachineRadiolysis) { return new GUIRadiolysis(player.inventory, (TileEntityMachineRadiolysis) entity); } diff --git a/src/main/java/com/hbm/inventory/OreDictManager.java b/src/main/java/com/hbm/inventory/OreDictManager.java index 9b1fea100..c4bb4ecc6 100644 --- a/src/main/java/com/hbm/inventory/OreDictManager.java +++ b/src/main/java/com/hbm/inventory/OreDictManager.java @@ -10,6 +10,7 @@ import static com.hbm.items.ModItems.*; import static com.hbm.blocks.ModBlocks.*; import static com.hbm.inventory.OreDictManager.DictFrame.*; +import com.hbm.blocks.ModBlocks; import com.hbm.blocks.BlockEnums.EnumStoneType; import com.hbm.config.GeneralConfig; import com.hbm.hazard.HazardData; @@ -427,7 +428,8 @@ public class OreDictManager { ANY_SMOKELESS .dust(ballistite, cordite); ANY_PLASTICEXPLOSIVE .ingot(ingot_semtex, ingot_c4); ANY_HIGHEXPLOSIVE .ingot(ball_tnt); - ANY_CONCRETE .any(concrete, concrete_smooth, concrete_colored, concrete_asbestos, ducrete, ducrete_smooth); + ANY_CONCRETE .any(concrete, concrete_smooth, concrete_asbestos, ducrete, ducrete_smooth); + for(int i = 0; i < 16; i++) { ANY_CONCRETE.any(new ItemStack(ModBlocks.concrete_colored, 1, i)); } ANY_COKE .gem(fromAll(coke, EnumCokeType.class)); ANY_BISMOID .ingot(ingot_bismuth, ingot_arsenic).nugget(nugget_bismuth, nugget_arsenic).block(block_bismuth); diff --git a/src/main/java/com/hbm/inventory/SlotPattern.java b/src/main/java/com/hbm/inventory/SlotPattern.java index 637930fea..c40b92091 100644 --- a/src/main/java/com/hbm/inventory/SlotPattern.java +++ b/src/main/java/com/hbm/inventory/SlotPattern.java @@ -1,11 +1,15 @@ package com.hbm.inventory; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.IInventory; import net.minecraft.inventory.Slot; public class SlotPattern extends Slot { + protected boolean canHover = true; + public SlotPattern(IInventory inv, int index, int x, int y) { super(inv, index, x, y); } @@ -19,4 +23,15 @@ public class SlotPattern extends Slot { public int getSlotStackLimit() { return 1; } + + public SlotPattern disableHover() { + this.canHover = false; + return this; + } + + @Override + @SideOnly(Side.CLIENT) + public boolean func_111238_b() { + return canHover; + } } diff --git a/src/main/java/com/hbm/inventory/container/ContainerAutocrafter.java b/src/main/java/com/hbm/inventory/container/ContainerAutocrafter.java new file mode 100644 index 000000000..a0a470839 --- /dev/null +++ b/src/main/java/com/hbm/inventory/container/ContainerAutocrafter.java @@ -0,0 +1,102 @@ +package com.hbm.inventory.container; + +import com.hbm.inventory.SlotPattern; +import com.hbm.tileentity.machine.TileEntityMachineAutocrafter; + +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 ContainerAutocrafter extends Container { + + private TileEntityMachineAutocrafter autocrafter; + + public ContainerAutocrafter(InventoryPlayer invPlayer, TileEntityMachineAutocrafter tedf) { + autocrafter = tedf; + + /* TEMPLATE */ + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 3; j++) { + this.addSlotToContainer(new SlotPattern(tedf, j + i * 3, 44 + j * 18, 22 + i * 18).disableHover()); + } + } + this.addSlotToContainer(new SlotPattern(tedf, 9, 116, 40)); + + /* RECIPE */ + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 3; j++) { + this.addSlotToContainer(new Slot(tedf, j + i * 3 + 10, 44 + j * 18, 86 + i * 18)); + } + } + this.addSlotToContainer(new Slot(tedf, 19, 116, 104)); + + //Battery + this.addSlotToContainer(new Slot(tedf, 20, 17, 99)); + + 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, 158 + i * 18)); + } + } + + for(int i = 0; i < 9; i++) { + this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 216)); + } + } + + @Override + public ItemStack slotClick(int index, int button, int mode, EntityPlayer player) { + + //L/R: 0 + //M3: 3 + //SHIFT: 1 + //DRAG: 5 + + if(index < 0 || index > 9) { + return super.slotClick(index, button, mode, player); + } + + Slot slot = this.getSlot(index); + + ItemStack ret = null; + ItemStack held = player.inventory.getItemStack(); + + if(slot.getHasStack()) + ret = slot.getStack().copy(); + + //Don't allow any interaction for the template's output + if(index == 9) + return ret; + + if(button == 1 && mode == 0 && slot.getHasStack()) { + autocrafter.nextMode(index); + return ret; + + } else { + + slot.putStack(held != null ? held.copy() : null); + + if(slot.getHasStack()) { + slot.getStack().stackSize = 1; + } + + slot.onSlotChanged(); + autocrafter.initPattern(slot.getStack(), index); + autocrafter.updateTemplateGrid(); + + return ret; + } + } + + @Override + public ItemStack transferStackInSlot(EntityPlayer player, int index) { + return null; + } + + @Override + public boolean canInteractWith(EntityPlayer player) { + return autocrafter.isUseableByPlayer(player); + } +} diff --git a/src/main/java/com/hbm/inventory/container/ContainerMassStorage.java b/src/main/java/com/hbm/inventory/container/ContainerMassStorage.java index 820008c64..07eeea814 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerMassStorage.java +++ b/src/main/java/com/hbm/inventory/container/ContainerMassStorage.java @@ -68,8 +68,6 @@ public class ContainerMassStorage extends Container { //M3: 3 //SHIFT: 1 //DRAG: 5 - //System.out.println("Mode " + mode); - //System.out.println("Slot " + index); if(index != 1) { return super.slotClick(index, button, mode, player); diff --git a/src/main/java/com/hbm/inventory/gui/GUIAutocrafter.java b/src/main/java/com/hbm/inventory/gui/GUIAutocrafter.java new file mode 100644 index 000000000..02ae7a1cd --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GUIAutocrafter.java @@ -0,0 +1,80 @@ +package com.hbm.inventory.gui; + +import java.util.Arrays; + +import org.lwjgl.opengl.GL11; + +import com.hbm.inventory.container.ContainerAutocrafter; +import com.hbm.lib.RefStrings; +import com.hbm.tileentity.machine.TileEntityMachineAutocrafter; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Slot; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.ResourceLocation; + +public class GUIAutocrafter extends GuiInfoContainer { + + private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/processing/gui_autocrafter.png"); + private TileEntityMachineAutocrafter diFurnace; + + public GUIAutocrafter(InventoryPlayer invPlayer, TileEntityMachineAutocrafter tedf) { + super(new ContainerAutocrafter(invPlayer, tedf)); + diFurnace = tedf; + + this.xSize = 176; + this.ySize = 240; + } + + @Override + public void drawScreen(int x, int y, float interp) { + super.drawScreen(x, y, interp); + + if(this.mc.thePlayer.inventory.getItemStack() == null) { + for(int i = 0; i < 9; ++i) { + Slot slot = (Slot) this.inventorySlots.inventorySlots.get(i); + + if(this.isMouseOverSlot(slot, x, y) && diFurnace.modes[i] != null) { + + String label = EnumChatFormatting.YELLOW + ""; + + switch(diFurnace.modes[i]) { + case "exact": label += "Item and meta match"; break; + case "wildcard": label += "Item matches"; break; + default: label += "Ore dict key matches: " + diFurnace.modes[i]; break; + } + + this.func_146283_a(Arrays.asList(new String[] { EnumChatFormatting.RED + "Right click to change", label }), x, y - 30); + } + } + } + } + + @Override + protected void drawGuiContainerForegroundLayer(int i, int j) { + String name = this.diFurnace.hasCustomInventoryName() ? this.diFurnace.getInventoryName() : I18n.format(this.diFurnace.getInventoryName()); + + this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); + this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); + } + + @Override + protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + } + + /** + * I love the "private" key word so fucking much I'll spend the next 3 weeks ramming my cock into it + * @param slot + * @param x + * @param y + * @return + */ + protected boolean isMouseOverSlot(Slot slot, int x, int y) { + return this.func_146978_c(slot.xDisplayPosition, slot.yDisplayPosition, 16, 16, x, y); + } +} diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index f16fc2630..fd64ffef2 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -269,6 +269,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.crate_desh, 1), new Object[] { " D ", "DSD", " D ", 'D', ModItems.plate_desh, 'S', ModBlocks.crate_steel }); addRecipeAuto(new ItemStack(ModBlocks.crate_tungsten, 1), new Object[] { "BPB", "PCP", "BPB", 'B', W.block(), 'P', ModItems.board_copper, 'C', ModBlocks.crate_steel }); addRecipeAuto(new ItemStack(ModBlocks.safe, 1), new Object[] { "LAL", "ACA", "LAL", 'L', PB.plate(), 'A', ALLOY.plate(), 'C', ModBlocks.crate_steel }); + addRecipeAuto(new ItemStack(ModBlocks.machine_autocrafter, 1), new Object[] { "SCS", "MWM", "SCS", 'S', STEEL.plate(), 'C', ModItems.circuit_copper, 'M', ModItems.motor, 'W', Blocks.crafting_table }); addRecipeAuto(new ItemStack(ModBlocks.machine_waste_drum, 1), new Object[] { "LRL", "BRB", "LRL", 'L', PB.ingot(), 'B', Blocks.iron_bars, 'R', ModItems.rod_quad_empty }); addRecipeAuto(new ItemStack(ModBlocks.machine_press, 1), new Object[] { "IRI", "IPI", "IBI", 'I', IRON.ingot(), 'R', Blocks.furnace, 'B', IRON.block(), 'P', Blocks.piston }); addRecipeAuto(new ItemStack(ModBlocks.machine_siren, 1), new Object[] { "SIS", "ICI", "SRS", 'S', STEEL.plate(), 'I', ModItems.plate_polymer, 'C', ModItems.circuit_copper, 'R', REDSTONE.dust() }); diff --git a/src/main/java/com/hbm/main/ModEventHandlerClient.java b/src/main/java/com/hbm/main/ModEventHandlerClient.java index 3b83da3af..4f97748f1 100644 --- a/src/main/java/com/hbm/main/ModEventHandlerClient.java +++ b/src/main/java/com/hbm/main/ModEventHandlerClient.java @@ -53,6 +53,7 @@ import com.hbm.tileentity.bomb.TileEntityNukeCustom.CustomNukeEntry; import com.hbm.tileentity.bomb.TileEntityNukeCustom.EnumEntryType; import com.hbm.tileentity.machine.TileEntityNukeFurnace; import com.hbm.util.I18nUtil; +import com.hbm.util.ItemStackUtil; import com.hbm.util.LoggingUtil; import com.hbm.util.ArmorRegistry; import com.hbm.util.ArmorUtil; @@ -546,12 +547,12 @@ public class ModEventHandlerClient { HazardSystem.addFullTooltip(stack, event.entityPlayer, list); if(event.showAdvancedItemTooltips) { - int ids[] = OreDictionary.getOreIDs(stack); + List names = ItemStackUtil.getOreDictNames(stack); - if(ids.length > 0) { + if(names.size() > 0) { list.add(EnumChatFormatting.BLUE + "Ore Dict:"); - for(int i : ids) { - list.add(EnumChatFormatting.AQUA + " -" + OreDictionary.getOreName(i)); + for(String s : names) { + list.add(EnumChatFormatting.AQUA + " -" + s); } } else { list.add(EnumChatFormatting.RED + "No Ore Dict data!"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAutocrafter.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAutocrafter.java index 388ef2ef9..a0bb89507 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAutocrafter.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAutocrafter.java @@ -1,20 +1,156 @@ package com.hbm.tileentity.machine; +import java.util.List; + import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.ItemStackUtil; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.IInventory; +import net.minecraft.inventory.InventoryCrafting; +import net.minecraft.item.ItemStack; +import net.minecraft.item.crafting.CraftingManager; public class TileEntityMachineAutocrafter extends TileEntityMachineBase { + public static final String MODE_EXACT = "exact"; + public static final String MODE_WILDCARD = "wildcard"; + public String[] modes = new String[9]; + public TileEntityMachineAutocrafter() { super(21); } + + public void initPattern(ItemStack stack, int i) { + + if(stack == null) { + modes[i] = null; + return; + } + + List names = ItemStackUtil.getOreDictNames(stack); + + if(iterateAndCheck(names, i ,"ingot")) return; + if(iterateAndCheck(names, i ,"block")) return; + if(iterateAndCheck(names, i ,"dust")) return; + if(iterateAndCheck(names, i ,"nugget")) return; + if(iterateAndCheck(names, i ,"plate")) return; + + if(stack.getHasSubtypes()) { + modes[i] = MODE_EXACT; + } else { + modes[i] = MODE_WILDCARD; + } + } + + private boolean iterateAndCheck(List names, int i, String prefix) { + + for(String s : names) { + if(s.startsWith(prefix)) { + modes[i] = s; + return true; + } + } + + return false; + } + + public void nextMode(int i) { + ItemStack stack = slots[i]; + + if(stack == null) { + modes[i] = null; + return; + } + + if(modes[i] == null) { + modes[i] = MODE_EXACT; + } else if(MODE_EXACT.equals(modes[i])) { + modes[i] = MODE_WILDCARD; + } else if(MODE_WILDCARD.equals(modes[i])) { + + List names = ItemStackUtil.getOreDictNames(stack); + + if(names.isEmpty()) { + modes[i] = MODE_EXACT; + } else { + modes[i] = names.get(0); + } + } else { + + List names = ItemStackUtil.getOreDictNames(stack); + + if(names.size() < 2 || modes[i].equals(names.get(names.size() - 1))) { + modes[i] = MODE_EXACT; + } else { + + for(int j = 0; j < names.size() - 1; j++) { + + if(modes[i].equals(names.get(j))) { + modes[i] = names.get(j + 1); + return; + } + } + } + } + } @Override public String getName() { return "container.autocrafter"; } + + protected InventoryCraftingAuto craftingInventory = new InventoryCraftingAuto(3, 3); @Override public void updateEntity() { + if(!worldObj.isRemote) { + + this.craftingInventory.loadIventory(slots, 10); + ItemStack stack = CraftingManager.getInstance().findMatchingRecipe(this.craftingInventory, this.worldObj); + + if(stack != null) { + slots[19] = stack.copy(); + + for(int i = 10; i < 19; i++) { + this.decrStackSize(i, 1); + } + } + } + } + + public void updateTemplateGrid() { + + this.craftingInventory.loadIventory(slots, 0); + ItemStack temp = CraftingManager.getInstance().findMatchingRecipe(this.craftingInventory, this.worldObj); + + if(temp != null) { + slots[9] = temp.copy(); + } else { + slots[9] = null; + } + } + + public static class InventoryCraftingAuto extends InventoryCrafting { + + public InventoryCraftingAuto(int width, int height) { + super(new ContainerBlank() /* "can't be null boo hoo" */, width, height); + } + + public void loadIventory(ItemStack[] slots, int start) { + + for(int i = 0; i < this.getSizeInventory(); i++) { + this.setInventorySlotContents(i, slots[start + i]); + } + } + + public static class ContainerBlank extends Container { + @Override + public void onCraftMatrixChanged(IInventory inventory) { } + @Override + public boolean canInteractWith(EntityPlayer player) { return false; } + } } } diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMassStorage.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMassStorage.java index 06f18b433..ec9817e99 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMassStorage.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMassStorage.java @@ -7,7 +7,6 @@ import com.hbm.tileentity.INBTPacketReceiver; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; import net.minecraft.util.Vec3; public class TileEntityMassStorage extends TileEntityCrateBase implements INBTPacketReceiver, IControlReceiver { diff --git a/src/main/java/com/hbm/util/ItemStackUtil.java b/src/main/java/com/hbm/util/ItemStackUtil.java index 01cad08e8..eb8741f82 100644 --- a/src/main/java/com/hbm/util/ItemStackUtil.java +++ b/src/main/java/com/hbm/util/ItemStackUtil.java @@ -1,10 +1,17 @@ package com.hbm.util; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + +import com.hbm.inventory.RecipesCommon.ComparableStack; + import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; import net.minecraft.nbt.NBTTagString; import net.minecraft.util.EnumChatFormatting; +import net.minecraftforge.oredict.OreDictionary; public class ItemStackUtil { @@ -134,4 +141,31 @@ public class ItemStackUtil { return stacks; } + + //private static HashMap> buffered = new HashMap(); + + /** + * Returns a List of all ore dict names for this stack. Stack cannot be null, list is empty when there are no ore dict entries. + * @param stack + * @return + */ + public static List getOreDictNames(ItemStack stack) { + + /*ÜComparableStack comp = new ComparableStack(stack).makeSingular(); + + List buff = buffered.get(comp); + + if(buff != null) + return buff;*/ + + List list = new ArrayList(); + + int ids[] = OreDictionary.getOreIDs(stack); + for(int i : ids) { + list.add(OreDictionary.getOreName(i)); + } + + //buffered.put(comp, new ArrayList(list)); + return list; + } } From 943e24357346d563fe72354ecc2859572f0d789a Mon Sep 17 00:00:00 2001 From: Bob Date: Sun, 29 May 2022 15:49:14 +0200 Subject: [PATCH 27/80] the ferocious crafter --- src/main/java/com/hbm/handler/GUIHandler.java | 1 + .../container/ContainerAutocrafter.java | 11 +- .../container/ContainerCrateBase.java | 57 ++++ .../container/ContainerCrateDesh.java | 43 +-- .../container/ContainerCrateIron.java | 49 +-- .../container/ContainerCrateSteel.java | 43 +-- .../container/ContainerCrateTungsten.java | 43 +-- .../com/hbm/inventory/gui/GUIAutocrafter.java | 12 + .../items/tool/ItemCraftingDegradation.java | 2 + .../machine/TileEntityMachineAutocrafter.java | 295 +++++++++++++++++- .../machine/storage/TileEntityCrateBase.java | 3 +- src/main/resources/assets/hbm/lang/de_DE.lang | 4 + src/main/resources/assets/hbm/lang/en_US.lang | 4 + src/main/resources/assets/hbm/sounds.json | 2 + .../assets/hbm/sounds/block/crateClose.ogg | Bin 0 -> 13373 bytes .../assets/hbm/sounds/block/crateOpen.ogg | Bin 0 -> 12121 bytes .../gui/processing/gui_autocrafter.png | Bin 2444 -> 2376 bytes 17 files changed, 381 insertions(+), 188 deletions(-) create mode 100644 src/main/java/com/hbm/inventory/container/ContainerCrateBase.java create mode 100644 src/main/resources/assets/hbm/sounds/block/crateClose.ogg create mode 100644 src/main/resources/assets/hbm/sounds/block/crateOpen.ogg diff --git a/src/main/java/com/hbm/handler/GUIHandler.java b/src/main/java/com/hbm/handler/GUIHandler.java index f021a75ff..ac2bb4927 100644 --- a/src/main/java/com/hbm/handler/GUIHandler.java +++ b/src/main/java/com/hbm/handler/GUIHandler.java @@ -33,6 +33,7 @@ public class GUIHandler implements IGuiHandler { if(entity instanceof TileEntityCrateSteel) { return new ContainerCrateSteel(player.inventory, (TileEntityCrateSteel) entity); } if(entity instanceof TileEntityCrateDesh) { return new ContainerCrateDesh(player.inventory, (TileEntityCrateDesh) entity); } if(entity instanceof TileEntityCrateTungsten) { return new ContainerCrateTungsten(player.inventory, (TileEntityCrateTungsten) entity); } + if(entity instanceof TileEntitySafe) { return new ContainerSafe(player.inventory, (TileEntitySafe) entity); } if(entity instanceof TileEntityMassStorage) { return new ContainerMassStorage(player.inventory, (TileEntityMassStorage) entity); } if(entity instanceof TileEntityMachineAutocrafter) { return new ContainerAutocrafter(player.inventory, (TileEntityMachineAutocrafter) entity); } diff --git a/src/main/java/com/hbm/inventory/container/ContainerAutocrafter.java b/src/main/java/com/hbm/inventory/container/ContainerAutocrafter.java index a0a470839..fe0974730 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerAutocrafter.java +++ b/src/main/java/com/hbm/inventory/container/ContainerAutocrafter.java @@ -19,7 +19,7 @@ public class ContainerAutocrafter extends Container { /* TEMPLATE */ for(int i = 0; i < 3; i++) { for(int j = 0; j < 3; j++) { - this.addSlotToContainer(new SlotPattern(tedf, j + i * 3, 44 + j * 18, 22 + i * 18).disableHover()); + this.addSlotToContainer(new SlotPattern(tedf, j + i * 3, 44 + j * 18, 22 + i * 18)); } } this.addSlotToContainer(new SlotPattern(tedf, 9, 116, 40)); @@ -67,8 +67,15 @@ public class ContainerAutocrafter extends Container { ret = slot.getStack().copy(); //Don't allow any interaction for the template's output - if(index == 9) + if(index == 9) { + + if(button == 1 && mode == 0 && slot.getHasStack()) { + autocrafter.nextTemplate(); + this.detectAndSendChanges(); + } + return ret; + } if(button == 1 && mode == 0 && slot.getHasStack()) { autocrafter.nextMode(index); diff --git a/src/main/java/com/hbm/inventory/container/ContainerCrateBase.java b/src/main/java/com/hbm/inventory/container/ContainerCrateBase.java new file mode 100644 index 000000000..407e44483 --- /dev/null +++ b/src/main/java/com/hbm/inventory/container/ContainerCrateBase.java @@ -0,0 +1,57 @@ +package com.hbm.inventory.container; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.IInventory; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; + +public class ContainerCrateBase extends Container { + + protected IInventory crate; + + public ContainerCrateBase(IInventory tedf) { + crate = tedf; + crate.openInventory(); + } + + @Override + public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) { + ItemStack var3 = null; + Slot var4 = (Slot) this.inventorySlots.get(par2); + + if(var4 != null && var4.getHasStack()) { + ItemStack var5 = var4.getStack(); + var3 = var5.copy(); + + if(par2 <= crate.getSizeInventory() - 1) { + if(!this.mergeItemStack(var5, crate.getSizeInventory(), this.inventorySlots.size(), true)) { + return null; + } + } else if(!this.mergeItemStack(var5, 0, crate.getSizeInventory(), false)) { + return null; + } + + if(var5.stackSize == 0) { + var4.putStack((ItemStack) null); + } else { + var4.onSlotChanged(); + } + + var4.onPickupFromSlot(p_82846_1_, var5); + } + + return var3; + } + + @Override + public boolean canInteractWith(EntityPlayer player) { + return crate.isUseableByPlayer(player); + } + + @Override + public void onContainerClosed(EntityPlayer p_75134_1_) { + super.onContainerClosed(p_75134_1_); + this.crate.closeInventory(); + } +} diff --git a/src/main/java/com/hbm/inventory/container/ContainerCrateDesh.java b/src/main/java/com/hbm/inventory/container/ContainerCrateDesh.java index bb1c7224e..4a7aec618 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerCrateDesh.java +++ b/src/main/java/com/hbm/inventory/container/ContainerCrateDesh.java @@ -1,18 +1,13 @@ package com.hbm.inventory.container; -import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.Container; import net.minecraft.inventory.IInventory; import net.minecraft.inventory.Slot; -import net.minecraft.item.ItemStack; -public class ContainerCrateDesh extends Container { - - private IInventory diFurnace; +public class ContainerCrateDesh extends ContainerCrateBase { public ContainerCrateDesh(InventoryPlayer invPlayer, IInventory tedf) { - diFurnace = tedf; + super(tedf); for(int i = 0; i < 8; i++) { for(int j = 0; j < 13; j++) { @@ -30,38 +25,4 @@ public class ContainerCrateDesh extends Container { this.addSlotToContainer(new Slot(invPlayer, i, 44 + i * 18, 232)); } } - - @Override - public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) { - ItemStack var3 = null; - Slot var4 = (Slot) this.inventorySlots.get(par2); - - if(var4 != null && var4.getHasStack()) { - ItemStack var5 = var4.getStack(); - var3 = var5.copy(); - - if(par2 <= diFurnace.getSizeInventory() - 1) { - if(!this.mergeItemStack(var5, diFurnace.getSizeInventory(), this.inventorySlots.size(), true)) { - return null; - } - } else if(!this.mergeItemStack(var5, 0, diFurnace.getSizeInventory(), false)) { - return null; - } - - if(var5.stackSize == 0) { - var4.putStack((ItemStack) null); - } else { - var4.onSlotChanged(); - } - - var4.onPickupFromSlot(p_82846_1_, var5); - } - - return var3; - } - - @Override - public boolean canInteractWith(EntityPlayer player) { - return diFurnace.isUseableByPlayer(player); - } } diff --git a/src/main/java/com/hbm/inventory/container/ContainerCrateIron.java b/src/main/java/com/hbm/inventory/container/ContainerCrateIron.java index 7f6a92d8a..d91eb1be0 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerCrateIron.java +++ b/src/main/java/com/hbm/inventory/container/ContainerCrateIron.java @@ -2,19 +2,14 @@ package com.hbm.inventory.container; import com.hbm.tileentity.machine.storage.TileEntityCrateIron; -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; //@invtweaks.api.container.ChestContainer -public class ContainerCrateIron extends Container { - - private TileEntityCrateIron diFurnace; +public class ContainerCrateIron extends ContainerCrateBase { public ContainerCrateIron(InventoryPlayer invPlayer, TileEntityCrateIron tedf) { - diFurnace = tedf; + super(tedf); for(int i = 0; i < 4; i++) { @@ -37,44 +32,4 @@ public class ContainerCrateIron extends Container { this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 142 + 20)); } } - - @Override - public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) - { - ItemStack var3 = null; - Slot var4 = (Slot) this.inventorySlots.get(par2); - - if (var4 != null && var4.getHasStack()) - { - ItemStack var5 = var4.getStack(); - var3 = var5.copy(); - - if (par2 <= diFurnace.getSizeInventory() - 1) { - if (!this.mergeItemStack(var5, diFurnace.getSizeInventory(), this.inventorySlots.size(), true)) - { - return null; - } - } - else if (!this.mergeItemStack(var5, 0, diFurnace.getSizeInventory(), false)) - { - return null; - } - - if (var5.stackSize == 0) - { - var4.putStack((ItemStack) null); - } - else - { - var4.onSlotChanged(); - } - } - - return var3; - } - - @Override - public boolean canInteractWith(EntityPlayer player) { - return diFurnace.isUseableByPlayer(player); - } } diff --git a/src/main/java/com/hbm/inventory/container/ContainerCrateSteel.java b/src/main/java/com/hbm/inventory/container/ContainerCrateSteel.java index c4795966e..3623790f4 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerCrateSteel.java +++ b/src/main/java/com/hbm/inventory/container/ContainerCrateSteel.java @@ -1,19 +1,14 @@ package com.hbm.inventory.container; -import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.Container; import net.minecraft.inventory.IInventory; import net.minecraft.inventory.Slot; -import net.minecraft.item.ItemStack; //@invtweaks.api.container.ChestContainer -public class ContainerCrateSteel extends Container { - - private IInventory diFurnace; +public class ContainerCrateSteel extends ContainerCrateBase { public ContainerCrateSteel(InventoryPlayer invPlayer, IInventory tedf) { - diFurnace = tedf; + super(tedf); for(int i = 0; i < 6; i++) { for(int j = 0; j < 9; j++) { @@ -31,38 +26,4 @@ public class ContainerCrateSteel extends Container { this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 142 + (18 * 3) + 2)); } } - - @Override - public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) { - ItemStack var3 = null; - Slot var4 = (Slot) this.inventorySlots.get(par2); - - if(var4 != null && var4.getHasStack()) { - ItemStack var5 = var4.getStack(); - var3 = var5.copy(); - - if(par2 <= diFurnace.getSizeInventory() - 1) { - if(!this.mergeItemStack(var5, diFurnace.getSizeInventory(), this.inventorySlots.size(), true)) { - return null; - } - } else if(!this.mergeItemStack(var5, 0, diFurnace.getSizeInventory(), false)) { - return null; - } - - if(var5.stackSize == 0) { - var4.putStack((ItemStack) null); - } else { - var4.onSlotChanged(); - } - - var4.onPickupFromSlot(p_82846_1_, var5); - } - - return var3; - } - - @Override - public boolean canInteractWith(EntityPlayer player) { - return diFurnace.isUseableByPlayer(player); - } } diff --git a/src/main/java/com/hbm/inventory/container/ContainerCrateTungsten.java b/src/main/java/com/hbm/inventory/container/ContainerCrateTungsten.java index 7103e95e7..8d5843275 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerCrateTungsten.java +++ b/src/main/java/com/hbm/inventory/container/ContainerCrateTungsten.java @@ -2,19 +2,14 @@ package com.hbm.inventory.container; import com.hbm.tileentity.machine.storage.TileEntityCrateTungsten; -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; //@invtweaks.api.container.ChestContainer -public class ContainerCrateTungsten extends Container { - - private TileEntityCrateTungsten crate; +public class ContainerCrateTungsten extends ContainerCrateBase { public ContainerCrateTungsten(InventoryPlayer invPlayer, TileEntityCrateTungsten te) { - crate = te; + super(te); for(int i = 0; i < 3; i++) { for(int j = 0; j < 9; j++) { @@ -32,38 +27,4 @@ public class ContainerCrateTungsten extends Container { this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 90 + (18 * 3))); } } - - @Override - public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) { - ItemStack var3 = null; - Slot var4 = (Slot) this.inventorySlots.get(par2); - - if(var4 != null && var4.getHasStack()) { - ItemStack var5 = var4.getStack(); - var3 = var5.copy(); - - if(par2 <= crate.getSizeInventory() - 1) { - if(!this.mergeItemStack(var5, crate.getSizeInventory(), this.inventorySlots.size(), true)) { - return null; - } - } else if(!this.mergeItemStack(var5, 0, crate.getSizeInventory(), false)) { - return null; - } - - if(var5.stackSize == 0) { - var4.putStack((ItemStack) null); - } else { - var4.onSlotChanged(); - } - - var4.onPickupFromSlot(p_82846_1_, var5); - } - - return var3; - } - - @Override - public boolean canInteractWith(EntityPlayer player) { - return crate.isUseableByPlayer(player); - } } diff --git a/src/main/java/com/hbm/inventory/gui/GUIAutocrafter.java b/src/main/java/com/hbm/inventory/gui/GUIAutocrafter.java index 02ae7a1cd..abacfe9d6 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIAutocrafter.java +++ b/src/main/java/com/hbm/inventory/gui/GUIAutocrafter.java @@ -31,6 +31,8 @@ public class GUIAutocrafter extends GuiInfoContainer { @Override public void drawScreen(int x, int y, float interp) { super.drawScreen(x, y, interp); + + this.drawElectricityInfo(this, x, y, guiLeft + 17, guiTop + 45, 16, 52, diFurnace.getPower(), diFurnace.getMaxPower()); if(this.mc.thePlayer.inventory.getItemStack() == null) { for(int i = 0; i < 9; ++i) { @@ -49,6 +51,12 @@ public class GUIAutocrafter extends GuiInfoContainer { this.func_146283_a(Arrays.asList(new String[] { EnumChatFormatting.RED + "Right click to change", label }), x, y - 30); } } + + Slot slot = (Slot) this.inventorySlots.inventorySlots.get(9); + + if(this.isMouseOverSlot(slot, x, y) && diFurnace.slots[9] != null) { + this.func_146283_a(Arrays.asList(new String[] { EnumChatFormatting.RED + "Right click to change", EnumChatFormatting.YELLOW + "" + (diFurnace.recipeIndex + 1) + " / " + diFurnace.recipeCount }), x, y - 30); + } } } @@ -65,6 +73,10 @@ public class GUIAutocrafter extends GuiInfoContainer { GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); Minecraft.getMinecraft().getTextureManager().bindTexture(texture); drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + + int i = (int)(diFurnace.getPower() * 52 / diFurnace.getMaxPower()); + drawTexturedModalRect(guiLeft + 17, guiTop + 97 - i, 176, 52 - i, 16, i); + } /** diff --git a/src/main/java/com/hbm/items/tool/ItemCraftingDegradation.java b/src/main/java/com/hbm/items/tool/ItemCraftingDegradation.java index 53957b239..539edff01 100644 --- a/src/main/java/com/hbm/items/tool/ItemCraftingDegradation.java +++ b/src/main/java/com/hbm/items/tool/ItemCraftingDegradation.java @@ -1,6 +1,7 @@ package com.hbm.items.tool; import com.hbm.lib.RefStrings; +import com.hbm.main.MainRegistry; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; @@ -11,6 +12,7 @@ public class ItemCraftingDegradation extends Item { this.setMaxStackSize(1); this.setMaxDamage(durability); this.setNoRepair(); + this.setCreativeTab(MainRegistry.controlTab); } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAutocrafter.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAutocrafter.java index a0bb89507..4d173f8e3 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAutocrafter.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAutocrafter.java @@ -1,22 +1,31 @@ package com.hbm.tileentity.machine; +import java.util.ArrayList; import java.util.List; +import com.hbm.lib.Library; import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.util.ItemStackUtil; +import api.hbm.energy.IEnergyUser; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.inventory.IInventory; import net.minecraft.inventory.InventoryCrafting; import net.minecraft.item.ItemStack; import net.minecraft.item.crafting.CraftingManager; +import net.minecraft.item.crafting.IRecipe; +import net.minecraft.nbt.NBTTagCompound; -public class TileEntityMachineAutocrafter extends TileEntityMachineBase { +public class TileEntityMachineAutocrafter extends TileEntityMachineBase implements IEnergyUser { public static final String MODE_EXACT = "exact"; public static final String MODE_WILDCARD = "wildcard"; public String[] modes = new String[9]; + + public List recipes = new ArrayList(); + public int recipeIndex; + public int recipeCount; public TileEntityMachineAutocrafter() { super(21); @@ -24,6 +33,8 @@ public class TileEntityMachineAutocrafter extends TileEntityMachineBase { public void initPattern(ItemStack stack, int i) { + if(worldObj.isRemote) return; + if(stack == null) { modes[i] = null; return; @@ -57,6 +68,9 @@ public class TileEntityMachineAutocrafter extends TileEntityMachineBase { } public void nextMode(int i) { + + if(worldObj.isRemote) return; + ItemStack stack = slots[i]; if(stack == null) { @@ -95,6 +109,22 @@ public class TileEntityMachineAutocrafter extends TileEntityMachineBase { } } } + + public void nextTemplate() { + + if(worldObj.isRemote) return; + + this.recipeIndex++; + + if(this.recipeIndex >= this.recipes.size()) + this.recipeIndex = 0; + + if(!this.recipes.isEmpty()) { + slots[9] = this.recipes.get(this.recipeIndex).getCraftingResult(getTemplateGrid()); + } else { + slots[9] = null; + } + } @Override public String getName() { @@ -108,31 +138,213 @@ public class TileEntityMachineAutocrafter extends TileEntityMachineBase { if(!worldObj.isRemote) { - this.craftingInventory.loadIventory(slots, 10); - ItemStack stack = CraftingManager.getInstance().findMatchingRecipe(this.craftingInventory, this.worldObj); + this.power = Library.chargeTEFromItems(slots, 20, power, maxPower); + this.updateStandardConnections(worldObj, this); - if(stack != null) { - slots[19] = stack.copy(); + if(!this.recipes.isEmpty() && this.power >= this.consumption) { + IRecipe recipe = this.recipes.get(recipeIndex); - for(int i = 10; i < 19; i++) { - this.decrStackSize(i, 1); + if(recipe.matches(this.getRecipeGrid(), this.worldObj)) { + ItemStack stack = recipe.getCraftingResult(this.getRecipeGrid()); + + if(stack != null) { + + boolean didCraft = false; + + if(slots[19] == null) { + slots[19] = stack.copy(); + didCraft = true; + } else if(slots[19].isItemEqual(stack) && ItemStack.areItemStackTagsEqual(stack, slots[19]) && slots[19].stackSize + stack.stackSize <= slots[19].getMaxStackSize()) { + slots[19].stackSize += stack.stackSize; + didCraft = true; + } + + if(didCraft) { + for(int i = 10; i < 19; i++) { + + ItemStack ingredient = this.getStackInSlot(i); + + if(ingredient != null) { + this.decrStackSize(i, 1); + + if(ingredient.getItem().hasContainerItem(ingredient)) { + ItemStack container = ingredient.getItem().getContainerItem(ingredient); + + if(container != null && container.isItemStackDamageable() && container.getItemDamage() > container.getMaxDamage()) { + continue; + } + + this.setInventorySlotContents(i, container); + } + } + } + + this.power -= this.consumption; + } + } } } + + NBTTagCompound data = new NBTTagCompound(); + data.setLong("power", power); + for(int i = 0; i < 9; i++) { + if(modes[i] != null) { + data.setString("mode" + i, modes[i]); + } + } + data.setInteger("count", this.recipeCount); + data.setInteger("rec", this.recipeIndex); + this.networkPack(data, 15); } } + @Override + public void networkUnpack(NBTTagCompound data) { + this.power = data.getLong("power"); + + modes = new String[9]; + for(int i = 0; i < 9; i++) { + if(data.hasKey("mode" + i)) { + modes[i] = data.getString("mode" + i); + } + } + this.recipeCount = data.getInteger("count"); + this.recipeIndex = data.getInteger("rec"); + } + public void updateTemplateGrid() { - this.craftingInventory.loadIventory(slots, 0); - ItemStack temp = CraftingManager.getInstance().findMatchingRecipe(this.craftingInventory, this.worldObj); + this.recipes = getMatchingRecipes(this.getTemplateGrid()); + this.recipeCount = recipes.size(); + this.recipeIndex = 0; - if(temp != null) { - slots[9] = temp.copy(); + if(!this.recipes.isEmpty()) { + slots[9] = this.recipes.get(this.recipeIndex).getCraftingResult(getTemplateGrid()); } else { slots[9] = null; } } + public List getMatchingRecipes(InventoryCrafting grid) { + List recipes = new ArrayList(); + + for(Object o : CraftingManager.getInstance().getRecipeList()) { + IRecipe recipe = (IRecipe) o; + + if(recipe.matches(grid, worldObj)) { + recipes.add(recipe); + } + } + + return recipes; + } + + public int[] access = new int[] { 10, 11, 12, 13, 14, 15, 16, 17, 18, 19 }; + + @Override + public int[] getAccessibleSlotsFromSide(int side) { + return access; + } + + @Override + public boolean canExtractItem(int i, ItemStack stack, int j) { + if(i == 19) + return true; + + if(i > 9 && i < 18) { + ItemStack filter = slots[i - 10]; + String mode = modes[i - 10]; + + if(filter == null || mode == null || mode.isEmpty()) return true; + + if(isValidForFilter(filter, mode, stack)) { + return false; + } + + return true; + } + + return false; + } + + @Override + public boolean isItemValidForSlot(int slot, ItemStack stack) { + + //only allow insertion for the nine recipe slots + if(slot < 10 || slot > 18) + return false; + + //is the filter at this space null? no input. + if(slots[slot - 10] == null) + return false; + + //let's find all slots that this item could potentially go in + List validSlots = new ArrayList(); + for(int i = 0; i < 9; i++) { + ItemStack filter = slots[i]; + String mode = modes[i]; + + if(filter == null || mode == null || mode.isEmpty()) continue; + + if(isValidForFilter(filter, mode, stack)) { + validSlots.add(i + 10); + + //if the current slot is valid and has no item in it, shortcut to true [*] + if(i + 10 == slot && slots[slot] == null) { + return true; + } + } + } + + //if the slot we are looking at isn't valid, skip + if(!validSlots.contains(slot)) { + return false; + } + + //assumption from [*]: the slot has to be valid by now, and it cannot be null + int size = slots[slot].stackSize; + + //now we decide based on stacksize, woohoo + for(Integer i : validSlots) { + ItemStack valid = slots[i]; + + if(valid == null) return false; //null? since slots[slot] is not null by now, this other slot needs the item more + if(!(valid.isItemEqual(stack) && ItemStack.areItemStackTagsEqual(valid, stack))) continue; //different item anyway? out with it + + //if there is another slot that actually does need the same item more, cancel + if(valid.stackSize < size) + return false; + } + + //prevent items with containers from stacking + if(stack.getItem().hasContainerItem(stack)) + return false; + + //by now, we either already have filled the slot (if valid by filter and null) or weeded out all other options, which means it is good to go + return true; + } + + private boolean isValidForFilter(ItemStack filter, String mode, ItemStack input) { + + switch(mode) { + case MODE_EXACT: return input.isItemEqual(filter) && ItemStack.areItemStackTagsEqual(input, filter); + case MODE_WILDCARD: return input.getItem() == filter.getItem() && ItemStack.areItemStackTagsEqual(input, filter); + default: + List keys = ItemStackUtil.getOreDictNames(input); + return keys.contains(mode); + } + } + + public InventoryCrafting getTemplateGrid() { + this.craftingInventory.loadIventory(slots, 0); + return this.craftingInventory; + } + + public InventoryCrafting getRecipeGrid() { + this.craftingInventory.loadIventory(slots, 10); + return this.craftingInventory; + } + public static class InventoryCraftingAuto extends InventoryCrafting { public InventoryCraftingAuto(int width, int height) { @@ -147,10 +359,63 @@ public class TileEntityMachineAutocrafter extends TileEntityMachineBase { } public static class ContainerBlank extends Container { - @Override - public void onCraftMatrixChanged(IInventory inventory) { } - @Override - public boolean canInteractWith(EntityPlayer player) { return false; } + @Override public void onCraftMatrixChanged(IInventory inventory) { } + @Override public boolean canInteractWith(EntityPlayer player) { return false; } } } + + public static int consumption = 100; + public static long maxPower = consumption * 100; + public long power; + + @Override + public long getPower() { + return power; + } + + @Override + public long getMaxPower() { + return maxPower; + } + + @Override + public void setPower(long power) { + this.power = power; + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + this.power = nbt.getLong("power"); + + for(int i = 0; i < 9; i++) { + if(nbt.hasKey("mode" + i)) { + modes[i] = nbt.getString("mode" + i); + } + } + + this.recipes = getMatchingRecipes(this.getTemplateGrid()); + this.recipeCount = recipes.size(); + this.recipeIndex = nbt.getInteger("rec"); + + if(!this.recipes.isEmpty()) { + slots[9] = this.recipes.get(this.recipeIndex).getCraftingResult(getTemplateGrid()); + } else { + slots[9] = null; + } + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + nbt.setLong("power", power); + + for(int i = 0; i < 9; i++) { + if(modes[i] != null) { + nbt.setString("mode" + i, modes[i]); + } + } + + nbt.setInteger("rec", this.recipeIndex); + } } diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityCrateBase.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityCrateBase.java index 1f477ecee..b5c377fd2 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityCrateBase.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityCrateBase.java @@ -69,13 +69,14 @@ public abstract class TileEntityCrateBase extends TileEntityLockableBase impleme } } - // You scrubs aren't needed for anything (right now) @Override public void openInventory() { + this.worldObj.playSoundEffect(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, "hbm:block.crateOpen", 1.0F, 1.0F); } @Override public void closeInventory() { + this.worldObj.playSoundEffect(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, "hbm:block.crateClose", 1.0F, 1.0F); } @Override diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 6f579507d..a633cadc1 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -208,6 +208,7 @@ container.anvil=Stufe %s Amboss container.arcFurnace=Lichtbogenofen container.armorTable=Rüstungsmodifikationstisch container.assembler=Fertigungsmaschine +container.autocrafter=Automatische Werkbank container.barrel=Fass container.bat9000=Big-Ass Tank 9000 container.battery=Energiespeicher @@ -215,6 +216,7 @@ container.bombMulti=Mehrzweckbombe container.centrifuge=Zentrifuge container.chemplant=Chemiewerk container.compactLauncher=Kompakt-Startrampe +container.crateDesh=Deshkiste container.crateIron=Eisenkiste container.crateSteel=Stahlkiste container.crateTungsten=Wolframkiste @@ -3114,6 +3116,7 @@ tile.crashed_bomb.name=Blindgänger tile.crate.name=Vorratskiste tile.crate_ammo.name=Sternenmetallkiste tile.crate_can.name=Konservenkiste +tile.crate_desh.name=Deshkiste tile.crate_iron.name=Eisenkiste tile.crate_jungle.name=Enargitkiste tile.crate_lead.name=Gefahrenstoffkiste @@ -3302,6 +3305,7 @@ tile.machine_arc_furnace_on.name=Lichtbogenofen tile.machine_armor_table.name=Rüstungsmodifikationstisch tile.machine_assembler.name=Fertigungsmaschine tile.machine_assemfac.name=Fertigungsfabrik +tile.machine_autocrafter.name=Automatische Werkbank tile.machine_bat9000.name=Big-Ass Tank 9000 tile.machine_battery.name=Energiespeicherblock tile.machine_battery_potato.name=Kartoffelbatterieblock diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 31e3ec3b9..fe780307e 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -384,6 +384,7 @@ container.anvil=Tier %s Anvil container.arcFurnace=Arc Furnace container.armorTable=Armor Modification Table container.assembler=Assembly Machine +container.autocrafter=Automatic Crafting Table container.barrel=Barrel container.bat9000=Big-Ass Tank 9000 container.battery=Energy Storage @@ -391,6 +392,7 @@ container.bombMulti=Multi Purpose Bomb container.centrifuge=Centrifuge container.chemplant=Chemical Plant container.compactLauncher=Compact Launch Pad +container.crateDesh=Desh Crate container.crateIron=Iron Crate container.crateSteel=Steel Crate container.crateTungsten=Tungsten Crate @@ -3506,6 +3508,7 @@ tile.crashed_bomb.name=Dud tile.crate.name=Supply Crate tile.crate_ammo.name=Starmetal Crate tile.crate_can.name=Conserve Crate +tile.crate_desh.name=Desh Crate tile.crate_iron.name=Iron Crate tile.crate_jungle.name=Enargite Crate tile.crate_lead.name=Hazmat Crate @@ -3694,6 +3697,7 @@ tile.machine_arc_furnace_on.name=Arc Furnace tile.machine_armor_table.name=Armor Modification Table tile.machine_assembler.name=Assembly Machine tile.machine_assemfac.name=Assembly Factory +tile.machine_autocrafter.name=Automatic Crafting Table tile.machine_bat9000.name=Big-Ass Tank 9000 tile.machine_battery.name=Energy Storage Block tile.machine_battery_potato.name=Potato Battery Block diff --git a/src/main/resources/assets/hbm/sounds.json b/src/main/resources/assets/hbm/sounds.json index a7f613399..8d4d8faa9 100644 --- a/src/main/resources/assets/hbm/sounds.json +++ b/src/main/resources/assets/hbm/sounds.json @@ -38,6 +38,8 @@ "block.rbmk_az5_cover": {"category": "block", "sounds": [{"name": "block/rbmk_az5_cover", "stream": false}]}, "block.chungusLever": {"category": "block", "sounds": [{"name": "block/chungusLever", "stream": false}]}, "block.bobble": {"category": "block", "sounds": [{"name": "block/bobble", "stream": false}]}, + "block.crateOpen": {"category": "block", "sounds": [{"name": "block/crateOpen", "stream": false}]}, + "block.crateClose": {"category": "block", "sounds": [{"name": "block/crateClose", "stream": false}]}, "door.TransitionSealOpen": {"category": "block", "sounds": [{"name": "block/door/transition_seal_open", "stream": true}]}, diff --git a/src/main/resources/assets/hbm/sounds/block/crateClose.ogg b/src/main/resources/assets/hbm/sounds/block/crateClose.ogg new file mode 100644 index 0000000000000000000000000000000000000000..b1466e5ee9ddd37a9d629f63e3ecbb0d4415e69d GIT binary patch literal 13373 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/gui/processing/gui_autocrafter.png b/src/main/resources/assets/hbm/textures/gui/processing/gui_autocrafter.png index bffd26401dbfa1f5a67bff41dbc378b7ff604b31..31ee96577c56feb14c501773c9802771d40a92b1 100644 GIT binary patch literal 2376 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 Usr>%7#){qjYj4+57i#i90UYuNSO5S3 literal 2444 zcma)8dpMNa8eiXMFmy0unw`j{)N#;-l3PsU(&HL7g^p`P$|W&UF=p7sX`4Md2Rpe$ zCsS?>Q*KerPPrtPTt{eVlm;PpCNt+#`#fi#r)TeT)<0`~>s{;jzQ6bVe($rcIXPI# zNGnPM0Ay^eEu8^?kR=4r63FBkQ4okss7Q00V`yZ=qEGz|04WO_OS5Aavp){A!j#;; zlNf1bzlm^RG%JlkT^XpMu!rwf@CoH`hB3z&=15!;XAK1o0>y&@kW7x>>~YB>rfpA1 z)904bH*6h zYQD=At#vTuwpX01U!CYm3Qseo8n;OjH5sv@?$URYj#XsQQf1g~o(VZSmvYg|fOEhJ z>XE_%AIc*UkJYHxPU6|OMS&=D6uU2lTOp#8==JM!lL+E&JTV6Y%?=KB%ve{X1}N>g z|5Nu{c{Mm@<1pCvPq;uGpxacwP|>0qBTSK)5RP~MFM~1Mi=3@o&Gi{o^fonrDCuMc zFqug32+pxD;eN@#??1qJe>P2gC{v*v4M)a$8()efNMr-cezVjy;7GZmn?pJ;IN6 z=xW)#zAZNhV8ZfZ95;>dm~vuK;}9O)MlPy@gw{IL>|Spxpf{$OdZ}uxgRpAHl60~I zsDL@jPNd>gs=ZKIbgOMI8U1&oO&D5BM+OS){4-EvVPb$WZ0Z%?urdagULFwgWJS{BeVIW?`^eyhZ9zEdf@$HhOBg z-BA-(lfm60qlofaU2!m}QN=50>XakMx{8&Dy4(0^7%&wNW7SFwJ%i5pYaU6ErZ4XRLOwzKlvL?>gFtsNa zYYNYQmwaT=Fr2OfmGwq>^)Bzb(fYuB+p-HSmcEBjx}KAA8Vg2B z30mSs+EnJ`i-D+wQeNOeY*u@ZvZ*X;Po_urg1HgHsT`v>=vFYG;oxVi>V4lfy|I~TS(~yH{ zRP$oiP9S@9;Wb7fxPeu1-hn)By0DlMWq*0fy-IZM7<|dz8=7)hV*NF!w|a?Ayss=5 znzb7&ExuGLPEpaJ+ZaHhYi5Jl5`SuzQ1QnCGbyN14Zt|KC*n}JdV9`GChuON^oVo; z%CLVY6#jw4RTyuJ|70SF0<;c!YUCr?JnTJtzmHE8lIg_wo1c4%WU0^nMqhv0q_euU zVE_t`iJ7bsZqi-d+KPM>;PzmWCJ})+xxtlvE%z#9I{WBJOIM|-ea5Thee%PJyYETk z0pkOjM4J>dOgE*Dmf%*CXB*j*4w1L&Y=Kh?_*X6iaNi6tV+ zFuI_KK{RD1vu|ObO3LuFqJlgyQ?BKVbB>soA!@Jmm{YCAG>?sAAk2_|>fqS8LOt>LZeF35bEA&t6Jz>SXdE-*dG<}#9OJ!@N~+Z{!x<36Xoj3nj+OQ&%LdepXk%ix2udR4l*mA z%KtCKZ=6j99sc_3mk75v>dJ;@raS9rwcSl~7It1Vvr^-g>$I1tcb=`#Vx&bxN4vdf z;+|~JSHFHfQ`O2UkIxbN-PphJ^ef|TY_nloN&|_6+V3#W`+(L{R*t82e>OCRk2a}% zX|La;;rF06l1C>to{8IbH?mwEQ*LdQ_sJdpcV0QKjuO4%f9if}*uZ4dtlWHgdWY$4 zeExq<{1NVd6@@PylKsBvq;U<5qchn&7V1~l=l~Dl0s0n38qy*M7sxZuub!&JvqO*` yxbJv_ArecuzAKS3t?`$QeVZc=mP~Wsgnt1UZW{pr From 9b4ad0bde31c738b969e0190c9da49f993b62d72 Mon Sep 17 00:00:00 2001 From: Vaern Date: Sun, 29 May 2022 11:52:31 -0700 Subject: [PATCH 28/80] ThMEU Rebalancing --- src/main/java/com/hbm/crafting/MineralRecipes.java | 6 +++--- .../java/com/hbm/inventory/recipes/CentrifugeRecipes.java | 4 ++-- src/main/java/com/hbm/items/ModItems.java | 4 ++-- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/hbm/crafting/MineralRecipes.java b/src/main/java/com/hbm/crafting/MineralRecipes.java index d7875c8ac..752b13e54 100644 --- a/src/main/java/com/hbm/crafting/MineralRecipes.java +++ b/src/main/java/com/hbm/crafting/MineralRecipes.java @@ -136,9 +136,9 @@ public class MineralRecipes { addBillet(ModItems.billet_zirconium, ModItems.ingot_zirconium, ModItems.nugget_zirconium, ZR.nugget()); addBillet(ModItems.billet_bismuth, ModItems.ingot_bismuth, ModItems.nugget_bismuth); - GameRegistry.addShapelessRecipe(new ItemStack(ModItems.billet_thorium_fuel, 3), new Object[] { ModItems.billet_th232, ModItems.billet_th232, ModItems.billet_u233 }); - GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.billet_thorium_fuel, 1), new Object[] { "nuggetThorium232", "nuggetThorium232", "nuggetThorium232", "nuggetThorium232", "nuggetUranium233", "nuggetUranium233" })); - GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.billet_thorium_fuel, 1), new Object[] { "tinyTh232", "tinyTh232", "tinyTh232", "tinyTh232", "tinyU233", "tinyU233" })); + GameRegistry.addShapelessRecipe(new ItemStack(ModItems.billet_thorium_fuel, 6), new Object[] { ModItems.billet_th232, ModItems.billet_th232, ModItems.billet_th232, ModItems.billet_th232, ModItems.billet_th232, ModItems.billet_u233 }); + GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.billet_thorium_fuel, 1), new Object[] { "nuggetThorium232", "nuggetThorium232", "nuggetThorium232", "nuggetThorium232", "nuggetThorium232", "nuggetUranium233" })); + GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.billet_thorium_fuel, 1), new Object[] { "tinyTh232", "tinyTh232", "tinyTh232", "tinyTh232", "tinyTh232", "tinyU233" })); GameRegistry.addShapelessRecipe(new ItemStack(ModItems.billet_uranium_fuel, 6), new Object[] { ModItems.billet_u238, ModItems.billet_u238, ModItems.billet_u238, ModItems.billet_u238, ModItems.billet_u238, ModItems.billet_u235 }); GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.billet_uranium_fuel, 1), new Object[] { "nuggetUranium238", "nuggetUranium238", "nuggetUranium238", "nuggetUranium238", "nuggetUranium238", "nuggetUranium235" })); GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.billet_uranium_fuel, 1), new Object[] { "tinyU238", "tinyU238", "tinyU238", "tinyU238", "tinyU238", "tinyU235" })); diff --git a/src/main/java/com/hbm/inventory/recipes/CentrifugeRecipes.java b/src/main/java/com/hbm/inventory/recipes/CentrifugeRecipes.java index 6933b7026..cc18449b7 100644 --- a/src/main/java/com/hbm/inventory/recipes/CentrifugeRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/CentrifugeRecipes.java @@ -41,8 +41,8 @@ public class CentrifugeRecipes { recipes.put(new ComparableStack(ModItems.waste_thorium), new ItemStack[] { new ItemStack(ModItems.nugget_u238, 1), new ItemStack(ModItems.nugget_th232, 1), - new ItemStack(ModItems.nugget_u233, 3), - new ItemStack(ModItems.nuclear_waste_tiny, 1) }); + new ItemStack(ModItems.nugget_u233, 2), + new ItemStack(ModItems.nuclear_waste_tiny, 2) }); recipes.put(new ComparableStack(ModItems.waste_mox), new ItemStack[] { new ItemStack(ModItems.nugget_pu_mix, 1), diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index a345169e1..549306526 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -3697,10 +3697,10 @@ public class ModItems { .setUnlocalizedName("rbmk_fuel_heu235").setTextureName(RefStrings.MODID + ":rbmk_fuel_heu235"); rbmk_fuel_thmeu = (ItemRBMKRod) new ItemRBMKRod(rbmk_pellet_thmeu) .setYield(100000000D) - .setStats(12) + .setStats(20) .setFunction(EnumBurnFunc.PLATEU) .setDepletionFunction(EnumDepleteFunc.BOOSTED_SLOPE) - .setHeat(0.75D) + .setHeat(0.65D) //Consistency with MEU .setMeltingPoint(3350) .setUnlocalizedName("rbmk_fuel_thmeu").setTextureName(RefStrings.MODID + ":rbmk_fuel_thmeu"); rbmk_fuel_lep = (ItemRBMKRod) new ItemRBMKRod(rbmk_pellet_lep) From 4bb86ebc0b5fe797bfe9f6b112c380200a9faf3b Mon Sep 17 00:00:00 2001 From: Vaern Date: Sun, 29 May 2022 11:56:42 -0700 Subject: [PATCH 29/80] ZIRNOX ThMEU Rebalancing oops --- src/main/java/com/hbm/items/ModItems.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 549306526..a3b7cd73b 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -3579,7 +3579,7 @@ public class ModItems { rod_zirnox_natural_uranium_fuel = new ItemZirnoxRod(125000, 30).setUnlocalizedName("rod_zirnox_natural_uranium_fuel").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_zirnox_empty).setTextureName(RefStrings.MODID + ":rod_zirnox_natural_uranium_fuel"); rod_zirnox_uranium_fuel = new ItemZirnoxRod(100000, 50).setUnlocalizedName("rod_zirnox_uranium_fuel").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_zirnox_empty).setTextureName(RefStrings.MODID + ":rod_zirnox_uranium_fuel"); rod_zirnox_th232 = new ItemZirnoxBreedingRod(20000, 0).setUnlocalizedName("rod_zirnox_th232").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":rod_zirnox_th232"); - rod_zirnox_thorium_fuel = new ItemZirnoxRod(120000, 30).setUnlocalizedName("rod_zirnox_thorium_fuel").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":rod_zirnox_thorium_fuel"); + rod_zirnox_thorium_fuel = new ItemZirnoxRod(120000, 40).setUnlocalizedName("rod_zirnox_thorium_fuel").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":rod_zirnox_thorium_fuel"); rod_zirnox_mox_fuel = new ItemZirnoxRod(80000, 75).setUnlocalizedName("rod_zirnox_mox_fuel").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":rod_zirnox_mox_fuel"); rod_zirnox_plutonium_fuel = new ItemZirnoxRod(85000, 65).setUnlocalizedName("rod_zirnox_plutonium_fuel").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":rod_zirnox_plutonium_fuel"); rod_zirnox_u233_fuel = new ItemZirnoxRod(87500, 80).setUnlocalizedName("rod_zirnox_u233_fuel").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":rod_zirnox_u233_fuel"); From 8d8116b3d0c5d58960708bb6e0fe89c5ddec5a34 Mon Sep 17 00:00:00 2001 From: Bob Date: Mon, 30 May 2022 19:45:51 +0200 Subject: [PATCH 30/80] i did nothing productive all day --- .../com/hbm/blocks/network/BlockConveyor.java | 73 ++++++++++++------ .../com/hbm/entity/item/EntityMovingItem.java | 54 ++++++------- .../com/hbm/render/block/RenderConveyor.java | 68 +++++++++------- .../hbm/textures/blocks/conveyor_side.png | Bin 0 -> 205 bytes .../textures/blocks/conveyor_side.png.mcmeta | 3 + 5 files changed, 118 insertions(+), 80 deletions(-) create mode 100644 src/main/resources/assets/hbm/textures/blocks/conveyor_side.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/conveyor_side.png.mcmeta diff --git a/src/main/java/com/hbm/blocks/network/BlockConveyor.java b/src/main/java/com/hbm/blocks/network/BlockConveyor.java index a1dbd97b8..fbc7b563c 100644 --- a/src/main/java/com/hbm/blocks/network/BlockConveyor.java +++ b/src/main/java/com/hbm/blocks/network/BlockConveyor.java @@ -1,43 +1,70 @@ package com.hbm.blocks.network; import com.hbm.entity.item.EntityMovingItem; +import com.hbm.lib.RefStrings; import cpw.mods.fml.client.registry.RenderingRegistry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.item.EntityItem; import net.minecraft.item.ItemStack; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.IIcon; import net.minecraft.util.MathHelper; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; public class BlockConveyor extends Block { + @SideOnly(Side.CLIENT) + protected IIcon sideIcon; + public BlockConveyor(Material p_i45394_1_) { super(p_i45394_1_); } @Override - public void onEntityCollidedWithBlock(World world, int x, int y, int z, Entity entity) { + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister iconRegister) { + super.registerBlockIcons(iconRegister); + this.sideIcon = iconRegister.registerIcon(RefStrings.MODID + ":conveyor_side"); + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int metadata) { + + if((metadata == 2 || metadata == 3) && (side == 4 || side == 5)) + return this.sideIcon; + if((metadata == 4 || metadata == 5) && (side == 2 || side == 3)) + return this.sideIcon; + return super.getIcon(side, metadata); + } + + @Override + public void onEntityCollidedWithBlock(World world, int x, int y, int z, Entity entity) { + if(!world.isRemote) { - + if(entity instanceof EntityItem && entity.ticksExisted > 10 && !entity.isDead) { - + EntityMovingItem item = new EntityMovingItem(world); - item.setItemStack(((EntityItem)entity).getEntityItem()); - item.setPositionAndRotation(x + 0.5, y + 0.125, z + 0.5, 0, 0); + item.setItemStack(((EntityItem) entity).getEntityItem()); + item.setPositionAndRotation(x + 0.5, y + 0.25, z + 0.5, 0, 0); world.spawnEntityInWorld(item); - + entity.setDead(); } } } - - public static int renderID = RenderingRegistry.getNextAvailableRenderId(); + + public static int renderID = RenderingRegistry.getNextAvailableRenderId(); @Override public int getRenderType() { @@ -53,35 +80,31 @@ public class BlockConveyor extends Block { public boolean renderAsNormalBlock() { return false; } - + @Override public void setBlockBoundsBasedOnState(IBlockAccess world, int x, int y, int z) { - this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 0.125F, 1.0F); - } - + this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 0.25F, 1.0F); + } + @Override - public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) { - return AxisAlignedBB.getBoundingBox(x, y, z, x + 1, y, z + 1); - } - + public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) { + return AxisAlignedBB.getBoundingBox(x, y, z, x + 1, y + 0.25, z + 1); + } + @Override 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) - { + + if(i == 0) { world.setBlockMetadataWithNotify(x, y, z, 2, 2); } - if(i == 1) - { + if(i == 1) { world.setBlockMetadataWithNotify(x, y, z, 5, 2); } - if(i == 2) - { + if(i == 2) { world.setBlockMetadataWithNotify(x, y, z, 3, 2); } - if(i == 3) - { + if(i == 3) { world.setBlockMetadataWithNotify(x, y, z, 4, 2); } } diff --git a/src/main/java/com/hbm/entity/item/EntityMovingItem.java b/src/main/java/com/hbm/entity/item/EntityMovingItem.java index ebe787a53..e843346e3 100644 --- a/src/main/java/com/hbm/entity/item/EntityMovingItem.java +++ b/src/main/java/com/hbm/entity/item/EntityMovingItem.java @@ -88,38 +88,34 @@ public class EntityMovingItem extends Entity { worldObj.spawnEntityInWorld(item); return; } - } - - if(worldObj.getBlock((int)Math.floor(posX), (int)Math.floor(posY), (int)Math.floor(posZ)) == ModBlocks.conveyor) { - - if(schedule <= 0) { - ForgeDirection dir = ForgeDirection.getOrientation(worldObj.getBlockMetadata((int)Math.floor(posX), (int)Math.floor(posY), (int)Math.floor(posZ))); - - if(worldObj.getBlock((int)Math.floor(posX), (int)Math.floor(posY) + 1, (int)Math.floor(posZ)) == ModBlocks.conveyor && motionY >= 0) { - dir = ForgeDirection.DOWN; - } - - if(worldObj.getBlock((int)Math.floor(posX), (int)Math.floor(posY) - 1, (int)Math.floor(posZ)) == ModBlocks.conveyor && motionY <= 0) { - dir = ForgeDirection.UP; - } - - double speed = 0.1; + + if(worldObj.getBlock((int)Math.floor(posX), (int)Math.floor(posY), (int)Math.floor(posZ)) == ModBlocks.conveyor) { - schedule = (int) (1 / speed); - motionX = -speed * dir.offsetX; - motionY = -speed * dir.offsetY; - motionZ = -speed * dir.offsetZ; + if(schedule <= 0) { + ForgeDirection dir = ForgeDirection.getOrientation(worldObj.getBlockMetadata((int)Math.floor(posX), (int)Math.floor(posY), (int)Math.floor(posZ))); + + if(worldObj.getBlock((int)Math.floor(posX), (int)Math.floor(posY) + 1, (int)Math.floor(posZ)) == ModBlocks.conveyor && motionY >= 0) { + dir = ForgeDirection.DOWN; + } + + if(worldObj.getBlock((int)Math.floor(posX), (int)Math.floor(posY) - 1, (int)Math.floor(posZ)) == ModBlocks.conveyor && motionY <= 0) { + dir = ForgeDirection.UP; + } + + double speed = 0.0625; + + schedule = (int) (1 / speed); + motionX = -speed * dir.offsetX; + motionY = -speed * dir.offsetY; + motionZ = -speed * dir.offsetZ; + + this.velocityChanged = true; + } - this.velocityChanged = true; - } - - this.lastTickPosX = this.prevPosX = this.posX; - this.lastTickPosY = this.prevPosY = this.posY; - this.lastTickPosZ = this.prevPosZ = this.posZ; - - this.setPosition(posX + motionX, posY + motionY, posZ + motionZ); - schedule--; + schedule--; + } } + this.moveEntity(motionX, motionY, motionZ); } @Override diff --git a/src/main/java/com/hbm/render/block/RenderConveyor.java b/src/main/java/com/hbm/render/block/RenderConveyor.java index bdb915666..14c69a909 100644 --- a/src/main/java/com/hbm/render/block/RenderConveyor.java +++ b/src/main/java/com/hbm/render/block/RenderConveyor.java @@ -20,45 +20,61 @@ public class RenderConveyor implements ISimpleBlockRenderingHandler { public void renderInventoryBlock(Block block, int metadata, int modelId, RenderBlocks renderer) { GL11.glPushMatrix(); - Tessellator tessellator = Tessellator.instance; - IIcon iicon = block.getIcon(0, 0); + Tessellator tessellator = Tessellator.instance; + IIcon iicon = block.getIcon(0, 0); tessellator.setColorOpaque_F(1, 1, 1); - if (renderer.hasOverrideBlockTexture()) - { - iicon = renderer.overrideBlockTexture; - } - - GL11.glTranslated(0, -0.125, 0); - tessellator.startDrawingQuads(); - ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.arrow, iicon, tessellator, 0, false); + if(renderer.hasOverrideBlockTexture()) { + iicon = renderer.overrideBlockTexture; + } + + GL11.glTranslated(0, -0.125, 0); + tessellator.startDrawingQuads(); + ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.arrow, iicon, tessellator, 0, false); tessellator.draw(); - - GL11.glPopMatrix(); + + GL11.glPopMatrix(); } @Override public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) { - - Tessellator tessellator = Tessellator.instance; - int meta = world.getBlockMetadata(x, y, z); - - tessellator.setBrightness(block.getMixedBrightnessForBlock(world, x, y, z)); + + Tessellator tessellator = Tessellator.instance; + int meta = world.getBlockMetadata(x, y, z); + + tessellator.setBrightness(block.getMixedBrightnessForBlock(world, x, y, z)); tessellator.setColorOpaque_F(1, 1, 1); - if(meta == 2) + if(meta == 2) { renderer.uvRotateTop = 3; - if(meta == 3) + renderer.uvRotateBottom = 0; + renderer.uvRotateWest = 3; + } + if(meta == 3) { renderer.uvRotateTop = 0; - if(meta == 4) + renderer.uvRotateBottom = 3; + renderer.uvRotateEast = 3; + } + if(meta == 4) { renderer.uvRotateTop = 1; - if(meta == 5) + renderer.uvRotateBottom = 1; + renderer.uvRotateSouth = 3; + } + if(meta == 5) { renderer.uvRotateTop = 2; - - renderer.setRenderBounds((double)0, 0.0D, (double)0, (double)1, 0.125D, (double)1); - renderer.renderStandardBlock(block, x, y, z); - renderer.uvRotateTop = 0; - + renderer.uvRotateBottom = 2; + renderer.uvRotateNorth = 3; + } + + renderer.setRenderBounds((double) 0, 0.0D, (double) 0, (double) 1, 0.25D, (double) 1); + renderer.renderStandardBlock(block, x, y, z); + renderer.uvRotateTop = 0; + renderer.uvRotateBottom = 0; + renderer.uvRotateNorth = 0; + renderer.uvRotateSouth = 0; + renderer.uvRotateEast = 0; + renderer.uvRotateWest = 0; + return true; } diff --git a/src/main/resources/assets/hbm/textures/blocks/conveyor_side.png b/src/main/resources/assets/hbm/textures/blocks/conveyor_side.png new file mode 100644 index 0000000000000000000000000000000000000000..470e6834521402642d42d2cbfae08f674961e5cf GIT binary patch literal 205 zcmeAS@N?(olHy`uVBq!ia0vp^0zmA*!3HFSYrjteQY^(zo*^7SP{WbZ0pz!Mx;TbJ zw7$Kzk@u(q56gwq;cPn?B@QW9gltP>vvT{u_Am4o$MTLv)x1UN6D(vEK5@41PIqZg zDLWTm$!dJs(CynjVF#uiw!5q6sTe*#62-mNlwpUhI}4xj>ASxt>+Ekh;XUQQlP&+9 zT5J9@I_EoXoMWE!)kowf$5-aB%oDqR9c2Fdfd9etH4zGm4n;usFnGH9xvX Date: Tue, 31 May 2022 16:49:18 +0200 Subject: [PATCH 31/80] mass storages keeping inventory when broken, recipes --- .../hbm/blocks/machine/BlockMassStorage.java | 140 ++++++++++++++++++ .../com/hbm/inventory/OreDictManager.java | 54 +++---- .../inventory/recipes/ShredderRecipes.java | 6 +- .../java/com/hbm/main/CraftingManager.java | 4 + .../storage/TileEntityMassStorage.java | 4 + 5 files changed, 180 insertions(+), 28 deletions(-) diff --git a/src/main/java/com/hbm/blocks/machine/BlockMassStorage.java b/src/main/java/com/hbm/blocks/machine/BlockMassStorage.java index 6e26763b8..10a69e2d5 100644 --- a/src/main/java/com/hbm/blocks/machine/BlockMassStorage.java +++ b/src/main/java/com/hbm/blocks/machine/BlockMassStorage.java @@ -1,21 +1,31 @@ package com.hbm.blocks.machine; +import java.util.Random; + import com.hbm.blocks.ModBlocks; import com.hbm.items.ModItems; import com.hbm.items.tool.ItemLock; import com.hbm.lib.RefStrings; import com.hbm.main.MainRegistry; +import com.hbm.tileentity.machine.TileEntityLockableBase; import com.hbm.tileentity.machine.storage.TileEntityMassStorage; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.ISidedInventory; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.IIcon; +import net.minecraft.util.MathHelper; import net.minecraft.world.World; public class BlockMassStorage extends BlockContainer { @@ -66,4 +76,134 @@ public class BlockMassStorage extends BlockContainer { return false; } } + + private static boolean dropInv = true; + + @Override + public boolean removedByPlayer(World world, EntityPlayer player, int x, int y, int z, boolean willHarvest) { + + if(!player.capabilities.isCreativeMode && !world.isRemote && willHarvest) { + + ItemStack drop = new ItemStack(this); + ISidedInventory inv = (ISidedInventory)world.getTileEntity(x, y, z); + + NBTTagCompound nbt = new NBTTagCompound(); + + if(inv != null) { + + for(int i = 0; i < inv.getSizeInventory(); i++) { + + ItemStack stack = inv.getStackInSlot(i); + if(stack == null) + continue; + + NBTTagCompound slot = new NBTTagCompound(); + stack.writeToNBT(slot); + nbt.setTag("slot" + i, slot); + } + } + + if(inv instanceof TileEntityLockableBase) { + TileEntityLockableBase lockable = (TileEntityLockableBase) inv; + + if(lockable.isLocked()) { + nbt.setInteger("lock", lockable.getPins()); + nbt.setDouble("lockMod", lockable.getMod()); + } + } + + if(inv instanceof TileEntityMassStorage) { + TileEntityMassStorage storage = (TileEntityMassStorage) inv; + nbt.setInteger("stack", storage.getStockpile()); + } + + if(!nbt.hasNoTags()) { + drop.stackTagCompound = nbt; + } + + world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, drop)); + } + + dropInv = false; + boolean flag = world.setBlockToAir(x, y, z); + dropInv = true; + + return flag; + } + + @Override + public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack stack) { + + ISidedInventory inv = (ISidedInventory)world.getTileEntity(x, y, z); + + if(inv != null && stack.hasTagCompound()) { + + for(int i = 0; i < inv.getSizeInventory(); i++) { + inv.setInventorySlotContents(i, ItemStack.loadItemStackFromNBT(stack.stackTagCompound.getCompoundTag("slot" + i))); + } + + if(inv instanceof TileEntityMassStorage) { + TileEntityMassStorage storage = (TileEntityMassStorage) inv; + + if(stack.stackTagCompound.hasKey("lock")) { + storage.setPins(stack.stackTagCompound.getInteger("lock")); + storage.setMod(stack.stackTagCompound.getDouble("lockMod")); + storage.lock(); + } + + storage.setStockpile(stack.stackTagCompound.getInteger("stack")); + } + } + + super.onBlockPlacedBy(world, x, y, z, player, stack); + } + + @Override + public void breakBlock(World world, int x, int y, int z, Block block, int meta) { + + if(dropInv) { + ISidedInventory sided = (ISidedInventory) world.getTileEntity(x, y, z); + Random rand = world.rand; + + if(sided != null) { + for(int i1 = 0; i1 < sided.getSizeInventory(); ++i1) { + + if(i1 == 1) continue; //do NOT drop the filter item + + ItemStack itemstack = sided.getStackInSlot(i1); + + if(itemstack != null) { + float f = rand.nextFloat() * 0.8F + 0.1F; + float f1 = rand.nextFloat() * 0.8F + 0.1F; + float f2 = rand.nextFloat() * 0.8F + 0.1F; + + while(itemstack.stackSize > 0) { + int j1 = rand.nextInt(21) + 10; + + if(j1 > itemstack.stackSize) { + j1 = itemstack.stackSize; + } + + itemstack.stackSize -= j1; + EntityItem entityitem = new EntityItem(world, x + f, y + f1, z + f2, new ItemStack(itemstack.getItem(), j1, itemstack.getItemDamage())); + + if(itemstack.hasTagCompound()) { + entityitem.getEntityItem().setTagCompound((NBTTagCompound) itemstack.getTagCompound().copy()); + } + + float f3 = 0.05F; + entityitem.motionX = (float) rand.nextGaussian() * f3; + entityitem.motionY = (float) rand.nextGaussian() * f3 + 0.2F; + entityitem.motionZ = (float) rand.nextGaussian() * f3; + world.spawnEntityInWorld(entityitem); + } + } + } + + world.func_147453_f(x, y, z, block); + } + } + + super.breakBlock(world, x, y, z, block, meta); + } } diff --git a/src/main/java/com/hbm/inventory/OreDictManager.java b/src/main/java/com/hbm/inventory/OreDictManager.java index c4bb4ecc6..06bf60ac5 100644 --- a/src/main/java/com/hbm/inventory/OreDictManager.java +++ b/src/main/java/com/hbm/inventory/OreDictManager.java @@ -295,33 +295,33 @@ public class OreDictManager { /* * RADIOACTIVE */ - U .rad(HazardRegistry.u) .nugget(nugget_uranium) .billet(billet_uranium) .ingot(ingot_uranium) .dust(powder_uranium) .block(block_uranium) .ore(ore_uranium, ore_uranium_scorched, ore_gneiss_uranium, ore_gneiss_uranium_scorched, ore_nether_uranium, ore_nether_uranium_scorched, ore_meteor_uranium) .oreNether(ore_nether_uranium, ore_nether_uranium_scorched); - U233 .rad(HazardRegistry.u233) .nugget(nugget_u233) .billet(billet_u233) .ingot(ingot_u233) .block(block_u233); - U235 .rad(HazardRegistry.u235) .nugget(nugget_u235) .billet(billet_u235) .ingot(ingot_u235) .block(block_u235); - U238 .rad(HazardRegistry.u238) .nugget(nugget_u238) .billet(billet_u238) .ingot(ingot_u238) .block(block_u238); - TH232 .rad(HazardRegistry.th232) .nugget(nugget_th232) .billet(billet_th232) .ingot(ingot_th232) .dust(powder_thorium) .block(block_thorium) .ore(ore_thorium, ore_meteor_thorium); - PU .rad(HazardRegistry.pu) .nugget(nugget_plutonium) .billet(billet_plutonium) .ingot(ingot_plutonium) .dust(powder_plutonium) .block(block_plutonium) .ore(ore_nether_plutonium) .oreNether(ore_nether_plutonium); - PURG .rad(HazardRegistry.purg) .nugget(nugget_pu_mix) .billet(billet_pu_mix) .ingot(ingot_pu_mix) .block(block_pu_mix); - PU238 .rad(HazardRegistry.pu238) .hot(3F) .nugget(nugget_pu238) .billet(billet_pu238) .ingot(ingot_pu238) .block(block_pu238); - PU239 .rad(HazardRegistry.pu239) .nugget(nugget_pu239) .billet(billet_pu239) .ingot(ingot_pu239) .block(block_pu239); - PU240 .rad(HazardRegistry.pu240) .nugget(nugget_pu240) .billet(billet_pu240) .ingot(ingot_pu240) .block(block_pu240); - PU241 .rad(HazardRegistry.pu241) .nugget(nugget_pu241) .billet(billet_pu241) .ingot(ingot_pu241); //.block(block_pu241); - AM241 .rad(HazardRegistry.am241) .nugget(nugget_am241) .billet(billet_am241) .ingot(ingot_am241); - AM242 .rad(HazardRegistry.am242) .nugget(nugget_am242) .billet(billet_am242) .ingot(ingot_am242); - AMRG .rad(HazardRegistry.amrg) .nugget(nugget_am_mix) .billet(billet_am_mix) .ingot(ingot_am_mix); - NP237 .rad(HazardRegistry.np237) .nugget(nugget_neptunium) .billet(billet_neptunium) .ingot(ingot_neptunium) .dust(powder_neptunium) .block(block_neptunium); - PO210 .rad(HazardRegistry.po210) .hot(3) .nugget(nugget_polonium) .billet(billet_polonium) .ingot(ingot_polonium) .dust(powder_polonium) .block(block_polonium); - TC99 .rad(HazardRegistry.tc99) .nugget(nugget_technetium) .billet(billet_technetium) .ingot(ingot_technetium); - RA226 .rad(HazardRegistry.ra226) .nugget(nugget_ra226) .billet(billet_ra226) .ingot(ingot_ra226) .dust(powder_ra226) .block(block_ra226); - AC227 .rad(HazardRegistry.ac227) .nugget(nugget_actinium) .billet(billet_actinium) .ingot(ingot_actinium) .dust(powder_actinium) .block(block_actinium) .dustSmall(powder_actinium_tiny); - CO60 .rad(HazardRegistry.co60) .hot(1) .nugget(nugget_co60) .billet(billet_co60) .ingot(ingot_co60) .dust(powder_co60); - AU198 .rad(HazardRegistry.au198) .hot(5) .nugget(nugget_au198) .billet(billet_au198) .ingot(ingot_au198) .dust(powder_au198); - PB209 .rad(HazardRegistry.pb209) .blinding(50F) .hot(7) .nugget(nugget_pb209) .billet(billet_pb209) .ingot(ingot_pb209); - SA326 .rad(HazardRegistry.sa326) .blinding(50F) .nugget(nugget_schrabidium) .billet(billet_schrabidium) .ingot(ingot_schrabidium) .dust(powder_schrabidium) .plate(plate_schrabidium) .block(block_schrabidium) .ore(ore_schrabidium, ore_gneiss_schrabidium, ore_nether_schrabidium) .oreNether(ore_nether_schrabidium); - SA327 .rad(HazardRegistry.sa327) .blinding(50F) .nugget(nugget_solinium) .billet(billet_solinium) .ingot(ingot_solinium) .block(block_solinium); - SBD .rad(HazardRegistry.sb) .blinding(50F) .ingot(ingot_schrabidate) .dust(powder_schrabidate) .block(block_schrabidate); - SRN .rad(HazardRegistry.sr) .blinding(50F) .ingot(ingot_schraranium) .block(block_schraranium); - GH336 .rad(HazardRegistry.gh336) .nugget(nugget_gh336) .billet(billet_gh336) .ingot(ingot_gh336); + U .rad(HazardRegistry.u) .nugget(nugget_uranium) .billet(billet_uranium) .ingot(ingot_uranium) .dust(powder_uranium) .block(block_uranium) .ore(ore_uranium, ore_uranium_scorched, ore_gneiss_uranium, ore_gneiss_uranium_scorched, ore_nether_uranium, ore_nether_uranium_scorched, ore_meteor_uranium) .oreNether(ore_nether_uranium, ore_nether_uranium_scorched); + U233 .rad(HazardRegistry.u233) .nugget(nugget_u233) .billet(billet_u233) .ingot(ingot_u233) .block(block_u233); + U235 .rad(HazardRegistry.u235) .nugget(nugget_u235) .billet(billet_u235) .ingot(ingot_u235) .block(block_u235); + U238 .rad(HazardRegistry.u238) .nugget(nugget_u238) .billet(billet_u238) .ingot(ingot_u238) .block(block_u238); + TH232 .rad(HazardRegistry.th232) .nugget(nugget_th232) .billet(billet_th232) .ingot(ingot_th232) .dust(powder_thorium) .block(block_thorium) .ore(ore_thorium, ore_meteor_thorium); + PU .rad(HazardRegistry.pu) .nugget(nugget_plutonium) .billet(billet_plutonium) .ingot(ingot_plutonium) .dust(powder_plutonium) .block(block_plutonium) .ore(ore_nether_plutonium) .oreNether(ore_nether_plutonium); + PURG .rad(HazardRegistry.purg) .nugget(nugget_pu_mix) .billet(billet_pu_mix) .ingot(ingot_pu_mix) .block(block_pu_mix); + PU238 .rad(HazardRegistry.pu238) .hot(3F) .nugget(nugget_pu238) .billet(billet_pu238) .ingot(ingot_pu238) .block(block_pu238); + PU239 .rad(HazardRegistry.pu239) .nugget(nugget_pu239) .billet(billet_pu239) .ingot(ingot_pu239) .block(block_pu239); + PU240 .rad(HazardRegistry.pu240) .nugget(nugget_pu240) .billet(billet_pu240) .ingot(ingot_pu240) .block(block_pu240); + PU241 .rad(HazardRegistry.pu241) .nugget(nugget_pu241) .billet(billet_pu241) .ingot(ingot_pu241); //.block(block_pu241); + AM241 .rad(HazardRegistry.am241) .nugget(nugget_am241) .billet(billet_am241) .ingot(ingot_am241); + AM242 .rad(HazardRegistry.am242) .nugget(nugget_am242) .billet(billet_am242) .ingot(ingot_am242); + AMRG .rad(HazardRegistry.amrg) .nugget(nugget_am_mix) .billet(billet_am_mix) .ingot(ingot_am_mix); + NP237 .rad(HazardRegistry.np237) .nugget(nugget_neptunium) .billet(billet_neptunium) .ingot(ingot_neptunium) .dust(powder_neptunium) .block(block_neptunium); + PO210 .rad(HazardRegistry.po210) .hot(3) .nugget(nugget_polonium) .billet(billet_polonium) .ingot(ingot_polonium) .dust(powder_polonium) .block(block_polonium); + TC99 .rad(HazardRegistry.tc99) .nugget(nugget_technetium) .billet(billet_technetium) .ingot(ingot_technetium); + RA226 .rad(HazardRegistry.ra226) .nugget(nugget_ra226) .billet(billet_ra226) .ingot(ingot_ra226) .dust(powder_ra226) .block(block_ra226); + AC227 .rad(HazardRegistry.ac227) .nugget(nugget_actinium) .billet(billet_actinium) .ingot(ingot_actinium) .dust(powder_actinium) .block(block_actinium) .dustSmall(powder_actinium_tiny); + CO60 .rad(HazardRegistry.co60) .hot(1) .nugget(nugget_co60) .billet(billet_co60) .ingot(ingot_co60) .dust(powder_co60); + AU198 .rad(HazardRegistry.au198) .hot(5) .nugget(nugget_au198) .billet(billet_au198) .ingot(ingot_au198) .dust(powder_au198); + PB209 .rad(HazardRegistry.pb209) .blinding(50F) .hot(7) .nugget(nugget_pb209) .billet(billet_pb209) .ingot(ingot_pb209); + SA326 .rad(HazardRegistry.sa326) .blinding(50F) .nugget(nugget_schrabidium) .billet(billet_schrabidium) .ingot(ingot_schrabidium) .dust(powder_schrabidium) .plate(plate_schrabidium) .block(block_schrabidium) .ore(ore_schrabidium, ore_gneiss_schrabidium, ore_nether_schrabidium) .oreNether(ore_nether_schrabidium); + SA327 .rad(HazardRegistry.sa327) .blinding(50F) .nugget(nugget_solinium) .billet(billet_solinium) .ingot(ingot_solinium) .block(block_solinium); + SBD .rad(HazardRegistry.sb) .blinding(50F) .ingot(ingot_schrabidate) .dust(powder_schrabidate) .block(block_schrabidate); + SRN .rad(HazardRegistry.sr) .blinding(50F) .ingot(ingot_schraranium) .block(block_schraranium); + GH336 .rad(HazardRegistry.gh336) .nugget(nugget_gh336) .billet(billet_gh336) .ingot(ingot_gh336); /* * STABLE diff --git a/src/main/java/com/hbm/inventory/recipes/ShredderRecipes.java b/src/main/java/com/hbm/inventory/recipes/ShredderRecipes.java index a2657cfd7..08b5278d5 100644 --- a/src/main/java/com/hbm/inventory/recipes/ShredderRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/ShredderRecipes.java @@ -42,10 +42,14 @@ public class ShredderRecipes { if(matches == null || matches.isEmpty()) continue; + //1 ingot unit, metal generateRecipes("ingot", name, matches, 1); - generateRecipes("ore", name, matches, 2); + generateRecipes("plate", name, matches, 1); + //1 ingot unit, crystalline generateRecipes("gem", name, matches, 1); generateRecipes("crystal", name, matches, 1); + //2 ingot units, any + generateRecipes("ore", name, matches, 2); if(name.length() > 5 && name.substring(0, 5).equals("block")) { ItemStack dust = getDustByName(name.substring(5)); diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index fd64ffef2..66f82c33b 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -237,6 +237,9 @@ public class CraftingManager { addShapelessAuto(new ItemStack(ModItems.toothpicks, 3), new Object[] { KEY_STICK, KEY_STICK, KEY_STICK }); addRecipeAuto(new ItemStack(ModItems.ducttape, 6), new Object[] { "FSF", "SPS", "FSF", 'F', Items.string, 'S', KEY_SLIME, 'P', Items.paper }); + addRecipeAuto(new ItemStack(ModBlocks.conveyor, 16), new Object[] { "LLL", "I I", "LLL", 'L', Items.leather, 'I', IRON.ingot() }); + addRecipeAuto(new ItemStack(ModBlocks.conveyor, 64), new Object[] { "LLL", "I I", "LLL", 'L', RUBBER.ingot(), 'I', IRON.ingot() }); + //addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.machine_difurnace_off), 1), new Object[] { "T T", "PHP", "TFT", 'T', W.ingot(), 'P', ModItems.board_copper, 'H', Blocks.hopper, 'F', Blocks.furnace }); addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.machine_uf6_tank), 1), new Object[] { "WTW", "WTW", "SRS", 'S', IRON.plate(), 'W', ModItems.coil_tungsten, 'T', ModItems.tank_steel, 'W', ModItems.coil_tungsten,'R', MINGRADE.ingot() }); addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.machine_puf6_tank), 1), new Object[] { "WTW", "WTW", "SRS", 'S', STEEL.plate(), 'W', ModItems.coil_tungsten, 'T', ModItems.tank_steel, 'W', ModItems.coil_tungsten,'R', MINGRADE.ingot() }); @@ -269,6 +272,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.crate_desh, 1), new Object[] { " D ", "DSD", " D ", 'D', ModItems.plate_desh, 'S', ModBlocks.crate_steel }); addRecipeAuto(new ItemStack(ModBlocks.crate_tungsten, 1), new Object[] { "BPB", "PCP", "BPB", 'B', W.block(), 'P', ModItems.board_copper, 'C', ModBlocks.crate_steel }); addRecipeAuto(new ItemStack(ModBlocks.safe, 1), new Object[] { "LAL", "ACA", "LAL", 'L', PB.plate(), 'A', ALLOY.plate(), 'C', ModBlocks.crate_steel }); + addRecipeAuto(new ItemStack(ModBlocks.mass_storage, 1, 0), new Object[] { "ICI", "CLC", "ICI", 'I', TI.ingot(), 'C', ModBlocks.crate_steel, 'L', ModItems.circuit_red_copper }); addRecipeAuto(new ItemStack(ModBlocks.machine_autocrafter, 1), new Object[] { "SCS", "MWM", "SCS", 'S', STEEL.plate(), 'C', ModItems.circuit_copper, 'M', ModItems.motor, 'W', Blocks.crafting_table }); addRecipeAuto(new ItemStack(ModBlocks.machine_waste_drum, 1), new Object[] { "LRL", "BRB", "LRL", 'L', PB.ingot(), 'B', Blocks.iron_bars, 'R', ModItems.rod_quad_empty }); addRecipeAuto(new ItemStack(ModBlocks.machine_press, 1), new Object[] { "IRI", "IPI", "IBI", 'I', IRON.ingot(), 'R', Blocks.furnace, 'B', IRON.block(), 'P', Blocks.piston }); diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMassStorage.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMassStorage.java index ec9817e99..d04977306 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMassStorage.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMassStorage.java @@ -87,6 +87,10 @@ public class TileEntityMassStorage extends TileEntityCrateBase implements INBTPa public int getStockpile() { return stack; } + + public void setStockpile(int stack) { + this.stack = stack; + } @Override public boolean hasPermission(EntityPlayer player) { From baff99e4817e563720abea56bdb8b02feaf58e1c Mon Sep 17 00:00:00 2001 From: Bob Date: Tue, 31 May 2022 22:28:12 +0200 Subject: [PATCH 32/80] particles that are actual particles --- .../hbm/blocks/machine/BlockMassStorage.java | 7 +- .../blocks/machine/MachineAutocrafter.java | 55 +++++++- .../com/hbm/blocks/turret/TurretCIWS.java | 17 --- .../com/hbm/blocks/turret/TurretHeavy.java | 7 - .../com/hbm/blocks/turret/TurretRocket.java | 7 - .../com/hbm/blocks/turret/TurretSpitfire.java | 12 -- .../com/hbm/entity/logic/EntityBomber.java | 6 +- .../com/hbm/entity/missile/EntityCarrier.java | 60 ++++----- .../hbm/entity/missile/EntityMinerRocket.java | 10 +- .../hbm/entity/particle/EntityGasFlameFX.java | 83 ------------ .../com/hbm/explosion/ExplosionLarge.java | 8 +- src/main/java/com/hbm/items/ModItems.java | 20 +-- src/main/java/com/hbm/lib/RefStrings.java | 2 +- src/main/java/com/hbm/main/ClientProxy.java | 9 +- src/main/java/com/hbm/main/MainRegistry.java | 24 +++- .../java/com/hbm/main/ModEventHandler.java | 4 + .../com/hbm/particle/ParticleGasFlame.java | 56 ++++++++ .../entity/effect/GasFlameRenderer.java | 125 ------------------ .../hbm/tileentity/deco/TileEntityGeysir.java | 16 ++- .../machine/TileEntityAMSLimiter.java | 16 +-- .../oil/TileEntityMachineGasFlare.java | 5 +- .../storage/TileEntityMassStorage.java | 18 +-- src/main/java/com/hbm/util/ParticleUtil.java | 21 +++ src/main/resources/mcmod.info | 2 +- 24 files changed, 234 insertions(+), 356 deletions(-) delete mode 100644 src/main/java/com/hbm/entity/particle/EntityGasFlameFX.java create mode 100644 src/main/java/com/hbm/particle/ParticleGasFlame.java delete mode 100644 src/main/java/com/hbm/render/entity/effect/GasFlameRenderer.java create mode 100644 src/main/java/com/hbm/util/ParticleUtil.java diff --git a/src/main/java/com/hbm/blocks/machine/BlockMassStorage.java b/src/main/java/com/hbm/blocks/machine/BlockMassStorage.java index 10a69e2d5..7e9c27ef3 100644 --- a/src/main/java/com/hbm/blocks/machine/BlockMassStorage.java +++ b/src/main/java/com/hbm/blocks/machine/BlockMassStorage.java @@ -21,11 +21,11 @@ import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.ISidedInventory; +import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.IIcon; -import net.minecraft.util.MathHelper; import net.minecraft.world.World; public class BlockMassStorage extends BlockContainer { @@ -206,4 +206,9 @@ public class BlockMassStorage extends BlockContainer { super.breakBlock(world, x, y, z, block, meta); } + + @Override + public Item getItemDropped(int i, Random rand, int j) { + return null; + } } diff --git a/src/main/java/com/hbm/blocks/machine/MachineAutocrafter.java b/src/main/java/com/hbm/blocks/machine/MachineAutocrafter.java index 7bb318c6a..f4fabf399 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineAutocrafter.java +++ b/src/main/java/com/hbm/blocks/machine/MachineAutocrafter.java @@ -1,19 +1,23 @@ package com.hbm.blocks.machine; -import com.hbm.items.ModItems; -import com.hbm.items.tool.ItemLock; +import java.util.Random; + import com.hbm.lib.RefStrings; import com.hbm.main.MainRegistry; import com.hbm.tileentity.machine.TileEntityMachineAutocrafter; -import com.hbm.tileentity.machine.storage.TileEntityCrateBase; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.ISidedInventory; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.IIcon; import net.minecraft.world.World; @@ -62,4 +66,49 @@ public class MachineAutocrafter extends BlockContainer { return false; } } + + private final Random field_149933_a = new Random(); + + @Override + public void breakBlock(World p_149749_1_, int p_149749_2_, int p_149749_3_, int p_149749_4_, Block p_149749_5_, int p_149749_6_) { + ISidedInventory tileentityfurnace = (ISidedInventory) p_149749_1_.getTileEntity(p_149749_2_, p_149749_3_, p_149749_4_); + + if(tileentityfurnace != null) { + + for(int i1 = 10; i1 < tileentityfurnace.getSizeInventory(); ++i1) { + ItemStack itemstack = tileentityfurnace.getStackInSlot(i1); + + if(itemstack != null) { + float f = this.field_149933_a.nextFloat() * 0.8F + 0.1F; + float f1 = this.field_149933_a.nextFloat() * 0.8F + 0.1F; + float f2 = this.field_149933_a.nextFloat() * 0.8F + 0.1F; + + while(itemstack.stackSize > 0) { + int j1 = this.field_149933_a.nextInt(21) + 10; + + if(j1 > itemstack.stackSize) { + j1 = itemstack.stackSize; + } + + itemstack.stackSize -= j1; + EntityItem entityitem = new EntityItem(p_149749_1_, p_149749_2_ + f, p_149749_3_ + f1, p_149749_4_ + f2, new ItemStack(itemstack.getItem(), j1, itemstack.getItemDamage())); + + if(itemstack.hasTagCompound()) { + entityitem.getEntityItem().setTagCompound((NBTTagCompound) itemstack.getTagCompound().copy()); + } + + float f3 = 0.05F; + entityitem.motionX = (float) this.field_149933_a.nextGaussian() * f3; + entityitem.motionY = (float) this.field_149933_a.nextGaussian() * f3 + 0.2F; + entityitem.motionZ = (float) this.field_149933_a.nextGaussian() * f3; + p_149749_1_.spawnEntityInWorld(entityitem); + } + } + } + + p_149749_1_.func_147453_f(p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_); + } + + super.breakBlock(p_149749_1_, p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_, p_149749_6_); + } } diff --git a/src/main/java/com/hbm/blocks/turret/TurretCIWS.java b/src/main/java/com/hbm/blocks/turret/TurretCIWS.java index 7efcf0b06..b88899123 100644 --- a/src/main/java/com/hbm/blocks/turret/TurretCIWS.java +++ b/src/main/java/com/hbm/blocks/turret/TurretCIWS.java @@ -3,7 +3,6 @@ package com.hbm.blocks.turret; import java.util.List; import com.hbm.config.WeaponConfig; -import com.hbm.entity.particle.EntityGasFlameFX; import com.hbm.lib.ModDamageSource; import com.hbm.tileentity.turret.TileEntityTurretCIWS; @@ -50,22 +49,6 @@ public class TurretCIWS extends TurretBase { Math.cos(yaw / 180.0F * (float) Math.PI) * Math.cos(pitch / 180.0F * (float) Math.PI)); vector.normalize(); - - if(!world.isRemote) { - - rayShot(world, vector, x + vector.xCoord * 2.5 + 0.5, y + vector.yCoord * 2.5 + 0.5, z + vector.zCoord * 2.5 + 0.5, 100, 10.0F, WeaponConfig.ciwsHitrate); - - EntityGasFlameFX smoke = new EntityGasFlameFX(world); - smoke.posX = x + vector.xCoord * 2.5 + 0.5; - smoke.posY = y + vector.yCoord * 2.5 + 1.5; - smoke.posZ = z + vector.zCoord * 2.5 + 0.5; - - smoke.motionX = vector.xCoord * 0.25; - smoke.motionY = vector.yCoord * 0.25; - smoke.motionZ = vector.zCoord * 0.25; - - world.spawnEntityInWorld(smoke); - } world.playSoundEffect(x, y, z, "hbm:weapon.ciwsFiringLoop", 1.0F, 1.25F); diff --git a/src/main/java/com/hbm/blocks/turret/TurretHeavy.java b/src/main/java/com/hbm/blocks/turret/TurretHeavy.java index ba442e277..43a75441c 100644 --- a/src/main/java/com/hbm/blocks/turret/TurretHeavy.java +++ b/src/main/java/com/hbm/blocks/turret/TurretHeavy.java @@ -1,6 +1,5 @@ package com.hbm.blocks.turret; -import com.hbm.entity.particle.EntityGasFlameFX; import com.hbm.entity.projectile.EntityBullet; import com.hbm.tileentity.turret.TileEntityTurretHeavy; @@ -51,12 +50,6 @@ public class TurretHeavy extends TurretBase { bullet.damage = rand.nextInt(26) + 15; world.spawnEntityInWorld(bullet); - - EntityGasFlameFX fx = new EntityGasFlameFX(world); - fx.posX = x + vector.xCoord * 2.2 + 0.5; - fx.posY = y + vector.yCoord * 2.2 + 1; - fx.posZ = z + vector.zCoord * 2.2 + 0.5; - world.spawnEntityInWorld(fx); } world.playSoundEffect(x, y, z, "hbm:weapon.defabShoot", 1.0F, 0.75F); diff --git a/src/main/java/com/hbm/blocks/turret/TurretRocket.java b/src/main/java/com/hbm/blocks/turret/TurretRocket.java index b300f1801..a5639863a 100644 --- a/src/main/java/com/hbm/blocks/turret/TurretRocket.java +++ b/src/main/java/com/hbm/blocks/turret/TurretRocket.java @@ -1,6 +1,5 @@ package com.hbm.blocks.turret; -import com.hbm.entity.particle.EntityGasFlameFX; import com.hbm.entity.projectile.EntityRocket; import com.hbm.tileentity.turret.TileEntityTurretRocket; @@ -49,12 +48,6 @@ public class TurretRocket extends TurretBase { bullet.motionZ = vector.zCoord * 3; world.spawnEntityInWorld(bullet); - - EntityGasFlameFX fx = new EntityGasFlameFX(world); - fx.posX = x + vector.xCoord * 1 + 0.5; - fx.posY = y + vector.yCoord * 1 + 1; - fx.posZ = z + vector.zCoord * 1 + 0.5; - world.spawnEntityInWorld(fx); } world.playSoundEffect(x, y, z, "hbm:weapon.rpgShoot", 1.0F, 0.75F); diff --git a/src/main/java/com/hbm/blocks/turret/TurretSpitfire.java b/src/main/java/com/hbm/blocks/turret/TurretSpitfire.java index b4a8ff633..0b3f8551e 100644 --- a/src/main/java/com/hbm/blocks/turret/TurretSpitfire.java +++ b/src/main/java/com/hbm/blocks/turret/TurretSpitfire.java @@ -1,6 +1,5 @@ package com.hbm.blocks.turret; -import com.hbm.entity.particle.EntityGasFlameFX; import com.hbm.entity.projectile.EntityAAShell; import com.hbm.tileentity.turret.TileEntityTurretSpitfire; @@ -51,17 +50,6 @@ public class TurretSpitfire extends TurretBase { bullet.speedOverride = 3; world.spawnEntityInWorld(bullet); - - EntityGasFlameFX smoke = new EntityGasFlameFX(world); - smoke.posX = x + vector.xCoord * 4 + 0.5; - smoke.posY = y + vector.yCoord * 4 + 1; - smoke.posZ = z + vector.zCoord * 4 + 0.5; - - smoke.motionX = vector.xCoord * 0.25; - smoke.motionY = vector.yCoord * 0.25; - smoke.motionZ = vector.zCoord * 0.25; - - world.spawnEntityInWorld(smoke); } world.playSoundEffect(x, y, z, "hbm:entity.oldExplosion", 1.0F, 0.5F); diff --git a/src/main/java/com/hbm/entity/logic/EntityBomber.java b/src/main/java/com/hbm/entity/logic/EntityBomber.java index 1a02f2fc6..820bdfc3b 100644 --- a/src/main/java/com/hbm/entity/logic/EntityBomber.java +++ b/src/main/java/com/hbm/entity/logic/EntityBomber.java @@ -4,7 +4,6 @@ import java.util.ArrayList; import java.util.List; import com.hbm.config.GeneralConfig; -import com.hbm.entity.particle.EntityGasFlameFX; import com.hbm.entity.projectile.EntityBombletZeta; import com.hbm.entity.projectile.EntityBoxcar; import com.hbm.entity.projectile.EntityRocketHoming; @@ -14,6 +13,7 @@ import com.hbm.lib.ModDamageSource; import com.hbm.main.MainRegistry; import com.hbm.packet.LoopedEntitySoundPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.util.ParticleUtil; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; @@ -106,8 +106,8 @@ public class EntityBomber extends Entity implements IChunkLoader { if(this.health <= 0) { motionY -= 0.025; - for(int i = 0; i < 10; i++) - this.worldObj.spawnEntityInWorld(new EntityGasFlameFX(this.worldObj, this.posX + rand.nextGaussian() * 0.5 - motionX * 2, this.posY + rand.nextGaussian() * 0.5 - motionY * 2, this.posZ + rand.nextGaussian() * 0.5 - motionZ * 2, 0.0, 0.1, 0.0)); + for(int i = 0; i < 10; i++) + ParticleUtil.spawnGasFlame(this.worldObj, this.posX + rand.nextGaussian() * 0.5 - motionX * 2, this.posY + rand.nextGaussian() * 0.5 - motionY * 2, this.posZ + rand.nextGaussian() * 0.5 - motionZ * 2, 0.0, 0.1, 0.0); if(worldObj.getBlock((int)posX, (int)posY, (int)posZ).isNormalCube() && !worldObj.isRemote) { this.setDead(); diff --git a/src/main/java/com/hbm/entity/missile/EntityCarrier.java b/src/main/java/com/hbm/entity/missile/EntityCarrier.java index 405b6dbc7..9f1d6934a 100644 --- a/src/main/java/com/hbm/entity/missile/EntityCarrier.java +++ b/src/main/java/com/hbm/entity/missile/EntityCarrier.java @@ -1,17 +1,20 @@ package com.hbm.entity.missile; -import com.hbm.entity.particle.EntityGasFlameFX; import com.hbm.explosion.ExplosionLarge; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemSatChip; import com.hbm.main.MainRegistry; +import com.hbm.packet.AuxParticlePacketNT; +import com.hbm.packet.PacketDispatcher; import com.hbm.saveddata.satellites.Satellite; +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.projectile.EntityThrowable; import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.MovingObjectPosition; import net.minecraft.world.World; @@ -41,48 +44,33 @@ public class EntityCarrier extends EntityThrowable { if(!worldObj.isRemote) { for(int i = 0; i < 10; i++) { - EntityGasFlameFX fx = new EntityGasFlameFX(worldObj); - fx.posY = posY - 0.25D; - fx.posX = posX + rand.nextGaussian() * 0.75D; - fx.posZ = posZ + rand.nextGaussian() * 0.75D; - fx.motionY = -0.2D; - - worldObj.spawnEntityInWorld(fx); + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "gasfire"); + data.setDouble("mY", -0.2D); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, posX + rand.nextGaussian() * 0.75D, posY - 0.25D, posZ + rand.nextGaussian() * 0.75D), new TargetPoint(worldObj.provider.dimensionId, posX, posY, posZ, 200)); } if(this.dataWatcher.getWatchableObjectInt(8) == 1) for(int i = 0; i < 2; i++) { - EntityGasFlameFX fx1 = new EntityGasFlameFX(worldObj); - fx1.posY = posY - 0.25D; - fx1.posX = posX + rand.nextGaussian() * 0.15D + 2.5D; - fx1.posZ = posZ + rand.nextGaussian() * 0.15D; - fx1.motionY = -0.2D; + NBTTagCompound d1 = new NBTTagCompound(); + d1.setString("type", "gasfire"); + d1.setDouble("mY", -0.2D); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(d1, posX + rand.nextGaussian() * 0.75D + 2.5, posY - 0.25D, posZ + rand.nextGaussian() * 0.75D), new TargetPoint(worldObj.provider.dimensionId, posX, posY, posZ, 200)); - worldObj.spawnEntityInWorld(fx1); - - EntityGasFlameFX fx2 = new EntityGasFlameFX(worldObj); - fx2.posY = posY - 0.25D; - fx2.posX = posX + rand.nextGaussian() * 0.15D - 2.5D; - fx2.posZ = posZ + rand.nextGaussian() * 0.15D; - fx2.motionY = -0.2D; + NBTTagCompound d2 = new NBTTagCompound(); + d2.setString("type", "gasfire"); + d2.setDouble("mY", -0.2D); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(d2, posX + rand.nextGaussian() * 0.75D - 2.5, posY - 0.25D, posZ + rand.nextGaussian() * 0.75D), new TargetPoint(worldObj.provider.dimensionId, posX, posY, posZ, 200)); - worldObj.spawnEntityInWorld(fx2); - - EntityGasFlameFX fx3 = new EntityGasFlameFX(worldObj); - fx3.posY = posY - 0.25D; - fx3.posX = posX + rand.nextGaussian() * 0.15D; - fx3.posZ = posZ + rand.nextGaussian() * 0.15D + 2.5D; - fx3.motionY = -0.2D; + NBTTagCompound d3 = new NBTTagCompound(); + d3.setString("type", "gasfire"); + d3.setDouble("mY", -0.2D); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(d3, posX + rand.nextGaussian() * 0.75D, posY - 0.25D, posZ + rand.nextGaussian() * 0.75D + 2.5), new TargetPoint(worldObj.provider.dimensionId, posX, posY, posZ, 200)); - worldObj.spawnEntityInWorld(fx3); - - EntityGasFlameFX fx4 = new EntityGasFlameFX(worldObj); - fx4.posY = posY - 0.25D; - fx4.posX = posX + rand.nextGaussian() * 0.15D; - fx4.posZ = posZ + rand.nextGaussian() * 0.15D - 2.5D; - fx4.motionY = -0.2D; - - worldObj.spawnEntityInWorld(fx4); + NBTTagCompound d4 = new NBTTagCompound(); + d4.setString("type", "gasfire"); + d4.setDouble("mY", -0.2D); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(d4, posX + rand.nextGaussian() * 0.75D, posY - 0.25D, posZ + rand.nextGaussian() * 0.75D - 2.5), new TargetPoint(worldObj.provider.dimensionId, posX, posY, posZ, 200)); } diff --git a/src/main/java/com/hbm/entity/missile/EntityMinerRocket.java b/src/main/java/com/hbm/entity/missile/EntityMinerRocket.java index b7261ef09..7e9cb87d7 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMinerRocket.java +++ b/src/main/java/com/hbm/entity/missile/EntityMinerRocket.java @@ -1,8 +1,8 @@ package com.hbm.entity.missile; import com.hbm.blocks.ModBlocks; -import com.hbm.entity.particle.EntityGasFlameFX; import com.hbm.explosion.ExplosionLarge; +import com.hbm.util.ParticleUtil; import net.minecraft.block.material.Material; import net.minecraft.entity.Entity; @@ -69,13 +69,7 @@ public class EntityMinerRocket extends Entity { if(dataWatcher.getWatchableObjectInt(16) != 1) { if(ticksExisted % 2 == 0) { - EntityGasFlameFX fx = new EntityGasFlameFX(worldObj); - fx.posY = posY - 0.5D; - fx.posX = posX; - fx.posZ = posZ; - fx.motionY = -1D; - - worldObj.spawnEntityInWorld(fx); + ParticleUtil.spawnGasFlame(worldObj, posX, posY - 0.5, posZ, 0.0, -1.0, 0.0); } } diff --git a/src/main/java/com/hbm/entity/particle/EntityGasFlameFX.java b/src/main/java/com/hbm/entity/particle/EntityGasFlameFX.java deleted file mode 100644 index 66b3a0db7..000000000 --- a/src/main/java/com/hbm/entity/particle/EntityGasFlameFX.java +++ /dev/null @@ -1,83 +0,0 @@ -package com.hbm.entity.particle; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.world.World; - -public class EntityGasFlameFX extends EntityModFX -{ - float smokeParticleScale; - public int particleAge; - public int maxAge; - private static final String __OBFID = "CL_00000924"; - - public EntityGasFlameFX(World world) { - super(world, 0, 0, 0); - } - - public EntityGasFlameFX(World p_i1225_1_, double p_i1225_2_, double p_i1225_4_, double p_i1225_6_, double p_i1225_8_, double p_i1225_10_, double p_i1225_12_) - { - this(p_i1225_1_, p_i1225_2_, p_i1225_4_, p_i1225_6_, p_i1225_8_, p_i1225_10_, p_i1225_12_, 1.0F); - } - - public EntityGasFlameFX(World p_i1226_1_, double p_i1226_2_, double p_i1226_4_, double p_i1226_6_, double p_i1226_8_, double p_i1226_10_, double p_i1226_12_, float p_i1226_14_) - { - super(p_i1226_1_, p_i1226_2_, p_i1226_4_, p_i1226_6_, 0.0D, 0.0D, 0.0D); - this.motionX *= 0.10000000149011612D; - this.motionY *= 0.10000000149011612D; - this.motionZ *= 0.10000000149011612D; - this.motionX += p_i1226_8_; - this.motionY += p_i1226_10_; - this.motionZ += p_i1226_12_; - this.particleRed = this.particleGreen = this.particleBlue = (float)(Math.random() * 0.30000001192092896D); - this.particleScale *= 0.75F; - this.particleScale *= p_i1226_14_; - this.smokeParticleScale = this.particleScale; - //this.particleMaxAge = (int)(8.0D / (Math.random() * 0.8D + 0.2D)); - //this.particleMaxAge = (int)((float)this.particleMaxAge * p_i1226_14_); - this.noClip = true; - } - - /** - * Called to update the entity's position/logic. - */ - - @Override - public void onUpdate() - { - this.prevPosX = this.posX; - this.prevPosY = this.posY; - this.prevPosZ = this.posZ; - - if(maxAge < 30) - { - maxAge = rand.nextInt(13) + 30; - } - - this.particleAge++; - - if (this.particleAge >= maxAge) - { - this.setDead(); - } - - this.motionX *= 0.7599999785423279D; - this.motionY += 0.0075D; - this.motionZ *= 0.7599999785423279D; - - if (this.onGround) - { - this.motionX *= 0.699999988079071D; - this.motionZ *= 0.699999988079071D; - } - - this.moveEntity(motionX, motionY, motionZ); - } - - @Override - @SideOnly(Side.CLIENT) - public int getBrightnessForRender(float p_70070_1_) - { - return 15728880; - } -} diff --git a/src/main/java/com/hbm/explosion/ExplosionLarge.java b/src/main/java/com/hbm/explosion/ExplosionLarge.java index 12b7f6840..fd0f431f1 100644 --- a/src/main/java/com/hbm/explosion/ExplosionLarge.java +++ b/src/main/java/com/hbm/explosion/ExplosionLarge.java @@ -3,12 +3,12 @@ package com.hbm.explosion; import java.util.List; import java.util.Random; -import com.hbm.entity.particle.EntityGasFlameFX; import com.hbm.entity.projectile.EntityOilSpill; import com.hbm.entity.projectile.EntityRubble; import com.hbm.entity.projectile.EntityShrapnel; import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.util.ParticleUtil; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.entity.Entity; @@ -57,11 +57,7 @@ public class ExplosionLarge { vec.rotateAroundY(rand.nextInt(360)); for(int i = 0; i < count; i++) { - EntityGasFlameFX fx = new EntityGasFlameFX(world, x, y, z, 0.0, 0.0, 0.0); - fx.motionY = 0; - fx.motionX = vec.xCoord; - fx.motionZ = vec.zCoord; - world.spawnEntityInWorld(fx); + ParticleUtil.spawnGasFlame(world, x, y, z, vec.xCoord, 0.0, vec.zCoord); vec.rotateAroundY(360 / count); } diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index a345169e1..04d19a070 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -2501,14 +2501,14 @@ public class ModItems { public static Item orange6; public static Item orange7; public static Item orange8; - public static Item gasflame1; + /*public static Item gasflame1; public static Item gasflame2; public static Item gasflame3; public static Item gasflame4; public static Item gasflame5; public static Item gasflame6; public static Item gasflame7; - public static Item gasflame8; + public static Item gasflame8;*/ public static Item energy_ball; public static Item discharge; public static Item empblast; @@ -5642,14 +5642,6 @@ public class ModItems { orange6 = new Item().setUnlocalizedName("orange6").setTextureName(RefStrings.MODID + ":orange6"); orange7 = new Item().setUnlocalizedName("orange7").setTextureName(RefStrings.MODID + ":orange7"); orange8 = new Item().setUnlocalizedName("orange8").setTextureName(RefStrings.MODID + ":orange8"); - gasflame1 = new Item().setUnlocalizedName("gasflame1").setTextureName(RefStrings.MODID + ":gasflame1"); - gasflame2 = new Item().setUnlocalizedName("gasflame2").setTextureName(RefStrings.MODID + ":gasflame2"); - gasflame3 = new Item().setUnlocalizedName("gasflame3").setTextureName(RefStrings.MODID + ":gasflame3"); - gasflame4 = new Item().setUnlocalizedName("gasflame4").setTextureName(RefStrings.MODID + ":gasflame4"); - gasflame5 = new Item().setUnlocalizedName("gasflame5").setTextureName(RefStrings.MODID + ":gasflame5"); - gasflame6 = new Item().setUnlocalizedName("gasflame6").setTextureName(RefStrings.MODID + ":gasflame6"); - gasflame7 = new Item().setUnlocalizedName("gasflame7").setTextureName(RefStrings.MODID + ":gasflame7"); - gasflame8 = new Item().setUnlocalizedName("gasflame8").setTextureName(RefStrings.MODID + ":gasflame8"); energy_ball = new Item().setUnlocalizedName("energy_ball").setTextureName(RefStrings.MODID + ":energy_ball"); discharge = new Item().setUnlocalizedName("discharge").setTextureName(RefStrings.MODID + ":discharge"); empblast = new Item().setUnlocalizedName("empblast").setTextureName(RefStrings.MODID + ":empblast"); @@ -8194,14 +8186,6 @@ public class ModItems { GameRegistry.registerItem(orange6, orange6.getUnlocalizedName()); GameRegistry.registerItem(orange7, orange7.getUnlocalizedName()); GameRegistry.registerItem(orange8, orange8.getUnlocalizedName()); - GameRegistry.registerItem(gasflame1, gasflame1.getUnlocalizedName()); - GameRegistry.registerItem(gasflame2, gasflame2.getUnlocalizedName()); - GameRegistry.registerItem(gasflame3, gasflame3.getUnlocalizedName()); - GameRegistry.registerItem(gasflame4, gasflame4.getUnlocalizedName()); - GameRegistry.registerItem(gasflame5, gasflame5.getUnlocalizedName()); - GameRegistry.registerItem(gasflame6, gasflame6.getUnlocalizedName()); - GameRegistry.registerItem(gasflame7, gasflame7.getUnlocalizedName()); - GameRegistry.registerItem(gasflame8, gasflame8.getUnlocalizedName()); GameRegistry.registerItem(energy_ball, energy_ball.getUnlocalizedName()); GameRegistry.registerItem(discharge, discharge.getUnlocalizedName()); GameRegistry.registerItem(empblast, empblast.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/lib/RefStrings.java b/src/main/java/com/hbm/lib/RefStrings.java index 85ecc3a5f..e9f05f200 100644 --- a/src/main/java/com/hbm/lib/RefStrings.java +++ b/src/main/java/com/hbm/lib/RefStrings.java @@ -3,7 +3,7 @@ package com.hbm.lib; public class RefStrings { public static final String MODID = "hbm"; public static final String NAME = "Hbm's Nuclear Tech Mod"; - public static final String VERSION = "1.0.27 BETA (4242)"; + public static final String VERSION = "1.0.27 BETA (4251)"; //HBM's Beta Naming Convention: //V T (X) //V -> next release version diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index b3150ec36..008ff582d 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -666,7 +666,6 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerEntityRenderingHandler(EntitySSmokeFX.class, new SSmokeRenderer(ModItems.nuclear_waste)); RenderingRegistry.registerEntityRenderingHandler(EntityOilSpillFX.class, new SpillRenderer(ModItems.nuclear_waste)); RenderingRegistry.registerEntityRenderingHandler(EntityGasFX.class, new GasRenderer(ModItems.nuclear_waste)); - RenderingRegistry.registerEntityRenderingHandler(EntityGasFlameFX.class, new GasFlameRenderer(ModItems.nuclear_waste)); RenderingRegistry.registerEntityRenderingHandler(EntityCombineBall.class, new RenderSnowball(ModItems.energy_ball)); RenderingRegistry.registerEntityRenderingHandler(EntityDischarge.class, new ElectricityRenderer(ModItems.discharge)); RenderingRegistry.registerEntityRenderingHandler(EntityEMPBlast.class, new RenderEMPBlast()); @@ -1675,6 +1674,14 @@ public class ClientProxy extends ServerProxy { } Minecraft.getMinecraft().effectRenderer.addEffect(debug); } + + if("gasfire".equals(type)) { + double mX = data.getDouble("mX"); + double mY = data.getDouble("mY"); + double mZ = data.getDouble("mZ"); + ParticleGasFlame text = new ParticleGasFlame(world, x, y, z, mX, mY, mZ, 6.5F); + Minecraft.getMinecraft().effectRenderer.addEffect(text); + } } private HashMap vanished = new HashMap(); diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index 536808999..fc95215d2 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -30,6 +30,7 @@ import cpw.mods.fml.common.Mod.Metadata; import cpw.mods.fml.common.ModMetadata; import java.io.File; +import java.util.HashSet; import java.util.List; import java.util.Map.Entry; import java.util.Random; @@ -81,8 +82,10 @@ import com.hbm.world.generator.CellularDungeonFactory; import cpw.mods.fml.common.SidedProxy; import cpw.mods.fml.common.event.FMLInitializationEvent; +import cpw.mods.fml.common.event.FMLMissingMappingsEvent; import cpw.mods.fml.common.event.FMLInterModComms.IMCEvent; import cpw.mods.fml.common.event.FMLInterModComms.IMCMessage; +import cpw.mods.fml.common.event.FMLMissingMappingsEvent.MissingMapping; import cpw.mods.fml.common.event.FMLPostInitializationEvent; import cpw.mods.fml.common.event.FMLPreInitializationEvent; import cpw.mods.fml.common.event.FMLServerStartingEvent; @@ -396,7 +399,7 @@ public class MainRegistry { EntityRegistry.registerModEntity(EntityOilSpillFX.class, "entity_spill_fx", 72, this, 1000, 1, true); EntityRegistry.registerModEntity(EntityOilSpill.class, "entity_oil_spill", 73, this, 1000, 1, true); EntityRegistry.registerModEntity(EntityGasFX.class, "entity_spill_fx", 74, this, 1000, 1, true); - EntityRegistry.registerModEntity(EntityGasFlameFX.class, "entity_gasflame_fx", 75, this, 1000, 1, true); + //EntityRegistry.registerModEntity(EntityGasFlameFX.class, "entity_gasflame_fx", 75, this, 1000, 1, true); EntityRegistry.registerModEntity(EntityMinecartTest.class, "entity_minecart_test", 76, this, 1000, 1, true); EntityRegistry.registerModEntity(EntitySparkBeam.class, "entity_spark_beam", 77, this, 1000, 1, true); EntityRegistry.registerModEntity(EntityMissileDoomsday.class, "entity_missile_doomsday", 78, this, 1000, 1, true); @@ -1064,4 +1067,23 @@ public class MainRegistry { config.save(); } + + private static HashSet ignoreMappings = new HashSet(); + + static { + for(int i = 1; i <= 8; i++) + ignoreMappings.add("hbm:item.gasflame" + i); + } + + @EventHandler + public void handleMissingMappings(FMLMissingMappingsEvent event) { + + for(MissingMapping mapping : event.get()) { + if(mapping.type == GameRegistry.Type.ITEM) { + if(ignoreMappings.contains(mapping.name)) { + mapping.ignore(); + } + } + } + } } diff --git a/src/main/java/com/hbm/main/ModEventHandler.java b/src/main/java/com/hbm/main/ModEventHandler.java index 8a1c3bc87..d88bbd324 100644 --- a/src/main/java/com/hbm/main/ModEventHandler.java +++ b/src/main/java/com/hbm/main/ModEventHandler.java @@ -4,6 +4,7 @@ import java.lang.reflect.Field; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.util.ArrayList; +import java.util.HashSet; import java.util.Iterator; import java.util.List; import java.util.Map; @@ -62,6 +63,8 @@ import com.hbm.util.EntityDamageUtil; import com.hbm.world.WorldProviderNTM; import com.hbm.world.generator.TimedGenerator; +import cpw.mods.fml.common.event.FMLMissingMappingsEvent; +import cpw.mods.fml.common.event.FMLMissingMappingsEvent.MissingMapping; import cpw.mods.fml.common.eventhandler.Event.Result; import cpw.mods.fml.common.eventhandler.EventPriority; import cpw.mods.fml.common.eventhandler.SubscribeEvent; @@ -70,6 +73,7 @@ import cpw.mods.fml.common.gameevent.TickEvent; import cpw.mods.fml.common.gameevent.TickEvent.Phase; import cpw.mods.fml.common.gameevent.TickEvent.WorldTickEvent; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; +import cpw.mods.fml.common.registry.GameRegistry; import cpw.mods.fml.relauncher.ReflectionHelper; import net.minecraft.block.Block; import net.minecraft.block.BlockBush; diff --git a/src/main/java/com/hbm/particle/ParticleGasFlame.java b/src/main/java/com/hbm/particle/ParticleGasFlame.java new file mode 100644 index 000000000..daca9116a --- /dev/null +++ b/src/main/java/com/hbm/particle/ParticleGasFlame.java @@ -0,0 +1,56 @@ +package com.hbm.particle; + +import java.awt.Color; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.particle.EntitySmokeFX; +import net.minecraft.world.World; + +public class ParticleGasFlame extends EntitySmokeFX { + + float colorMod = 1.0F; + + public ParticleGasFlame(World world, double x, double y, double z, double mX, double mY, double mZ, float scale) { + super(world, x, y, z, mX, mY * 1.5, mZ, scale); + updateColor(); + this.particleScale = scale; + this.colorMod = 0.8F + rand.nextFloat() * 0.2F; + this.noClip = true; + this.particleMaxAge = 30 + rand.nextInt(13); + } + + @Override + public void onUpdate() { + double prevMo = this.motionY; + super.onUpdate(); + updateColor(); + //this.motionX *= 0.75; + //this.motionZ *= 0.75; + this.motionY = prevMo; + + this.motionX *= 0.75D; + this.motionY += 0.005D; + this.motionZ *= 0.75D; + } + + protected void updateColor() { + float time = (float) this.particleAge / (float) this.particleMaxAge; + + Color color = Color.getHSBColor(Math.max((60 - time * 100) / 360F, 0.0F), 1 - time * 0.25F, 1 - time * 0.5F); + + this.particleRed = color.getRed() / 255F; + this.particleGreen = color.getGreen() / 255F; + this.particleBlue = color.getBlue() / 255F; + + this.particleRed *= colorMod; + this.particleGreen *= colorMod; + this.particleBlue *= colorMod; + } + + @Override + @SideOnly(Side.CLIENT) + public int getBrightnessForRender(float p_70070_1_) { + return 15728880; + } +} diff --git a/src/main/java/com/hbm/render/entity/effect/GasFlameRenderer.java b/src/main/java/com/hbm/render/entity/effect/GasFlameRenderer.java deleted file mode 100644 index f14de47a7..000000000 --- a/src/main/java/com/hbm/render/entity/effect/GasFlameRenderer.java +++ /dev/null @@ -1,125 +0,0 @@ -package com.hbm.render.entity.effect; - -import org.lwjgl.opengl.GL11; -import org.lwjgl.opengl.GL12; - -import com.hbm.entity.particle.EntityGasFlameFX; -import com.hbm.items.ModItems; - -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.client.renderer.entity.Render; -import net.minecraft.client.renderer.texture.TextureMap; -import net.minecraft.entity.Entity; -import net.minecraft.item.Item; -import net.minecraft.util.IIcon; -import net.minecraft.util.ResourceLocation; - -public class GasFlameRenderer extends Render { - private Item field_94151_a; - private int field_94150_f; - private static final String __OBFID = "CL_00001008"; - - public GasFlameRenderer(Item p_i1259_1_, int p_i1259_2_) { - this.field_94151_a = p_i1259_1_; - this.field_94150_f = p_i1259_2_; - } - - public GasFlameRenderer(Item p_i1260_1_) { - this(p_i1260_1_, 0); - } - - /** - * Actually renders the given argument. This is a synthetic bridge method, - * always casting down its argument and then handing it off to a worker - * function which does the actual work. In all probabilty, the class Render - * is generic (Render= fx.maxAge / 8 * 7) { - field_94151_a = ModItems.gasflame8; - } - - if (fx.particleAge < fx.maxAge / 8 * 7 && fx.particleAge >= fx.maxAge / 8 * 6) { - field_94151_a = ModItems.gasflame7; - } - - if (fx.particleAge < fx.maxAge / 8 * 6 && fx.particleAge >= fx.maxAge / 8 * 5) { - field_94151_a = ModItems.gasflame6; - } - - if (fx.particleAge < fx.maxAge / 8 * 5 && fx.particleAge >= fx.maxAge / 8 * 4) { - field_94151_a = ModItems.gasflame5; - } - - if (fx.particleAge < fx.maxAge / 8 * 4 && fx.particleAge >= fx.maxAge / 8 * 3) { - field_94151_a = ModItems.gasflame4; - } - - if (fx.particleAge < fx.maxAge / 8 * 3 && fx.particleAge >= fx.maxAge / 8 * 2) { - field_94151_a = ModItems.gasflame3; - } - - if (fx.particleAge < fx.maxAge / 8 * 2 && fx.particleAge >= fx.maxAge / 8 * 1) { - field_94151_a = ModItems.gasflame2; - } - - if (fx.particleAge < fx.maxAge / 8 && fx.particleAge >= 0) { - field_94151_a = ModItems.gasflame1; - } - - IIcon iicon = field_94151_a.getIconFromDamage(0); - - if (iicon != null) { - GL11.glPushMatrix(); - GL11.glTranslatef((float) p_76986_2_, (float) p_76986_4_, (float) p_76986_6_); - GL11.glEnable(GL12.GL_RESCALE_NORMAL); - GL11.glScalef(0.5F, 0.5F, 0.5F); - GL11.glScalef(7.5F, 7.5F, 7.5F); - // - GL11.glScalef(0.35F, 0.35F, 0.35F); - // - this.bindEntityTexture(p_76986_1_); - Tessellator tessellator = Tessellator.instance; - - this.func_77026_a(tessellator, iicon); - GL11.glDisable(GL12.GL_RESCALE_NORMAL); - GL11.glPopMatrix(); - } - } - } - - /** - * Returns the location of an entity's texture. Doesn't seem to be called - * unless you call Render.bindEntityTexture. - */ - @Override - protected ResourceLocation getEntityTexture(Entity p_110775_1_) { - return TextureMap.locationItemsTexture; - } - - private void func_77026_a(Tessellator p_77026_1_, IIcon p_77026_2_) { - float f = p_77026_2_.getMinU(); - float f1 = p_77026_2_.getMaxU(); - float f2 = p_77026_2_.getMinV(); - float f3 = p_77026_2_.getMaxV(); - float f4 = 1.0F; - float f5 = 0.5F; - float f6 = 0.25F; - GL11.glRotatef(180.0F - this.renderManager.playerViewY, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(-this.renderManager.playerViewX, 1.0F, 0.0F, 0.0F); - p_77026_1_.startDrawingQuads(); - p_77026_1_.setNormal(0.0F, 1.0F, 0.0F); - p_77026_1_.addVertexWithUV(0.0F - f5, 0.0F - f6, 0.0D, f, f3); - p_77026_1_.addVertexWithUV(f4 - f5, 0.0F - f6, 0.0D, f1, f3); - p_77026_1_.addVertexWithUV(f4 - f5, f4 - f6, 0.0D, f1, f2); - p_77026_1_.addVertexWithUV(0.0F - f5, f4 - f6, 0.0D, f, f2); - p_77026_1_.draw(); - } -} diff --git a/src/main/java/com/hbm/tileentity/deco/TileEntityGeysir.java b/src/main/java/com/hbm/tileentity/deco/TileEntityGeysir.java index ded7a9ed7..122e52ba3 100644 --- a/src/main/java/com/hbm/tileentity/deco/TileEntityGeysir.java +++ b/src/main/java/com/hbm/tileentity/deco/TileEntityGeysir.java @@ -4,16 +4,19 @@ import java.util.List; import java.util.Random; import com.hbm.blocks.ModBlocks; -import com.hbm.entity.particle.EntityGasFlameFX; import com.hbm.entity.particle.EntityOrangeFX; import com.hbm.entity.projectile.EntityShrapnel; import com.hbm.entity.projectile.EntityWaterSplash; +import com.hbm.packet.AuxParticlePacketNT; +import com.hbm.packet.PacketDispatcher; +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.block.Block; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; +import net.minecraft.nbt.NBTTagCompound; import net.minecraft.potion.Potion; import net.minecraft.potion.PotionEffect; import net.minecraft.tileentity.TileEntity; @@ -102,9 +105,14 @@ public class TileEntityGeysir extends TileEntity { worldObj.spawnEntityInWorld(fx); } - if(timer % 2 == 0) //TODO: replace with actual particle - worldObj.spawnEntityInWorld(new EntityGasFlameFX(worldObj, this.xCoord + 0.5F, this.yCoord + 1.1F, this.zCoord + 0.5F, worldObj.rand.nextGaussian() * 0.05, 0.2, worldObj.rand.nextGaussian() * 0.05)); - + if(timer % 2 == 0) { + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "gasfire"); + data.setDouble("mX", worldObj.rand.nextGaussian() * 0.05); + data.setDouble("mY", 0.2); + data.setDouble("mZ", worldObj.rand.nextGaussian() * 0.05); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, this.xCoord + 0.5F, this.yCoord + 1.1F, this.zCoord + 0.5F), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 75)); + } } private int getDelay() { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityAMSLimiter.java b/src/main/java/com/hbm/tileentity/machine/TileEntityAMSLimiter.java index bc928654b..519396d26 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityAMSLimiter.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityAMSLimiter.java @@ -1,10 +1,7 @@ package com.hbm.tileentity.machine; -import java.util.ArrayList; -import java.util.List; import java.util.Random; -import com.hbm.entity.particle.EntityGasFlameFX; import com.hbm.explosion.ExplosionLarge; import com.hbm.interfaces.IFluidAcceptor; import com.hbm.interfaces.IFluidContainer; @@ -16,6 +13,7 @@ import com.hbm.lib.Library; import com.hbm.packet.AuxElectricityPacket; import com.hbm.packet.AuxGaugePacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.util.ParticleUtil; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; @@ -331,14 +329,10 @@ public class TileEntityAMSLimiter extends TileEntity implements ISidedInventory, int meta = worldObj.getBlockMetadata(xCoord, yCoord, zCoord); double pos = rand.nextDouble() * 2.5; double off = 0.25; - if(meta == 2) - worldObj.spawnEntityInWorld(new EntityGasFlameFX(worldObj, xCoord + 0.5 + off, yCoord + 5.5, zCoord + 0.5 - pos, 0.0, 0.0, 0.0)); - if(meta == 3) - worldObj.spawnEntityInWorld(new EntityGasFlameFX(worldObj, xCoord + 0.5 - off, yCoord + 5.5, zCoord + 0.5 + pos, 0.0, 0.0, 0.0)); - if(meta == 4) - worldObj.spawnEntityInWorld(new EntityGasFlameFX(worldObj, xCoord + 0.5 - pos, yCoord + 5.5, zCoord + 0.5 - off, 0.0, 0.0, 0.0)); - if(meta == 5) - worldObj.spawnEntityInWorld(new EntityGasFlameFX(worldObj, xCoord + 0.5 + pos, yCoord + 5.5, zCoord + 0.5 + off, 0.0, 0.0, 0.0)); + if(meta == 2) ParticleUtil.spawnGasFlame(worldObj, xCoord + 0.5 + off, yCoord + 5.5, zCoord + 0.5 - pos, 0.0, 0.0, 0.0); + if(meta == 3) ParticleUtil.spawnGasFlame(worldObj, xCoord + 0.5 - off, yCoord + 5.5, zCoord + 0.5 + pos, 0.0, 0.0, 0.0); + if(meta == 4) ParticleUtil.spawnGasFlame(worldObj, xCoord + 0.5 - pos, yCoord + 5.5, zCoord + 0.5 - off, 0.0, 0.0, 0.0); + if(meta == 5) ParticleUtil.spawnGasFlame(worldObj, xCoord + 0.5 + pos, yCoord + 5.5, zCoord + 0.5 + off, 0.0, 0.0, 0.0); efficiency = 0; power = 0; diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineGasFlare.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineGasFlare.java index 1d8b0c05a..3a73f999f 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineGasFlare.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineGasFlare.java @@ -2,7 +2,6 @@ package com.hbm.tileentity.machine.oil; import java.util.List; -import com.hbm.entity.particle.EntityGasFlameFX; import com.hbm.interfaces.IControlReceiver; import com.hbm.interfaces.IFluidAcceptor; import com.hbm.interfaces.IFluidContainer; @@ -16,6 +15,7 @@ import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import com.hbm.lib.Library; import com.hbm.main.MainRegistry; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.ParticleUtil; import api.hbm.energy.IEnergyGenerator; import api.hbm.fluid.IFluidStandardReceiver; @@ -140,8 +140,7 @@ public class TileEntityMachineGasFlare extends TileEntityMachineBase implements if(power > maxPower) power = maxPower; - worldObj.spawnEntityInWorld(new EntityGasFlameFX(worldObj, this.xCoord + 0.5F, this.yCoord + 11.75F, this.zCoord + 0.5F, - worldObj.rand.nextGaussian() * 0.15, 0.2, worldObj.rand.nextGaussian() * 0.15)); + ParticleUtil.spawnGasFlame(worldObj, this.xCoord + 0.5F, this.yCoord + 11.75F, this.zCoord + 0.5F, worldObj.rand.nextGaussian() * 0.15, 0.2, worldObj.rand.nextGaussian() * 0.15); List list = worldObj.getEntitiesWithinAABB(Entity.class, AxisAlignedBB.getBoundingBox(xCoord - 1, yCoord + 12, zCoord - 2, xCoord + 2, yCoord + 17, zCoord + 2)); for(Entity e : list) { diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMassStorage.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMassStorage.java index d04977306..0f80fbbc5 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMassStorage.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMassStorage.java @@ -52,14 +52,16 @@ public class TileEntityMassStorage extends TileEntityCrateBase implements INBTPa int amount = Math.min(getStockpile(), getType().getMaxStackSize()); - if(slots[2] == null) { - slots[2] = slots[1].copy(); - slots[2].stackSize = amount; - this.stack -= amount; - } else { - amount = Math.min(amount, slots[2].getMaxStackSize() - slots[2].stackSize); - slots[2].stackSize += amount; - this.stack -= amount; + if(amount > 0) { + if(slots[2] == null) { + slots[2] = slots[1].copy(); + slots[2].stackSize = amount; + this.stack -= amount; + } else { + amount = Math.min(amount, slots[2].getMaxStackSize() - slots[2].stackSize); + slots[2].stackSize += amount; + this.stack -= amount; + } } } diff --git a/src/main/java/com/hbm/util/ParticleUtil.java b/src/main/java/com/hbm/util/ParticleUtil.java new file mode 100644 index 000000000..8f898e607 --- /dev/null +++ b/src/main/java/com/hbm/util/ParticleUtil.java @@ -0,0 +1,21 @@ +package com.hbm.util; + +import com.hbm.packet.AuxParticlePacketNT; +import com.hbm.packet.PacketDispatcher; + +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.world.World; + +public class ParticleUtil { + + public static void spawnGasFlame(World world, double x, double y, double z, double mX, double mY, double mZ) { + + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "gasfire"); + data.setDouble("mX", mX); + data.setDouble("mY", mY); + data.setDouble("mZ", mZ); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, x, y, z), new TargetPoint(world.provider.dimensionId, x, y, z, 150)); + } +} diff --git a/src/main/resources/mcmod.info b/src/main/resources/mcmod.info index 5ff865767..c356e6427 100755 --- a/src/main/resources/mcmod.info +++ b/src/main/resources/mcmod.info @@ -3,7 +3,7 @@ "modid": "hbm", "name": "Hbm's Nuclear Tech", "description": "A mod that adds weapons, nuclear themed stuff and machines", - "version":"1.0.27_X4242", + "version":"1.0.27_X4251", "mcversion": "1.7.10", "url": "", "updateUrl": "", From ed15803a42789f4f63549e42cb8174c920708d02 Mon Sep 17 00:00:00 2001 From: Bob Date: Wed, 1 Jun 2022 20:47:35 +0200 Subject: [PATCH 33/80] smooth sailing on conveyor belts --- .../java/api/hbm/conveyor/IConveyorItem.java | 8 + .../api/hbm/conveyor/IEnterableBlock.java | 9 + .../com/hbm/entity/item/EntityMovingItem.java | 264 ++++++++++-------- .../assets/hbm/textures/blocks/crane_in.png | Bin 246 -> 239 bytes .../assets/hbm/textures/blocks/crane_out.png | Bin 256 -> 199 bytes .../assets/hbm/textures/blocks/crane_side.png | Bin 177 -> 176 bytes .../assets/hbm/textures/blocks/crane_top.png | Bin 134 -> 162 bytes 7 files changed, 171 insertions(+), 110 deletions(-) create mode 100644 src/main/java/api/hbm/conveyor/IConveyorItem.java create mode 100644 src/main/java/api/hbm/conveyor/IEnterableBlock.java diff --git a/src/main/java/api/hbm/conveyor/IConveyorItem.java b/src/main/java/api/hbm/conveyor/IConveyorItem.java new file mode 100644 index 000000000..9748cdbe6 --- /dev/null +++ b/src/main/java/api/hbm/conveyor/IConveyorItem.java @@ -0,0 +1,8 @@ +package api.hbm.conveyor; + +import net.minecraft.item.ItemStack; + +public interface IConveyorItem { + + public ItemStack getItemStack(); +} diff --git a/src/main/java/api/hbm/conveyor/IEnterableBlock.java b/src/main/java/api/hbm/conveyor/IEnterableBlock.java new file mode 100644 index 000000000..4315726e3 --- /dev/null +++ b/src/main/java/api/hbm/conveyor/IEnterableBlock.java @@ -0,0 +1,9 @@ +package api.hbm.conveyor; + +import net.minecraftforge.common.util.ForgeDirection; + +public interface IEnterableBlock { + + public boolean canEnter(IConveyorItem entity, ForgeDirection dir); + public void onEnter(IConveyorItem entity, ForgeDirection dir); +} diff --git a/src/main/java/com/hbm/entity/item/EntityMovingItem.java b/src/main/java/com/hbm/entity/item/EntityMovingItem.java index e843346e3..a4bfd6399 100644 --- a/src/main/java/com/hbm/entity/item/EntityMovingItem.java +++ b/src/main/java/com/hbm/entity/item/EntityMovingItem.java @@ -2,6 +2,9 @@ package com.hbm.entity.item; import com.hbm.blocks.ModBlocks; +import api.hbm.conveyor.IConveyorItem; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.entity.Entity; import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; @@ -12,138 +15,179 @@ import net.minecraft.util.DamageSource; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class EntityMovingItem extends Entity { +public class EntityMovingItem extends Entity implements IConveyorItem { + + private int turnProgress; + private double syncPosX; + private double syncPosY; + private double syncPosZ; + @SideOnly(Side.CLIENT) + private double velocityX; + @SideOnly(Side.CLIENT) + private double velocityY; + @SideOnly(Side.CLIENT) + private double velocityZ; public EntityMovingItem(World p_i1582_1_) { super(p_i1582_1_); - this.setSize(0.5F, 0.25F); - this.noClip = true; + this.setSize(0.5F, 0.5F); + this.noClip = true; } - - public void setItemStack(ItemStack stack) { - - this.getDataWatcher().updateObject(10, stack); - this.getDataWatcher().setObjectWatched(10); - } - - public ItemStack getItemStack() { - - ItemStack stack = this.getDataWatcher().getWatchableObjectItemStack(10); - return stack == null ? new ItemStack(Blocks.stone) : stack; - } - - public boolean canBeCollidedWith() { - return true; - } - - public boolean interactFirst(EntityPlayer player) { - + + public void setItemStack(ItemStack stack) { + + this.getDataWatcher().updateObject(10, stack); + this.getDataWatcher().setObjectWatched(10); + } + + public ItemStack getItemStack() { + + ItemStack stack = this.getDataWatcher().getWatchableObjectItemStack(10); + return stack == null ? new ItemStack(Blocks.stone) : stack; + } + + public boolean canBeCollidedWith() { + return true; + } + + public boolean interactFirst(EntityPlayer player) { + if(!worldObj.isRemote && player.inventory.addItemStackToInventory(this.getItemStack().copy())) { this.setDead(); } - + return false; - } - - public boolean attackEntityFrom(DamageSource source, float amount) { - - if(!worldObj.isRemote) { - this.setDead(); + } + + public boolean attackEntityFrom(DamageSource source, float amount) { + + if(!worldObj.isRemote) { + this.setDead(); worldObj.spawnEntityInWorld(new EntityItem(worldObj, posX, posY, posZ, this.getItemStack())); - } - return true; - } - - public boolean canAttackWithItem() { - return true; - } - - public boolean hitByEntity(Entity attacker) { - - if(attacker instanceof EntityPlayer) { - } - + } + return true; + } + + public boolean canAttackWithItem() { + return true; + } + + public boolean hitByEntity(Entity attacker) { + + if(attacker instanceof EntityPlayer) { + } + this.setDead(); - - return false; - } - - protected boolean canTriggerWalking() { - return true; - } - - private int schedule = 0; - - public void onUpdate() { - - if(!worldObj.isRemote) { - - if(worldObj.getBlock((int)Math.floor(posX), (int)Math.floor(posY), (int)Math.floor(posZ)) != ModBlocks.conveyor) { - this.setDead(); - EntityItem item = new EntityItem(worldObj, posX, posY, posZ, this.getItemStack()); - item.motionX = this.motionX * 3; - item.motionY = 0.1; - item.motionZ = this.motionZ * 3; - item.velocityChanged = true; - worldObj.spawnEntityInWorld(item); - return; - } - - if(worldObj.getBlock((int)Math.floor(posX), (int)Math.floor(posY), (int)Math.floor(posZ)) == ModBlocks.conveyor) { - - if(schedule <= 0) { - ForgeDirection dir = ForgeDirection.getOrientation(worldObj.getBlockMetadata((int)Math.floor(posX), (int)Math.floor(posY), (int)Math.floor(posZ))); - - if(worldObj.getBlock((int)Math.floor(posX), (int)Math.floor(posY) + 1, (int)Math.floor(posZ)) == ModBlocks.conveyor && motionY >= 0) { - dir = ForgeDirection.DOWN; - } - - if(worldObj.getBlock((int)Math.floor(posX), (int)Math.floor(posY) - 1, (int)Math.floor(posZ)) == ModBlocks.conveyor && motionY <= 0) { - dir = ForgeDirection.UP; - } - - double speed = 0.0625; - - schedule = (int) (1 / speed); - motionX = -speed * dir.offsetX; - motionY = -speed * dir.offsetY; - motionZ = -speed * dir.offsetZ; - - this.velocityChanged = true; - } - - schedule--; - } - } - this.moveEntity(motionX, motionY, motionZ); - } + + return false; + } + + protected boolean canTriggerWalking() { + return true; + } + + private int schedule = 0; + + public void onUpdate() { + + if(worldObj.isRemote) { + if(this.turnProgress > 0) { + double interpX = this.posX + (this.syncPosX - this.posX) / (double) this.turnProgress; + double interpY = this.posY + (this.syncPosY - this.posY) / (double) this.turnProgress; + double interpZ = this.posZ + (this.syncPosZ - this.posZ) / (double) this.turnProgress; + --this.turnProgress; + this.setPosition(interpX, interpY, interpZ); + } else { + this.setPosition(this.posX, this.posY, this.posZ); + } + } + + if(!worldObj.isRemote) { + + if(worldObj.getBlock((int) Math.floor(posX), (int) Math.floor(posY), (int) Math.floor(posZ)) != ModBlocks.conveyor) { + this.setDead(); + EntityItem item = new EntityItem(worldObj, posX, posY, posZ, this.getItemStack()); + item.motionX = this.motionX * 3; + item.motionY = 0.1; + item.motionZ = this.motionZ * 3; + item.velocityChanged = true; + worldObj.spawnEntityInWorld(item); + return; + } + + if(worldObj.getBlock((int) Math.floor(posX), (int) Math.floor(posY), (int) Math.floor(posZ)) == ModBlocks.conveyor) { + + if(schedule <= 0) { + ForgeDirection dir = ForgeDirection.getOrientation(worldObj.getBlockMetadata((int) Math.floor(posX), (int) Math.floor(posY), (int) Math.floor(posZ))); + + if(worldObj.getBlock((int) Math.floor(posX), (int) Math.floor(posY) + 1, (int) Math.floor(posZ)) == ModBlocks.conveyor && motionY >= 0) { + dir = ForgeDirection.DOWN; + } + + if(worldObj.getBlock((int) Math.floor(posX), (int) Math.floor(posY) - 1, (int) Math.floor(posZ)) == ModBlocks.conveyor && motionY <= 0) { + dir = ForgeDirection.UP; + } + + double speed = 0.0625; + + schedule = (int) (1 / speed); + motionX = -speed * dir.offsetX; + motionY = -speed * dir.offsetY; + motionZ = -speed * dir.offsetZ; + + this.velocityChanged = true; + } + + schedule--; + } + + this.moveEntity(motionX, motionY, motionZ); + } + } + + @SideOnly(Side.CLIENT) + public void setVelocity(double p_70016_1_, double p_70016_3_, double p_70016_5_) { + this.velocityX = this.motionX = p_70016_1_; + this.velocityY = this.motionY = p_70016_3_; + this.velocityZ = this.motionZ = p_70016_5_; + } + + @SideOnly(Side.CLIENT) + public void setPositionAndRotation2(double x, double y, double z, float yaw, float pitch, int theNumberThree) { + this.syncPosX = x; + this.syncPosY = y; + this.syncPosZ = z; + this.turnProgress = theNumberThree + 7; //use 4-ply for extra smoothness + this.motionX = this.velocityX; + this.motionY = this.velocityY; + this.motionZ = this.velocityZ; + } @Override - protected void entityInit() { - this.getDataWatcher().addObjectByDataType(10, 5); - } + protected void entityInit() { + this.getDataWatcher().addObjectByDataType(10, 5); + } @Override protected void readEntityFromNBT(NBTTagCompound nbt) { - NBTTagCompound compound = nbt.getCompoundTag("Item"); - this.setItemStack(ItemStack.loadItemStackFromNBT(compound)); + NBTTagCompound compound = nbt.getCompoundTag("Item"); + this.setItemStack(ItemStack.loadItemStackFromNBT(compound)); - ItemStack stack = getDataWatcher().getWatchableObjectItemStack(10); - - schedule = nbt.getInteger("schedule"); + ItemStack stack = getDataWatcher().getWatchableObjectItemStack(10); - if (stack == null || stack.stackSize <= 0) - this.setDead(); + schedule = nbt.getInteger("schedule"); + + if(stack == null || stack.stackSize <= 0) + this.setDead(); } @Override protected void writeEntityToNBT(NBTTagCompound nbt) { - if (this.getItemStack() != null) - nbt.setTag("Item", this.getItemStack().writeToNBT(new NBTTagCompound())); - - nbt.setInteger("schedule", schedule); - } + if(this.getItemStack() != null) + nbt.setTag("Item", this.getItemStack().writeToNBT(new NBTTagCompound())); + nbt.setInteger("schedule", schedule); + } } diff --git a/src/main/resources/assets/hbm/textures/blocks/crane_in.png b/src/main/resources/assets/hbm/textures/blocks/crane_in.png index af0ea0d69bbab000023c4827db64f4aab63e9431..01968dbd4b93e11b1bb00128b0bd1093b4b2fc80 100644 GIT binary patch delta 195 zcmV;!06hQp0q+5jG=HW^L_t(Ijir+@4gw(%MIXiv!a3~pDpcNp>v0x3u3%zCpvJ=8 zU=#?rzkwnAmzl|ou+|n1=)7N)QcK2^QU&a0t@V^S#)wjilv2$=YmIYm3Sf*O##l3G zrPkATsXu@bq}8V;patnQ`P2gdyjb48&Kx{CqF7o5ZNF((Az4OM9|4ZLLEng9R*07*qoM6N<$ Ef{Wu{{Qv*} diff --git a/src/main/resources/assets/hbm/textures/blocks/crane_out.png b/src/main/resources/assets/hbm/textures/blocks/crane_out.png index 157c24e4a77a597e37bc63ff76b26ae855a9eb91..ddd908c300536876280e607a59ac8f08b9ba8883 100644 GIT binary patch delta 155 zcmV;M0A&Aw0>=T6G=F|cL_t(IjqQ^$3V<*SMPJ1+2XX6BdW+t&_i*U}1jp=k&|n1- ztB(Gq`3ZR>(6|_5;e~n&M5L)vRd;}hkWxAnYv7p=A)u=J1U2=pKdfNNIRoImzx1Z= zY`+%$fG+`0{s4dj3P2gR#IU}1{4{TXC(Y)aUE`}`suQhR02C62N*0a9KRb3BGjo1W7aKGC$~cZA0PPX;*3*?PQ%Xfs-}k$-9U!Gd&bgZT z9r6MQv!tRqz*|W12>`<|05H$<3NNXx*7~8U6-4G3S55z`piTDXog}$WxKB9Xk{l?m zxQlp6-d!)tXqwXkeB3kVTYZc^vBpc#n3*5>%CI!Jjm;4=Y?^ok0`LSEV^W)CG#R)6 O0000D?)!39?@7B&g+cZ zz;2lBAXTjx&=dqp`{y1LtrTdfII_VnLJG1^cQ@hfQYawcE!-{X^sfzeLDb1Yb$hRC?`pt md1YvO$lc7qa9QI_3BU=vr8z0Y&^sprl6-u)C*Vk_NyeS&K3YzqjpUm&z7w!6G1;hURTIyB`BUNwPfCTvT%b XOS2sdEpFvZ00000NkvXXu0mjfXcI4` delta 89 zcmZ3)*v2@)B*@m&#WBR9H@T#s;Kz9f#)L*g85tRmOBD|eFtUMwT9JwJ>qMnUbtwtc qgewh>DGWNv6POaJA}+9curkcO&8xgi&_|sC2s~Z=T-G@yGywn`PaDMm From e4c03363247ceca0e866fb6af7f74bdb04388c48 Mon Sep 17 00:00:00 2001 From: Bob Date: Wed, 1 Jun 2022 21:16:09 +0200 Subject: [PATCH 34/80] unbelievable, absolutely phenomenal --- .../hbm/tileentity/machine/storage/TileEntityMassStorage.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMassStorage.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMassStorage.java index 0f80fbbc5..02311816a 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMassStorage.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMassStorage.java @@ -44,7 +44,7 @@ public class TileEntityMassStorage extends TileEntityCrateBase implements INBTPa this.worldObj.markTileEntityChunkModified(this.xCoord, this.yCoord, this.zCoord, this); } - if(output) { + if(output && getType() != null) { if(slots[2] != null && !(slots[2].isItemEqual(getType()) && ItemStack.areItemStackTagsEqual(slots[2], getType()))) { return; From 1ae7160128e675c5ef58e90edd4bc62e6bbdf40c Mon Sep 17 00:00:00 2001 From: Bob Date: Thu, 2 Jun 2022 22:46:22 +0200 Subject: [PATCH 35/80] conveyor API stuff --- .../java/api/hbm/conveyor/IConveyorBelt.java | 10 ++++ .../api/hbm/conveyor/IEnterableBlock.java | 5 +- .../java/com/hbm/blocks/bomb/DetMiner.java | 15 ++++- .../com/hbm/blocks/network/BlockConveyor.java | 53 +++++++++++++++++- .../com/hbm/entity/item/EntityMovingItem.java | 42 +++++++++++++- .../hbm/util/fauxpointtwelve/BlockPos.java | 30 +++++++++- .../assets/hbm/textures/blocks/crane_in.png | Bin 239 -> 221 bytes .../hbm/textures/blocks/crane_in_top.png | Bin 0 -> 245 bytes .../assets/hbm/textures/blocks/crane_out.png | Bin 199 -> 178 bytes .../hbm/textures/blocks/crane_out_top.png | Bin 0 -> 253 bytes .../hbm/textures/blocks/crane_side_in.png | Bin 0 -> 239 bytes .../hbm/textures/blocks/crane_side_out.png | Bin 0 -> 199 bytes 12 files changed, 146 insertions(+), 9 deletions(-) create mode 100644 src/main/java/api/hbm/conveyor/IConveyorBelt.java create mode 100644 src/main/resources/assets/hbm/textures/blocks/crane_in_top.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/crane_out_top.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/crane_side_in.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/crane_side_out.png diff --git a/src/main/java/api/hbm/conveyor/IConveyorBelt.java b/src/main/java/api/hbm/conveyor/IConveyorBelt.java new file mode 100644 index 000000000..075d37e79 --- /dev/null +++ b/src/main/java/api/hbm/conveyor/IConveyorBelt.java @@ -0,0 +1,10 @@ +package api.hbm.conveyor; + +import net.minecraft.util.Vec3; +import net.minecraft.world.World; + +public interface IConveyorBelt { + + public Vec3 getTravelLocation(World world, int x, int y, int z, Vec3 itemPos, double speed); + public Vec3 getClosestSnappingPosition(World world, int x, int y, int z, Vec3 itemPos); +} diff --git a/src/main/java/api/hbm/conveyor/IEnterableBlock.java b/src/main/java/api/hbm/conveyor/IEnterableBlock.java index 4315726e3..a5f4abbf8 100644 --- a/src/main/java/api/hbm/conveyor/IEnterableBlock.java +++ b/src/main/java/api/hbm/conveyor/IEnterableBlock.java @@ -1,9 +1,10 @@ package api.hbm.conveyor; +import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; public interface IEnterableBlock { - public boolean canEnter(IConveyorItem entity, ForgeDirection dir); - public void onEnter(IConveyorItem entity, ForgeDirection dir); + public boolean canEnter(World world, int x, int y, int z, ForgeDirection dir, IConveyorItem entity); + public void onEnter(World world, int x, int y, int z, ForgeDirection dir, IConveyorItem entity); } diff --git a/src/main/java/com/hbm/blocks/bomb/DetMiner.java b/src/main/java/com/hbm/blocks/bomb/DetMiner.java index 4bc5e01eb..1a006a7dd 100644 --- a/src/main/java/com/hbm/blocks/bomb/DetMiner.java +++ b/src/main/java/com/hbm/blocks/bomb/DetMiner.java @@ -8,13 +8,16 @@ import com.hbm.explosion.ExplosionNT; import com.hbm.explosion.ExplosionNT.ExAttrib; import com.hbm.interfaces.IBomb; +import api.hbm.conveyor.IConveyorItem; +import api.hbm.conveyor.IEnterableBlock; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.item.Item; import net.minecraft.world.Explosion; import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; -public class DetMiner extends BlockPillar implements IBomb { +public class DetMiner extends BlockPillar implements IBomb, IEnterableBlock { public DetMiner(Material mat, String top) { super(mat, top); @@ -55,4 +58,14 @@ public class DetMiner extends BlockPillar implements IBomb { } } + @Override + public boolean canEnter(World world, int x, int y, int z, ForgeDirection dir, IConveyorItem entity) { + return true; + } + + @Override + public void onEnter(World world, int x, int y, int z, ForgeDirection dir, IConveyorItem entity) { + this.explode(world, x, y, z); + } + } diff --git a/src/main/java/com/hbm/blocks/network/BlockConveyor.java b/src/main/java/com/hbm/blocks/network/BlockConveyor.java index fbc7b563c..dc9235b89 100644 --- a/src/main/java/com/hbm/blocks/network/BlockConveyor.java +++ b/src/main/java/com/hbm/blocks/network/BlockConveyor.java @@ -3,6 +3,7 @@ package com.hbm.blocks.network; import com.hbm.entity.item.EntityMovingItem; import com.hbm.lib.RefStrings; +import api.hbm.conveyor.IConveyorBelt; import cpw.mods.fml.client.registry.RenderingRegistry; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -16,10 +17,12 @@ import net.minecraft.item.ItemStack; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.IIcon; import net.minecraft.util.MathHelper; +import net.minecraft.util.Vec3; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; -public class BlockConveyor extends Block { +public class BlockConveyor extends Block implements IConveyorBelt { @SideOnly(Side.CLIENT) protected IIcon sideIcon; @@ -47,6 +50,53 @@ public class BlockConveyor extends Block { return super.getIcon(side, metadata); } + @Override + public Vec3 getTravelLocation(World world, int x, int y, int z, Vec3 itemPos, double speed) { + + /*Vec3 snap = this.getClosestSnappingPosition(world, x, y, z, itemPos); + ForgeDirection dir = ForgeDirection.getOrientation(world.getBlockMetadata(x, y, z)); + return Vec3.createVectorHelper(snap.xCoord + dir.offsetX * speed, snap.yCoord, snap.zCoord + dir.offsetZ * speed);*/ + + Vec3 snap = this.getClosestSnappingPosition(world, x, y, z, itemPos); + /*double dist = snap.distanceTo(itemPos); + + if(dist > speed) { + + return Vec3.createVectorHelper( + itemPos.xCoord + (snap.xCoord - itemPos.xCoord) / dist * speed, + snap.yCoord, + itemPos.zCoord + (snap.zCoord - itemPos.zCoord) / dist * speed + ); + } else { + ForgeDirection dir = ForgeDirection.getOrientation(world.getBlockMetadata(x, y, z)); + return Vec3.createVectorHelper(snap.xCoord + dir.offsetX * speed, snap.yCoord, snap.zCoord + dir.offsetZ * speed); + }*/ + + ForgeDirection dir = ForgeDirection.getOrientation(world.getBlockMetadata(x, y, z)); + return Vec3.createVectorHelper(snap.xCoord - dir.offsetX * speed, snap.yCoord, snap.zCoord - dir.offsetZ * speed); + } + + @Override + public Vec3 getClosestSnappingPosition(World world, int x, int y, int z, Vec3 itemPos) { + + ForgeDirection dir = ForgeDirection.getOrientation(world.getBlockMetadata(x, y, z)); + + itemPos.xCoord = MathHelper.clamp_double(itemPos.xCoord, x, x + 1); + itemPos.zCoord = MathHelper.clamp_double(itemPos.zCoord, z, z + 1); + + double posX = x + 0.5; + double posZ = z + 0.5; + + if(dir.offsetX != 0) { + posX = itemPos.xCoord; + } + if(dir.offsetZ != 0) { + posZ = itemPos.zCoord; + } + + return Vec3.createVectorHelper(posX, y + 0.25, posZ); + } + @Override public void onEntityCollidedWithBlock(World world, int x, int y, int z, Entity entity) { @@ -108,5 +158,4 @@ public class BlockConveyor extends Block { world.setBlockMetadataWithNotify(x, y, z, 4, 2); } } - } diff --git a/src/main/java/com/hbm/entity/item/EntityMovingItem.java b/src/main/java/com/hbm/entity/item/EntityMovingItem.java index a4bfd6399..100ed0d60 100644 --- a/src/main/java/com/hbm/entity/item/EntityMovingItem.java +++ b/src/main/java/com/hbm/entity/item/EntityMovingItem.java @@ -1,10 +1,14 @@ package com.hbm.entity.item; import com.hbm.blocks.ModBlocks; +import com.hbm.util.fauxpointtwelve.BlockPos; +import api.hbm.conveyor.IConveyorBelt; import api.hbm.conveyor.IConveyorItem; +import api.hbm.conveyor.IEnterableBlock; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; import net.minecraft.entity.Entity; import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; @@ -12,6 +16,7 @@ import net.minecraft.init.Blocks; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.DamageSource; +import net.minecraft.util.Vec3; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @@ -104,7 +109,13 @@ public class EntityMovingItem extends Entity implements IConveyorItem { if(!worldObj.isRemote) { - if(worldObj.getBlock((int) Math.floor(posX), (int) Math.floor(posY), (int) Math.floor(posZ)) != ModBlocks.conveyor) { + int blockX = (int) Math.floor(posX); + int blockY = (int) Math.floor(posY); + int blockZ = (int) Math.floor(posZ); + + Block b = worldObj.getBlock(blockX, blockY, blockZ); + + if(!(b instanceof IConveyorBelt)) { this.setDead(); EntityItem item = new EntityItem(worldObj, posX, posY, posZ, this.getItemStack()); item.motionX = this.motionX * 3; @@ -113,9 +124,16 @@ public class EntityMovingItem extends Entity implements IConveyorItem { item.velocityChanged = true; worldObj.spawnEntityInWorld(item); return; + } else { + + Vec3 target = ((IConveyorBelt) b).getTravelLocation(worldObj, blockX, blockY, blockZ, Vec3.createVectorHelper(posX, posY, posZ), 0.0625); + //this.worldObj.spawnParticle("reddust", target.xCoord, target.yCoord, target.zCoord, 0, 0, 0); + this.motionX = target.xCoord - posX; + this.motionY = target.yCoord - posY; + this.motionZ = target.zCoord - posZ; } - if(worldObj.getBlock((int) Math.floor(posX), (int) Math.floor(posY), (int) Math.floor(posZ)) == ModBlocks.conveyor) { + /*if(worldObj.getBlock((int) Math.floor(posX), (int) Math.floor(posY), (int) Math.floor(posZ)) == ModBlocks.conveyor) { if(schedule <= 0) { ForgeDirection dir = ForgeDirection.getOrientation(worldObj.getBlockMetadata((int) Math.floor(posX), (int) Math.floor(posY), (int) Math.floor(posZ))); @@ -139,9 +157,27 @@ public class EntityMovingItem extends Entity implements IConveyorItem { } schedule--; - } + }*/ + BlockPos lastPos = new BlockPos(posX, posY, posZ); this.moveEntity(motionX, motionY, motionZ); + BlockPos newPos = new BlockPos(posX, posY, posZ); + + if(!lastPos.equals(newPos)) { + + Block newBlock = worldObj.getBlock(newPos.getX(), newPos.getY(), newPos.getZ()); + + if(newBlock instanceof IEnterableBlock) { + + ForgeDirection dir = ForgeDirection.UNKNOWN; + IEnterableBlock enterable = (IEnterableBlock) newBlock; + + if(enterable.canEnter(worldObj, newPos.getX(), newPos.getY(), newPos.getZ(), dir, this)) { + enterable.onEnter(worldObj, newPos.getX(), newPos.getY(), newPos.getZ(), dir, this); + this.setDead(); + } + } + } } } diff --git a/src/main/java/com/hbm/util/fauxpointtwelve/BlockPos.java b/src/main/java/com/hbm/util/fauxpointtwelve/BlockPos.java index 84ee5dff3..5cfe629a7 100644 --- a/src/main/java/com/hbm/util/fauxpointtwelve/BlockPos.java +++ b/src/main/java/com/hbm/util/fauxpointtwelve/BlockPos.java @@ -7,7 +7,7 @@ import net.minecraft.util.MathHelper; * Adjusted code from MC 1.12 (com.minecraft.util.math.BlockPos) */ public class BlockPos { - + private final int x; private final int y; private final int z; @@ -55,4 +55,32 @@ public class BlockPos { public int getZ() { return this.z; } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + x; + result = prime * result + y; + result = prime * result + z; + return result; + } + + @Override + public boolean equals(Object obj) { + if(this == obj) + return true; + if(obj == null) + return false; + if(getClass() != obj.getClass()) + return false; + BlockPos other = (BlockPos) obj; + if(x != other.x) + return false; + if(y != other.y) + return false; + if(z != other.z) + return false; + return true; + } } diff --git a/src/main/resources/assets/hbm/textures/blocks/crane_in.png b/src/main/resources/assets/hbm/textures/blocks/crane_in.png index 01968dbd4b93e11b1bb00128b0bd1093b4b2fc80..9fd5029270c681fc90c1fa7faeff18884349c4b6 100644 GIT binary patch delta 177 zcmV;i08an!0o?(RG=G#yL_t(Ijir-84nrXbM5j%667I$&yqux?j=`}@&iJ1Zm3 z3y|?vYklGmJ^F!&wv1*r0Nu>YDYL4Ah+t-;17=2REd>w}sOsn-YHg;^Q7?cMB-&F5 zh#<2i-)8^-aCf-->d6|A(R2g=D5d-k$ObC}?4v0x3u3%zCpvJ=8 zU=#?rzkwnAmzl|ou+|n1=)7N)QcK2^QU&a0t@V^S#)wjilv2$=YmIYm3Sf*O##l3G zrPkATsXu@bq}8V;patnQ`P2gdpIV_3(^x$RnBQ>dt*;xUiOZP5=iw@1FrJ(brulP_dzL|jy{8pDn)5ORs`rdtA67jOpYdt`|Ae=n qeU0Bq{jlK?TsbMFKhtK#S!vEiwwLUz1a1M{&EVDsw z>HGKZ&wqG&x;}@v!fY=c`J>zh1>fJrvVlNtZS9^KiG)MX?1K)hU_5-9p(sd^nb}13 l&?PfX236ySn;Qif7*y=dpYA?6F_{4fJYD@<);T3K0RS(6|_5;e~n&M5L)vRd;}hkWxAnYv7p=A)u=J1U2=pKdfNNIRoImzx1Z= zY`+%$fG+`0{s4dj3P2gR#IU}1{4{TXC(Y)aUE`}`suQhR02C62N*0lPfw!*8|U%q?k z9bX?B8rmcf3wHO6W0WVOy{J@_f1G>PSB#j*9xz{EA1Numt0-0wt)4e z>CY?73{U2qwCvy4!)W|!8iT^pKk^3F5xxgbg>Wrkn8L9Acj>7odzZ6R*qA$TO27SN l7oM~+|M9}qUo{a|x%4!{}>vWxf~?7 vAK9?4{Eta~gZkNLb7LQ`PF^LvHi|*0%}Z>Sne1_(OBg&|{an^LB{Ts5Oejib literal 0 HcmV?d00001 From ba6c0a8bb70bcc4adc9e254beb09d78b84c81cd8 Mon Sep 17 00:00:00 2001 From: Vaern Date: Thu, 2 Jun 2022 17:08:44 -0700 Subject: [PATCH 36/80] Fixed the enrichment percentage and RBMK localization for MOX Might as well! --- src/main/java/com/hbm/items/ModItems.java | 2 +- src/main/java/com/hbm/items/machine/ItemRBMKRod.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index a3b7cd73b..a0951d2d3 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -3648,7 +3648,7 @@ public class ModItems { rbmk_pellet_hea242 = (ItemRBMKPellet) new ItemRBMKPellet("Highly Enriched Americium-242").setUnlocalizedName("rbmk_pellet_hea242").setTextureName(RefStrings.MODID + ":rbmk_pellet_hea242"); rbmk_pellet_men = (ItemRBMKPellet) new ItemRBMKPellet("Medium Enriched Neptunium-237").setUnlocalizedName("rbmk_pellet_men").setTextureName(RefStrings.MODID + ":rbmk_pellet_men"); rbmk_pellet_hen = (ItemRBMKPellet) new ItemRBMKPellet("Highly Enriched Neptunium-237").setUnlocalizedName("rbmk_pellet_hen").setTextureName(RefStrings.MODID + ":rbmk_pellet_hen"); - rbmk_pellet_mox = (ItemRBMKPellet) new ItemRBMKPellet("Mixed LEU & LEP Oxide").setUnlocalizedName("rbmk_pellet_mox").setTextureName(RefStrings.MODID + ":rbmk_pellet_mox"); + rbmk_pellet_mox = (ItemRBMKPellet) new ItemRBMKPellet("Mixed MEU & LEP Oxide").setUnlocalizedName("rbmk_pellet_mox").setTextureName(RefStrings.MODID + ":rbmk_pellet_mox"); rbmk_pellet_les = (ItemRBMKPellet) new ItemRBMKPellet("Low Enriched Schrabidium-326").setUnlocalizedName("rbmk_pellet_les").setTextureName(RefStrings.MODID + ":rbmk_pellet_les"); rbmk_pellet_mes = (ItemRBMKPellet) new ItemRBMKPellet("Medium Enriched Schrabidium-326").setUnlocalizedName("rbmk_pellet_mes").setTextureName(RefStrings.MODID + ":rbmk_pellet_mes"); rbmk_pellet_hes = (ItemRBMKPellet) new ItemRBMKPellet("Highly Enriched Schrabidium-326").setUnlocalizedName("rbmk_pellet_hes").setTextureName(RefStrings.MODID + ":rbmk_pellet_hes"); diff --git a/src/main/java/com/hbm/items/machine/ItemRBMKRod.java b/src/main/java/com/hbm/items/machine/ItemRBMKRod.java index 6f0c7a72e..f88cc9b0b 100644 --- a/src/main/java/com/hbm/items/machine/ItemRBMKRod.java +++ b/src/main/java/com/hbm/items/machine/ItemRBMKRod.java @@ -287,7 +287,7 @@ public class ItemRBMKRod extends Item { if(enrichment < 1) { enrichment = reactivityModByEnrichment(enrichment); String reactivity = EnumChatFormatting.YELLOW + "" + ((int)(this.reactivity * enrichment * 1000D) / 1000D) + EnumChatFormatting.WHITE; - String enrichmentPer = EnumChatFormatting.GOLD + " (" + ((int)(enrichment * 1000D) / 1000D) + "%)"; + String enrichmentPer = EnumChatFormatting.GOLD + " (" + ((int)(enrichment * 1000D) / 10D) + "%)"; return String.format(function, selfRate > 0 ? "(x" + EnumChatFormatting.RED + " + " + selfRate + "" + EnumChatFormatting.WHITE + ")" : "x", reactivity).concat(enrichmentPer); } From e89464038b966080c883e9fe999a18838a6ad3e2 Mon Sep 17 00:00:00 2001 From: Boblet Date: Fri, 3 Jun 2022 14:57:46 +0200 Subject: [PATCH 37/80] and the lord yoinketh away --- src/main/java/com/hbm/blocks/ModBlocks.java | 14 +++-- .../com/hbm/blocks/network/BlockConveyor.java | 4 +- .../hbm/blocks/network/BlockCraneBase.java | 48 ++++++++++++++++++ .../hbm/blocks/network/CraneExtractor.java | 35 +++++++++++++ .../com/hbm/blocks/network/CraneInserter.java | 35 +++++++++++++ .../hbm/textures/blocks/crane_in_top.png | Bin 245 -> 253 bytes .../hbm/textures/blocks/crane_out_top.png | Bin 253 -> 244 bytes .../gui/storage/gui_crane_ejector.png | Bin 0 -> 2399 bytes 8 files changed, 131 insertions(+), 5 deletions(-) create mode 100644 src/main/java/com/hbm/blocks/network/BlockCraneBase.java create mode 100644 src/main/java/com/hbm/blocks/network/CraneExtractor.java create mode 100644 src/main/java/com/hbm/blocks/network/CraneInserter.java create mode 100644 src/main/resources/assets/hbm/textures/gui/storage/gui_crane_ejector.png diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 2f25a1301..86d8a7b0e 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -746,6 +746,8 @@ public class ModBlocks { public static Block fluid_duct_neo; public static Block conveyor; + public static Block crane_extractor; + public static Block crane_inserter; public static Block chain; @@ -1893,9 +1895,12 @@ public class ModBlocks { gas_duct = new BlockGasDuct(Material.iron).setBlockName("gas_duct").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":gas_duct_icon"); fluid_duct = new BlockFluidDuct(Material.iron).setBlockName("fluid_duct").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":fluid_duct_icon"); fluid_duct_solid = new BlockFluidDuctSolid(Material.iron).setBlockName("fluid_duct_solid").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":fluid_duct_solid"); - conveyor = new BlockConveyor(Material.iron).setBlockName("conveyor").setHardness(0.0F).setResistance(2.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":conveyor"); fluid_duct_neo = new FluidDuctStandard(Material.iron).setBlockName("fluid_duct_neo").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pipe_neo"); + conveyor = new BlockConveyor().setBlockName("conveyor").setHardness(0.0F).setResistance(2.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":conveyor"); + crane_extractor = new CraneExtractor().setBlockName("crane_extractor").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); + crane_inserter = new CraneInserter().setBlockName("crane_extractor").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); + chain = new BlockChain(Material.iron).setBlockName("dungeon_chain").setHardness(0.25F).setResistance(2.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":chain"); ladder_sturdy = new BlockNTMLadder().setBlockName("ladder_sturdy").setHardness(0.25F).setResistance(2.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":ladder_sturdy"); @@ -3048,9 +3053,12 @@ public class ModBlocks { GameRegistry.registerBlock(fluid_duct, fluid_duct.getUnlocalizedName()); GameRegistry.registerBlock(fluid_duct_neo, ItemBlockBase.class, fluid_duct_neo.getUnlocalizedName()); GameRegistry.registerBlock(fluid_duct_solid, fluid_duct_solid.getUnlocalizedName()); - GameRegistry.registerBlock(conveyor, conveyor.getUnlocalizedName()); - GameRegistry.registerBlock(chain, chain.getUnlocalizedName()); + GameRegistry.registerBlock(crane_extractor, crane_extractor.getUnlocalizedName()); + GameRegistry.registerBlock(crane_inserter, crane_inserter.getUnlocalizedName()); + GameRegistry.registerBlock(conveyor, conveyor.getUnlocalizedName()); + + GameRegistry.registerBlock(chain, chain.getUnlocalizedName()); GameRegistry.registerBlock(ladder_sturdy, ladder_sturdy.getUnlocalizedName()); GameRegistry.registerBlock(ladder_iron, ladder_iron.getUnlocalizedName()); GameRegistry.registerBlock(ladder_gold, ladder_gold.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/network/BlockConveyor.java b/src/main/java/com/hbm/blocks/network/BlockConveyor.java index dc9235b89..70ca3a8c4 100644 --- a/src/main/java/com/hbm/blocks/network/BlockConveyor.java +++ b/src/main/java/com/hbm/blocks/network/BlockConveyor.java @@ -27,8 +27,8 @@ public class BlockConveyor extends Block implements IConveyorBelt { @SideOnly(Side.CLIENT) protected IIcon sideIcon; - public BlockConveyor(Material p_i45394_1_) { - super(p_i45394_1_); + public BlockConveyor() { + super(Material.iron); } @Override diff --git a/src/main/java/com/hbm/blocks/network/BlockCraneBase.java b/src/main/java/com/hbm/blocks/network/BlockCraneBase.java new file mode 100644 index 000000000..a979bdb18 --- /dev/null +++ b/src/main/java/com/hbm/blocks/network/BlockCraneBase.java @@ -0,0 +1,48 @@ +package com.hbm.blocks.network; + +import com.hbm.lib.RefStrings; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.BlockContainer; +import net.minecraft.block.BlockPistonBase; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.item.ItemStack; +import net.minecraft.util.IIcon; +import net.minecraft.world.World; + +public abstract class BlockCraneBase extends BlockContainer { + + @SideOnly(Side.CLIENT) protected IIcon iconSide; + @SideOnly(Side.CLIENT) protected IIcon iconIn; + @SideOnly(Side.CLIENT) protected IIcon iconSideIn; + @SideOnly(Side.CLIENT) protected IIcon iconOut; + @SideOnly(Side.CLIENT) protected IIcon iconSideOut; + @SideOnly(Side.CLIENT) protected IIcon iconDirectional; + + public BlockCraneBase(Material mat) { + super(mat); + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister iconRegister) { + this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":crane_top"); + this.iconSide = iconRegister.registerIcon(RefStrings.MODID + ":crane_side"); + this.iconIn = iconRegister.registerIcon(RefStrings.MODID + ":crane_in"); + this.iconSideIn = iconRegister.registerIcon(RefStrings.MODID + ":crane_side_in"); + this.iconOut = iconRegister.registerIcon(RefStrings.MODID + ":crane_out"); + this.iconSideOut = iconRegister.registerIcon(RefStrings.MODID + ":crane_side_out"); + } + + @Override + @SideOnly(Side.CLIENT) + public abstract IIcon getIcon(int side, int metadata); + + public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack stack) { + int l = BlockPistonBase.determineOrientation(world, x, y, z, player); + world.setBlockMetadataWithNotify(x, y, z, l, 2); + } +} diff --git a/src/main/java/com/hbm/blocks/network/CraneExtractor.java b/src/main/java/com/hbm/blocks/network/CraneExtractor.java new file mode 100644 index 000000000..53bdff754 --- /dev/null +++ b/src/main/java/com/hbm/blocks/network/CraneExtractor.java @@ -0,0 +1,35 @@ +package com.hbm.blocks.network; + +import com.hbm.lib.RefStrings; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.IIcon; +import net.minecraft.world.World; + +public class CraneExtractor extends BlockCraneBase { + + public CraneExtractor() { + super(Material.iron); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + return null; + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister iconRegister) { + super.registerBlockIcons(iconRegister); + this.iconDirectional = iconRegister.registerIcon(RefStrings.MODID + ":crane_out_top"); + } + + @Override + public IIcon getIcon(int side, int metadata) { + return null; + } +} diff --git a/src/main/java/com/hbm/blocks/network/CraneInserter.java b/src/main/java/com/hbm/blocks/network/CraneInserter.java new file mode 100644 index 000000000..f1fd9276b --- /dev/null +++ b/src/main/java/com/hbm/blocks/network/CraneInserter.java @@ -0,0 +1,35 @@ +package com.hbm.blocks.network; + +import com.hbm.lib.RefStrings; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.IIcon; +import net.minecraft.world.World; + +public class CraneInserter extends BlockCraneBase{ + + public CraneInserter() { + super(Material.iron); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + return null; + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister iconRegister) { + super.registerBlockIcons(iconRegister); + this.iconDirectional = iconRegister.registerIcon(RefStrings.MODID + ":crane_in_top"); + } + + @Override + public IIcon getIcon(int side, int metadata) { + return null; + } +} diff --git a/src/main/resources/assets/hbm/textures/blocks/crane_in_top.png b/src/main/resources/assets/hbm/textures/blocks/crane_in_top.png index c09006451459f9a9260411c130f5b8604c4538f3..a46e294c95ea17df7cca182062b53a810eb44a29 100644 GIT binary patch delta 209 zcmV;?051Ra0sR4xG=H>7L_t(IjkS}p4Z<)KM33MKeR+mt6o#NCRaz#AcK}+Jp-p2c zBb+Q!p->=$NtDC}an;x9?&(Wke^pggj~}G`ARPILC)I}MNy0Z zYG`P!u{#|nS6&1FfVDOn@ZU2g0haC^D$FY2`4}RS1o?QT&`8w-@;OAACf$;s00000 LNkvXXu0mjf5lLA& delta 201 zcmV;)05<>q0rdfpG=Ho~L_t(IjjfYG4uUWcMW3WAGwBgrdom7C&moC7C@1kMjYpU? zZgnAz6e!Z*U$v9}UNV6m+O~bMBPJb0qza5Negz4()^37T6%irENRx(J;c2&7>21nx zfte0ewOC$Sb0z?|b{znZ;r;~9K<_;vgseMT!CK43xePuQ;6g<~lH8o*G{E-)TwEbZ zdhY>>@T%Y!nDW2>VD0lwGwvGrJPZ-3l4Or*JgChZ38FpHJ~|NE00000NkvXXu0mjf DqVZPA diff --git a/src/main/resources/assets/hbm/textures/blocks/crane_out_top.png b/src/main/resources/assets/hbm/textures/blocks/crane_out_top.png index a46e294c95ea17df7cca182062b53a810eb44a29..224864e9cb3f1ce70f3b4750b43a4bc8b0f0d564 100644 GIT binary patch delta 200 zcmV;(05|{r0rUZoG=Hl}L_t(IjkS}(4Z<)CMITj9$jS&+S78!*>Xk|84C!VSBYZ_% z;Xoq_q$LsJpCZTqIgaIB-}g6uP#q6uR%8qzJOR<{oXavx!psOEP{m-b`8~JV$jj0u zKoXKR0rlF2Bu>LX1B~7?O;i30qWKD3fJ4{Owrw6j66e{xpFv{{a9n|WwBVd$^gdZF zrQ{#1^_$Xv$5;gTHt(gDxivf%!_0~xFUzzHl7L_t(IjkS}p4Z<)KM33MKeR+mt6o#NCRaz#AcK}+Jp-p2c zBb+Q!p->=$NtDC}an;x9?&(Wke^pggj~}G`ARPILC)I}MNy0Z zYG`P!u{#|nS6&1FfVDOn@ZU2g0haC^D$FY2`4}RS1o?QT&`8w-@;OAACf$;s00000 LNkvXXu0mjf5O`TQ diff --git a/src/main/resources/assets/hbm/textures/gui/storage/gui_crane_ejector.png b/src/main/resources/assets/hbm/textures/gui/storage/gui_crane_ejector.png new file mode 100644 index 0000000000000000000000000000000000000000..506cf9f4527a4eed32a6f5cb886caeac18a5d249 GIT binary patch literal 2399 zcmbtVX;2eb5`KwcAgGX_0)lb`0l|_(9=BOu zO&$QS*~t;>3IIfELV(;)QssHM=)6?H!VfyR$w?(%?yqzJ;L1)|2e;_FX`$&wb$8{T zI@?0}#qcTLwwpmAsev1c+#Gnt2Pqf?@3dC2 z>xIVby<1-vAPro{2(fu_3RLTiaI++ydP6`u8RlrrWN)~YxaCFZtv?m^J!-0$W4)Vpnz;$ zjzZ~WIAO7$rl-9IDsqqMg+)h4PuCQM7T=6b;)ecWS04_c*0#;;XJf7#xArL+83D#GmC)_09+FOKEIuT%Ku| zMWKADR5V4hGOj+r(6GD4WHOgWOSvV>(;XAnsXiX?_9pirMErcG3($DE(%Ug2&Q0WqMncN^*r7bux_wl;HIQvRT1t@;(`VpMyN8<3Ti z4Q80CZt}I&P%*=E2Yur5Vw4-bbK~2MihafhACGa5*6IP2(ct4LRfS|z4MwV(e@2$A zOGk$e>ivt6R`&r@=A-sifH1O!y?g!XtNw_{8vGD_Z5LSX0tg|0?p(J6flco zV#T(%wQW~qFv$lPYc3k-rd7$^X}Sk7y-X>fO8fcUXPRnPF?aey<@U{99(2{0{4CEt zbQ`x6d$=;d24!^dj8jpJ#gIfo`7}G*dUrZCHMKqqYTUrDYZ;*VyMdki?9g1RdUw-c z@67fDGnhe+JgvIFNxiaSp=SMOFp)l{MDn`@g3Vxoh6%5G&p^p^U7oPI29{kuuVRnC zGqoapcBxGoZ2{}+X`(^d2p5*U*Ch8W z`HqxoMpadnDx=lHc+ursWZ4iG0~=Wj&j;POwcNh7f;IsL1;d0XAOGw(Y_h);_A!mYIM>C5<}lX6&2p*a zU$;B9D9i9jCiLOC@M{APTXPDn`c#shz7Yy7ZS1_Pf4g47yFtBk{tLs%VnfQ?yFgk| zaMW;4#Ak!RyqKuLa@UV&q0nn3Y>X&_cyJhkxKXIn`A~kyC_^)}iU>*P8*T&DPcms| z12QAfWe365fXw}pgEVtF8npZo3;```v!XpMTNP0P62WeI2KAiLYyFmEsQXt z)<;V&FSxu^V(YAmDS1pLKiW2}qu!}c24htWtk0i@!bpc$KwRb~)^hd%4VgxtcXzAE}8dDwnIV-)|U2ps$e3qKV5BSBKv{om6h3+iih5H}rh?4{Gt@9e%U*M~&N znB(Ci2O6MnG`y}{Ke=X!$6rj-{d3Cy46K6p%z(1P9Oq7|O{?HdKY;yfaBmH(KC>d@ zw<8<9IquB-{Maz`l7)G+WZA@C!>VVF?`XKv#Z~iY$6D*@I8>b>x Scm%<>L{5kC*ouRstN#SkuMzzK literal 0 HcmV?d00001 From 48c8ab84dbc49ed0a934a0368105626e92c2ac73 Mon Sep 17 00:00:00 2001 From: Vaern Date: Fri, 3 Jun 2022 20:40:25 -0700 Subject: [PATCH 38/80] Modified RBMK fuels, added effects for boron/foam on RBMK and ZIRNOX --- .../com/hbm/blocks/generic/BlockLayering.java | 3 +- .../hbm/blocks/machine/ZirnoxDestroyed.java | 29 +++++++++++++++---- .../machine/rbmk/RBMKDebrisBurning.java | 10 +++++-- .../machine/rbmk/RBMKDebrisRadiating.java | 10 +++++-- src/main/java/com/hbm/items/ModItems.java | 19 +++++++----- .../com/hbm/items/machine/ItemRBMKRod.java | 2 +- .../java/com/hbm/items/tool/ItemDyatlov.java | 25 ++++++++++++++-- .../machine/TileEntityZirnoxDestroyed.java | 25 +++++++++++++--- 8 files changed, 97 insertions(+), 26 deletions(-) diff --git a/src/main/java/com/hbm/blocks/generic/BlockLayering.java b/src/main/java/com/hbm/blocks/generic/BlockLayering.java index 21d6ed749..e648823ee 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockLayering.java +++ b/src/main/java/com/hbm/blocks/generic/BlockLayering.java @@ -2,6 +2,7 @@ package com.hbm.blocks.generic; import java.util.Random; +import com.hbm.blocks.machine.ZirnoxDestroyed; import com.hbm.blocks.machine.rbmk.RBMKDebris; import cpw.mods.fml.relauncher.Side; @@ -55,7 +56,7 @@ public class BlockLayering extends Block { public boolean canPlaceBlockAt(World world, int x, int y, int z) { Block block = world.getBlock(x, y - 1, z); - if(block instanceof RBMKDebris) + if(block instanceof RBMKDebris || block instanceof ZirnoxDestroyed) return true; return block != Blocks.ice && block != Blocks.packed_ice ? (block.isLeaves(world, x, y - 1, z) ? true : (block == this && (world.getBlockMetadata(x, y - 1, z) & 7) == 7 ? true : block.isOpaqueCube() && block.getMaterial().blocksMovement())) : false; diff --git a/src/main/java/com/hbm/blocks/machine/ZirnoxDestroyed.java b/src/main/java/com/hbm/blocks/machine/ZirnoxDestroyed.java index 68d9f6a80..62f397474 100644 --- a/src/main/java/com/hbm/blocks/machine/ZirnoxDestroyed.java +++ b/src/main/java/com/hbm/blocks/machine/ZirnoxDestroyed.java @@ -13,6 +13,7 @@ import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.TileEntityZirnoxDestroyed; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; +import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; @@ -47,13 +48,29 @@ public class ZirnoxDestroyed extends BlockDummyable { @Override public void updateTick(World world, int x, int y, int z, Random rand) { - - ForgeDirection dir = ForgeDirection.getOrientation(rand.nextInt(6)); - - if(rand.nextInt(4) == 0 && world.getBlock(x + dir.offsetX, y + dir.offsetY + 1, z + dir.offsetZ) == Blocks.air) { - world.setBlock(x + dir.offsetX, y + dir.offsetY + 1, z + dir.offsetZ, ModBlocks.gas_meltdown); + + Block block = world.getBlock(x, y + 1, z); + + if(block == Blocks.air) { + if(rand.nextInt(10) == 0) + world.setBlock(x, y + 1, z, ModBlocks.gas_meltdown); + + } else if(block == ModBlocks.foam_layer || block == ModBlocks.block_foam) { + if(rand.nextInt(25) == 0) { + int pos[] = this.findCore(world, x, y, z); + + if(pos != null) { + TileEntity te = world.getTileEntity(pos[0], pos[1], pos[2]); + + if(te instanceof TileEntityZirnoxDestroyed) + ((TileEntityZirnoxDestroyed)te).onFire = false; + } + } } - + + if(rand.nextInt(10) == 0 && world.getBlock(x, y + 1, z) == Blocks.air) + world.setBlock(x, y + 1, z, ModBlocks.gas_meltdown); + super.updateTick(world, x, y, z, rand); } diff --git a/src/main/java/com/hbm/blocks/machine/rbmk/RBMKDebrisBurning.java b/src/main/java/com/hbm/blocks/machine/rbmk/RBMKDebrisBurning.java index 7e9d8dd9c..a868d493f 100644 --- a/src/main/java/com/hbm/blocks/machine/rbmk/RBMKDebrisBurning.java +++ b/src/main/java/com/hbm/blocks/machine/rbmk/RBMKDebrisBurning.java @@ -8,6 +8,7 @@ import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; +import net.minecraft.block.Block; import net.minecraft.init.Blocks; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; @@ -37,11 +38,16 @@ public class RBMKDebrisBurning extends RBMKDebris { ForgeDirection dir = ForgeDirection.getOrientation(rand.nextInt(6)); - if(rand.nextInt(7) == 0 && world.getBlock(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ) == Blocks.air) { + if(rand.nextInt(10) == 0 && world.getBlock(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ) == Blocks.air) { world.setBlock(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ, ModBlocks.gas_meltdown); } - if(rand.nextInt(100) == 0) { + Block block = world.getBlock(x, y + 1, z); + + //Foam helps stop the fire. + int chance = block == ModBlocks.foam_layer || block == ModBlocks.block_foam ? 20 : 100; + + if(rand.nextInt(chance) == 0) { world.setBlock(x, y, z, ModBlocks.pribris); } else { world.scheduleBlockUpdate(x, y, z, this, this.tickRate(world)); diff --git a/src/main/java/com/hbm/blocks/machine/rbmk/RBMKDebrisRadiating.java b/src/main/java/com/hbm/blocks/machine/rbmk/RBMKDebrisRadiating.java index 599da3790..60eee96ad 100644 --- a/src/main/java/com/hbm/blocks/machine/rbmk/RBMKDebrisRadiating.java +++ b/src/main/java/com/hbm/blocks/machine/rbmk/RBMKDebrisRadiating.java @@ -13,6 +13,7 @@ import com.hbm.util.ContaminationUtil.ContaminationType; import com.hbm.util.ContaminationUtil.HazardType; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; +import net.minecraft.block.Block; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; @@ -50,11 +51,16 @@ public class RBMKDebrisRadiating extends RBMKDebrisBurning { ForgeDirection dir = ForgeDirection.getOrientation(rand.nextInt(6)); - if(rand.nextInt(5) == 0 && world.getBlock(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ) == Blocks.air) { + if(rand.nextInt(10) == 0 && world.getBlock(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ) == Blocks.air) { world.setBlock(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ, ModBlocks.gas_meltdown); } - if(rand.nextInt(1000) == 0) { + Block block = world.getBlock(x, y + 1, z); + + //Boron sand helps stop the fission reaction. + int chance = block == ModBlocks.sand_boron_layer || block == ModBlocks.sand_boron ? 50 : 1000; + + if(rand.nextInt(chance) == 0) { int meta = world.getBlockMetadata(x, y, z); diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 1318911e2..6f10f3acf 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -3684,14 +3684,14 @@ public class ModItems { .setUnlocalizedName("rbmk_fuel_meu").setTextureName(RefStrings.MODID + ":rbmk_fuel_meu"); rbmk_fuel_heu233 = (ItemRBMKRod) new ItemRBMKRod(rbmk_pellet_heu233) .setYield(100000000D) - .setStats(50) - .setFunction(EnumBurnFunc.SQUARE_ROOT) + .setStats(27.5D) + .setFunction(EnumBurnFunc.LINEAR) .setHeat(1.25D) .setMeltingPoint(2865) .setUnlocalizedName("rbmk_fuel_heu233").setTextureName(RefStrings.MODID + ":rbmk_fuel_heu233"); rbmk_fuel_heu235 = (ItemRBMKRod) new ItemRBMKRod(rbmk_pellet_heu235) .setYield(100000000D) - .setStats(40) + .setStats(50) //Consistency with HEN; its critical mass is too high to justify a linear function .setFunction(EnumBurnFunc.SQUARE_ROOT) .setMeltingPoint(2865) .setUnlocalizedName("rbmk_fuel_heu235").setTextureName(RefStrings.MODID + ":rbmk_fuel_heu235"); @@ -3768,7 +3768,7 @@ public class ModItems { .setDepletionFunction(EnumDepleteFunc.RAISING_SLOPE) .setHeat(0.75) .setMeltingPoint(2800) - .setNeutronTypes(NType.FAST, NType.FAST) + .setNeutronTypes(NType.ANY, NType.FAST) //Build-up of Pu-239 leads to both speeds of neutrons grooving .setUnlocalizedName("rbmk_fuel_men").setTextureName(RefStrings.MODID + ":rbmk_fuel_men"); rbmk_fuel_hen = (ItemRBMKRod) new ItemRBMKRod(rbmk_pellet_hen) .setYield(100000000D) @@ -3788,9 +3788,9 @@ public class ModItems { .setYield(100000000D) .setStats(50) .setFunction(EnumBurnFunc.SQUARE_ROOT) - .setDepletionFunction(EnumDepleteFunc.RAISING_SLOPE) .setHeat(1.25D) .setMeltingPoint(2500) + .setNeutronTypes(NType.SLOW, NType.SLOW) //Beryllium Moderation .setUnlocalizedName("rbmk_fuel_les").setTextureName(RefStrings.MODID + ":rbmk_fuel_les"); rbmk_fuel_mes = (ItemRBMKRod) new ItemRBMKRod(rbmk_pellet_mes) .setYield(100000000D) @@ -3824,13 +3824,14 @@ public class ModItems { .setMeltingPoint(5211).setUnlocalizedName("rbmk_fuel_heaus").setTextureName(RefStrings.MODID + ":rbmk_fuel_heaus"); rbmk_fuel_po210be = (ItemRBMKRod) new ItemRBMKRod(rbmk_pellet_po210be) .setYield(25000000D) - .setStats(15, 40) - .setFunction(EnumBurnFunc.SQUARE_ROOT) + .setStats(0D, 50) + .setFunction(EnumBurnFunc.PASSIVE) .setDepletionFunction(EnumDepleteFunc.LINEAR) .setXenon(0.0D, 50D) .setHeat(0.1D) .setDiffusion(0.05D) .setMeltingPoint(1287) + .setNeutronTypes(NType.SLOW, NType.SLOW) //Beryllium Moderation .setUnlocalizedName("rbmk_fuel_po210be").setTextureName(RefStrings.MODID + ":rbmk_fuel_po210be"); rbmk_fuel_ra226be = (ItemRBMKRod) new ItemRBMKRod(rbmk_pellet_ra226be) .setYield(100000000D) @@ -3841,14 +3842,16 @@ public class ModItems { .setHeat(0.035D) .setDiffusion(0.5D) .setMeltingPoint(700) + .setNeutronTypes(NType.SLOW, NType.SLOW) //Beryllium Moderation .setUnlocalizedName("rbmk_fuel_ra226be").setTextureName(RefStrings.MODID + ":rbmk_fuel_ra226be"); rbmk_fuel_pu238be = (ItemRBMKRod) new ItemRBMKRod(rbmk_pellet_pu238be) .setYield(50000000D) - .setStats(10, 50) + .setStats(40, 40) .setFunction(EnumBurnFunc.SQUARE_ROOT) .setHeat(0.1D) .setDiffusion(0.05D) .setMeltingPoint(1287) + .setNeutronTypes(NType.SLOW, NType.SLOW) //Beryllium Moderation .setUnlocalizedName("rbmk_fuel_pu238be").setTextureName(RefStrings.MODID + ":rbmk_fuel_pu238be"); rbmk_fuel_balefire_gold = (ItemRBMKRod) new ItemRBMKRod(rbmk_pellet_balefire_gold) .setYield(100000000D) diff --git a/src/main/java/com/hbm/items/machine/ItemRBMKRod.java b/src/main/java/com/hbm/items/machine/ItemRBMKRod.java index f88cc9b0b..557892236 100644 --- a/src/main/java/com/hbm/items/machine/ItemRBMKRod.java +++ b/src/main/java/com/hbm/items/machine/ItemRBMKRod.java @@ -219,7 +219,7 @@ public class ItemRBMKRod extends Item { PASSIVE(EnumChatFormatting.DARK_GREEN + "SAFE / PASSIVE"), //const, no reactivity LOG_TEN(EnumChatFormatting.YELLOW + "MEDIUM / LOGARITHMIC"), //log10(x + 1) * reactivity * 50 PLATEU(EnumChatFormatting.GREEN + "SAFE / EULER"), //(1 - e^(-x/25)) * reactivity * 100 - ARCH(EnumChatFormatting.YELLOW + "MEDIUM / NEGATIVE-QUADRATIC"), //x-(x²/1000) * reactivity + ARCH(EnumChatFormatting.RED + "DANGEROUS / NEGATIVE-QUADRATIC"), //x-(x²/1000) * reactivity SIGMOID(EnumChatFormatting.GREEN + "SAFE / SIGMOID"), //100 / (1 + e^(-(x - 50) / 10)) <- tiny amount of reactivity at x=0 ! SQUARE_ROOT(EnumChatFormatting.YELLOW + "MEDIUM / SQUARE ROOT"), //sqrt(x) * 10 * reactivity LINEAR(EnumChatFormatting.RED + "DANGEROUS / LINEAR"), //x * reactivity diff --git a/src/main/java/com/hbm/items/tool/ItemDyatlov.java b/src/main/java/com/hbm/items/tool/ItemDyatlov.java index 287e355e4..ce739d5b8 100644 --- a/src/main/java/com/hbm/items/tool/ItemDyatlov.java +++ b/src/main/java/com/hbm/items/tool/ItemDyatlov.java @@ -1,8 +1,11 @@ package com.hbm.items.tool; +import com.hbm.blocks.machine.ReactorZirnox; import com.hbm.blocks.machine.rbmk.RBMKBase; +import com.hbm.tileentity.machine.TileEntityReactorZirnox; import com.hbm.tileentity.machine.rbmk.TileEntityRBMKBase; +import net.minecraft.block.Block; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; @@ -15,9 +18,11 @@ public class ItemDyatlov extends Item { if(!world.isRemote) { - if(world.getBlock(x, y, z) instanceof RBMKBase) { + Block block = world.getBlock(x, y, z); + + if(block instanceof RBMKBase) { - RBMKBase rbmk = (RBMKBase)world.getBlock(x, y, z); + RBMKBase rbmk = (RBMKBase)block; int[] pos = rbmk.findCore(world, x, y, z); @@ -32,6 +37,22 @@ public class ItemDyatlov extends Item { } } } + + if(block instanceof ReactorZirnox) { + + ReactorZirnox zirnox = (ReactorZirnox)block; + + int[] pos = zirnox.findCore(world, x, y, z); + + if(pos != null) { + + TileEntity te = world.getTileEntity(pos[0], pos[1], pos[2]); + + if(te instanceof TileEntityReactorZirnox) { + ((TileEntityReactorZirnox)te).heat = 200000; + } + } + } } return false; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityZirnoxDestroyed.java b/src/main/java/com/hbm/tileentity/machine/TileEntityZirnoxDestroyed.java index fa296881d..4fb2be3ef 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityZirnoxDestroyed.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityZirnoxDestroyed.java @@ -21,13 +21,30 @@ import net.minecraft.util.Vec3; import net.minecraft.world.World; public class TileEntityZirnoxDestroyed extends TileEntity { - + + public boolean onFire = true; + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + onFire = nbt.getBoolean("fire"); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + nbt.setBoolean("onFire", onFire); + } + @Override public void updateEntity() { if(!worldObj.isRemote) { radiate(worldObj, this.xCoord, this.yCoord, this.zCoord); - if(this.worldObj.getTotalWorldTime() % 50 == 0) { + if(this.worldObj.rand.nextInt(5000) == 0) + onFire = false; + + if(onFire && this.worldObj.getTotalWorldTime() % 50 == 0) { NBTTagCompound data = new NBTTagCompound(); data.setString("type", "rbmkflame"); data.setInteger("maxAge", 90); @@ -40,7 +57,7 @@ public class TileEntityZirnoxDestroyed extends TileEntity { private void radiate(World world, int x, int y, int z) { - float rads = 500000F; + float rads = onFire ? 500000F : 75000F; double range = 100D; List entities = world.getEntitiesWithinAABB(EntityLivingBase.class, AxisAlignedBB.getBoundingBox(x + 0.5, y + 0.5, z + 0.5, x + 0.5, y + 0.5, z + 0.5).expand(range, range, range)); @@ -71,7 +88,7 @@ public class TileEntityZirnoxDestroyed extends TileEntity { ContaminationUtil.contaminate(e, HazardType.RADIATION, ContaminationType.CREATIVE, eRads); - if(len < 5) { + if(onFire && len < 5) { e.attackEntityFrom(DamageSource.onFire, 2); } } From e2df83d63857510270bf2e8529dd1e4ba118fc78 Mon Sep 17 00:00:00 2001 From: Vaern Date: Sat, 4 Jun 2022 11:32:19 -0700 Subject: [PATCH 39/80] Made foam/boron sand work for all sides of RBMK debris --- .../com/hbm/blocks/machine/rbmk/RBMKDebrisBurning.java | 9 ++++----- .../com/hbm/blocks/machine/rbmk/RBMKDebrisRadiating.java | 9 ++++----- 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/hbm/blocks/machine/rbmk/RBMKDebrisBurning.java b/src/main/java/com/hbm/blocks/machine/rbmk/RBMKDebrisBurning.java index a868d493f..22a55a449 100644 --- a/src/main/java/com/hbm/blocks/machine/rbmk/RBMKDebrisBurning.java +++ b/src/main/java/com/hbm/blocks/machine/rbmk/RBMKDebrisBurning.java @@ -37,15 +37,14 @@ public class RBMKDebrisBurning extends RBMKDebris { } ForgeDirection dir = ForgeDirection.getOrientation(rand.nextInt(6)); + Block block = world.getBlock(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ); - if(rand.nextInt(10) == 0 && world.getBlock(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ) == Blocks.air) { + if(rand.nextInt(10) == 0 && block == Blocks.air) { world.setBlock(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ, ModBlocks.gas_meltdown); } - Block block = world.getBlock(x, y + 1, z); - - //Foam helps stop the fire. - int chance = block == ModBlocks.foam_layer || block == ModBlocks.block_foam ? 20 : 100; + //Foam helps stop the fire; ~5+ minutes to extinguish with one side exposed to foam. + int chance = block == ModBlocks.foam_layer || block == ModBlocks.block_foam ? 10 : 100; if(rand.nextInt(chance) == 0) { world.setBlock(x, y, z, ModBlocks.pribris); diff --git a/src/main/java/com/hbm/blocks/machine/rbmk/RBMKDebrisRadiating.java b/src/main/java/com/hbm/blocks/machine/rbmk/RBMKDebrisRadiating.java index 60eee96ad..94363af26 100644 --- a/src/main/java/com/hbm/blocks/machine/rbmk/RBMKDebrisRadiating.java +++ b/src/main/java/com/hbm/blocks/machine/rbmk/RBMKDebrisRadiating.java @@ -50,14 +50,13 @@ public class RBMKDebrisRadiating extends RBMKDebrisBurning { } ForgeDirection dir = ForgeDirection.getOrientation(rand.nextInt(6)); - - if(rand.nextInt(10) == 0 && world.getBlock(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ) == Blocks.air) { + Block block = world.getBlock(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ); + + if(rand.nextInt(10) == 0 && block == Blocks.air) { world.setBlock(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ, ModBlocks.gas_meltdown); } - Block block = world.getBlock(x, y + 1, z); - - //Boron sand helps stop the fission reaction. + //Boron sand helps stop the fission reaction; ~5+ minutes to halt with one side exposed to boron sand. int chance = block == ModBlocks.sand_boron_layer || block == ModBlocks.sand_boron ? 50 : 1000; if(rand.nextInt(chance) == 0) { From 66663ca50274de156217b85f002279b731f35bf3 Mon Sep 17 00:00:00 2001 From: Bob Date: Sat, 4 Jun 2022 21:24:17 +0200 Subject: [PATCH 40/80] inserter crane --- .../api/hbm/conveyor/IEnterableBlock.java | 10 ++ src/main/java/com/hbm/blocks/ModBlocks.java | 2 +- .../java/com/hbm/blocks/bomb/DetMiner.java | 16 +-- .../com/hbm/blocks/network/BlockConveyor.java | 20 +++- .../hbm/blocks/network/BlockCraneBase.java | 39 ++++++- .../hbm/blocks/network/CraneExtractor.java | 11 +- .../com/hbm/blocks/network/CraneInserter.java | 96 +++++++++++++++++- .../com/hbm/entity/item/EntityMovingItem.java | 14 ++- src/main/java/com/hbm/handler/GUIHandler.java | 30 ++++++ .../container/ContainerCraneInserter.java | 68 +++++++++++++ .../hbm/inventory/gui/GUICraneInserter.java | 40 ++++++++ .../com/hbm/render/block/RenderConveyor.java | 66 ++++++++++-- .../render/entity/item/RenderMovingItem.java | 18 ++-- .../java/com/hbm/tileentity/IGUIProvider.java | 15 +++ .../network/TileEntityCraneExtractor.java | 20 ++++ .../network/TileEntityCraneInserter.java | 41 ++++++++ .../java/com/hbm/world/feature/OreCave.java | 13 ++- .../textures/blocks/crane_in_side_down.png | Bin 0 -> 259 bytes .../hbm/textures/blocks/crane_in_side_up.png | Bin 0 -> 259 bytes .../textures/blocks/crane_out_side_down.png | Bin 0 -> 253 bytes .../hbm/textures/blocks/crane_out_side_up.png | Bin 0 -> 254 bytes .../gui/storage/gui_crane_ejector.png | Bin 2399 -> 2698 bytes .../gui/storage/gui_crane_inserter.png | Bin 0 -> 1232 bytes .../hbm/textures/items/piston_hydraulic.png | Bin 0 -> 380 bytes .../hbm/textures/items/piston_pneumatic.png | Bin 0 -> 375 bytes .../hbm/textures/models/turrets/arty.png | Bin 0 -> 3441 bytes 26 files changed, 454 insertions(+), 65 deletions(-) create mode 100644 src/main/java/com/hbm/inventory/container/ContainerCraneInserter.java create mode 100644 src/main/java/com/hbm/inventory/gui/GUICraneInserter.java create mode 100644 src/main/java/com/hbm/tileentity/IGUIProvider.java create mode 100644 src/main/java/com/hbm/tileentity/network/TileEntityCraneExtractor.java create mode 100644 src/main/java/com/hbm/tileentity/network/TileEntityCraneInserter.java create mode 100644 src/main/resources/assets/hbm/textures/blocks/crane_in_side_down.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/crane_in_side_up.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/crane_out_side_down.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/crane_out_side_up.png create mode 100644 src/main/resources/assets/hbm/textures/gui/storage/gui_crane_inserter.png create mode 100644 src/main/resources/assets/hbm/textures/items/piston_hydraulic.png create mode 100644 src/main/resources/assets/hbm/textures/items/piston_pneumatic.png create mode 100644 src/main/resources/assets/hbm/textures/models/turrets/arty.png diff --git a/src/main/java/api/hbm/conveyor/IEnterableBlock.java b/src/main/java/api/hbm/conveyor/IEnterableBlock.java index a5f4abbf8..a97e55191 100644 --- a/src/main/java/api/hbm/conveyor/IEnterableBlock.java +++ b/src/main/java/api/hbm/conveyor/IEnterableBlock.java @@ -5,6 +5,16 @@ import net.minecraftforge.common.util.ForgeDirection; public interface IEnterableBlock { + /** + * Returns true of the moving item can enter from the given side. When this happens, the IConveyorItem will call onEnter and despawn + * @param world + * @param x + * @param y + * @param z + * @param dir + * @param entity + * @return + */ public boolean canEnter(World world, int x, int y, int z, ForgeDirection dir, IConveyorItem entity); public void onEnter(World world, int x, int y, int z, ForgeDirection dir, IConveyorItem entity); } diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 86d8a7b0e..1900be645 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -1899,7 +1899,7 @@ public class ModBlocks { conveyor = new BlockConveyor().setBlockName("conveyor").setHardness(0.0F).setResistance(2.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":conveyor"); crane_extractor = new CraneExtractor().setBlockName("crane_extractor").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); - crane_inserter = new CraneInserter().setBlockName("crane_extractor").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); + crane_inserter = new CraneInserter().setBlockName("crane_inserter").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); chain = new BlockChain(Material.iron).setBlockName("dungeon_chain").setHardness(0.25F).setResistance(2.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":chain"); diff --git a/src/main/java/com/hbm/blocks/bomb/DetMiner.java b/src/main/java/com/hbm/blocks/bomb/DetMiner.java index 1a006a7dd..baa130baa 100644 --- a/src/main/java/com/hbm/blocks/bomb/DetMiner.java +++ b/src/main/java/com/hbm/blocks/bomb/DetMiner.java @@ -8,16 +8,13 @@ import com.hbm.explosion.ExplosionNT; import com.hbm.explosion.ExplosionNT.ExAttrib; import com.hbm.interfaces.IBomb; -import api.hbm.conveyor.IConveyorItem; -import api.hbm.conveyor.IEnterableBlock; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.item.Item; import net.minecraft.world.Explosion; import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; -public class DetMiner extends BlockPillar implements IBomb, IEnterableBlock { +public class DetMiner extends BlockPillar implements IBomb { public DetMiner(Material mat, String top) { super(mat, top); @@ -57,15 +54,4 @@ public class DetMiner extends BlockPillar implements IBomb, IEnterableBlock { this.explode(world, x, y, z); } } - - @Override - public boolean canEnter(World world, int x, int y, int z, ForgeDirection dir, IConveyorItem entity) { - return true; - } - - @Override - public void onEnter(World world, int x, int y, int z, ForgeDirection dir, IConveyorItem entity) { - this.explode(world, x, y, z); - } - } diff --git a/src/main/java/com/hbm/blocks/network/BlockConveyor.java b/src/main/java/com/hbm/blocks/network/BlockConveyor.java index 70ca3a8c4..988fb696c 100644 --- a/src/main/java/com/hbm/blocks/network/BlockConveyor.java +++ b/src/main/java/com/hbm/blocks/network/BlockConveyor.java @@ -57,7 +57,6 @@ public class BlockConveyor extends Block implements IConveyorBelt { ForgeDirection dir = ForgeDirection.getOrientation(world.getBlockMetadata(x, y, z)); return Vec3.createVectorHelper(snap.xCoord + dir.offsetX * speed, snap.yCoord, snap.zCoord + dir.offsetZ * speed);*/ - Vec3 snap = this.getClosestSnappingPosition(world, x, y, z, itemPos); /*double dist = snap.distanceTo(itemPos); if(dist > speed) { @@ -71,9 +70,24 @@ public class BlockConveyor extends Block implements IConveyorBelt { ForgeDirection dir = ForgeDirection.getOrientation(world.getBlockMetadata(x, y, z)); return Vec3.createVectorHelper(snap.xCoord + dir.offsetX * speed, snap.yCoord, snap.zCoord + dir.offsetZ * speed); }*/ + + /// ATTEMT 2 /// + /*Vec3 snap = this.getClosestSnappingPosition(world, x, y, z, itemPos); + ForgeDirection dir = ForgeDirection.getOrientation(world.getBlockMetadata(x, y, z)); + return Vec3.createVectorHelper(snap.xCoord - dir.offsetX * speed, snap.yCoord, snap.zCoord - dir.offsetZ * speed);*/ + /// /// ForgeDirection dir = ForgeDirection.getOrientation(world.getBlockMetadata(x, y, z)); - return Vec3.createVectorHelper(snap.xCoord - dir.offsetX * speed, snap.yCoord, snap.zCoord - dir.offsetZ * speed); + //snapping point + Vec3 snap = this.getClosestSnappingPosition(world, x, y, z, itemPos); + //snapping point + speed + Vec3 dest = Vec3.createVectorHelper(snap.xCoord - dir.offsetX * speed, snap.yCoord, snap.zCoord - dir.offsetZ * speed); + //delta to get to that point + Vec3 motion = Vec3.createVectorHelper((dest.xCoord - itemPos.xCoord), (dest.yCoord - itemPos.yCoord), (dest.zCoord - itemPos.zCoord)); + double len = motion.lengthVector(); + //the effective destination towards "dest" after taking speed into consideration + Vec3 ret = Vec3.createVectorHelper(itemPos.xCoord + motion.xCoord / len * speed, itemPos.yCoord + motion.yCoord / len * speed, itemPos.zCoord + motion.zCoord / len * speed); + return ret; } @Override @@ -105,7 +119,7 @@ public class BlockConveyor extends Block implements IConveyorBelt { if(entity instanceof EntityItem && entity.ticksExisted > 10 && !entity.isDead) { EntityMovingItem item = new EntityMovingItem(world); - item.setItemStack(((EntityItem) entity).getEntityItem()); + item.setItemStack(((EntityItem) entity).getEntityItem().copy()); item.setPositionAndRotation(x + 0.5, y + 0.25, z + 0.5, 0, 0); world.spawnEntityInWorld(item); diff --git a/src/main/java/com/hbm/blocks/network/BlockCraneBase.java b/src/main/java/com/hbm/blocks/network/BlockCraneBase.java index a979bdb18..b0ae95010 100644 --- a/src/main/java/com/hbm/blocks/network/BlockCraneBase.java +++ b/src/main/java/com/hbm/blocks/network/BlockCraneBase.java @@ -12,6 +12,7 @@ import net.minecraft.entity.EntityLivingBase; import net.minecraft.item.ItemStack; import net.minecraft.util.IIcon; import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; public abstract class BlockCraneBase extends BlockContainer { @@ -20,7 +21,10 @@ public abstract class BlockCraneBase extends BlockContainer { @SideOnly(Side.CLIENT) protected IIcon iconSideIn; @SideOnly(Side.CLIENT) protected IIcon iconOut; @SideOnly(Side.CLIENT) protected IIcon iconSideOut; + @SideOnly(Side.CLIENT) protected IIcon iconDirectional; + @SideOnly(Side.CLIENT) protected IIcon iconDirectionalUp; + @SideOnly(Side.CLIENT) protected IIcon iconDirectionalDown; public BlockCraneBase(Material mat) { super(mat); @@ -37,12 +41,39 @@ public abstract class BlockCraneBase extends BlockContainer { this.iconSideOut = iconRegister.registerIcon(RefStrings.MODID + ":crane_side_out"); } - @Override - @SideOnly(Side.CLIENT) - public abstract IIcon getIcon(int side, int metadata); - public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack stack) { int l = BlockPistonBase.determineOrientation(world, x, y, z, player); world.setBlockMetadataWithNotify(x, y, z, l, 2); } + + @Override + public IIcon getIcon(int side, int metadata) { + + if(side == 0 || side == 1) { + if(side == metadata) { + return this.iconOut; + } + if(side == ForgeDirection.getOrientation(metadata).getOpposite().ordinal()) { + return this.iconIn; + } + + return side == 1 ? this.iconDirectional : this.blockIcon; + } + + if(side == metadata) { + return this.iconSideOut; + } + if(side == ForgeDirection.getOrientation(metadata).getOpposite().ordinal()) { + return this.iconSideIn; + } + + if(metadata == 0) { + return this.iconDirectionalUp; + } + if(metadata == 1) { + return this.iconDirectionalDown; + } + + return this.iconSide; + } } diff --git a/src/main/java/com/hbm/blocks/network/CraneExtractor.java b/src/main/java/com/hbm/blocks/network/CraneExtractor.java index 53bdff754..e5c7b08ee 100644 --- a/src/main/java/com/hbm/blocks/network/CraneExtractor.java +++ b/src/main/java/com/hbm/blocks/network/CraneExtractor.java @@ -1,13 +1,13 @@ package com.hbm.blocks.network; import com.hbm.lib.RefStrings; +import com.hbm.tileentity.network.TileEntityCraneExtractor; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.IIcon; import net.minecraft.world.World; public class CraneExtractor extends BlockCraneBase { @@ -18,7 +18,7 @@ public class CraneExtractor extends BlockCraneBase { @Override public TileEntity createNewTileEntity(World world, int meta) { - return null; + return new TileEntityCraneExtractor(); } @Override @@ -26,10 +26,7 @@ public class CraneExtractor extends BlockCraneBase { public void registerBlockIcons(IIconRegister iconRegister) { super.registerBlockIcons(iconRegister); this.iconDirectional = iconRegister.registerIcon(RefStrings.MODID + ":crane_out_top"); - } - - @Override - public IIcon getIcon(int side, int metadata) { - return null; + this.iconDirectionalUp = iconRegister.registerIcon(RefStrings.MODID + ":crane_out_side_up"); + this.iconDirectionalDown = iconRegister.registerIcon(RefStrings.MODID + ":crane_out_side_down"); } } diff --git a/src/main/java/com/hbm/blocks/network/CraneInserter.java b/src/main/java/com/hbm/blocks/network/CraneInserter.java index f1fd9276b..bf214709c 100644 --- a/src/main/java/com/hbm/blocks/network/CraneInserter.java +++ b/src/main/java/com/hbm/blocks/network/CraneInserter.java @@ -1,16 +1,25 @@ package com.hbm.blocks.network; import com.hbm.lib.RefStrings; +import com.hbm.main.MainRegistry; +import com.hbm.tileentity.network.TileEntityCraneInserter; +import api.hbm.conveyor.IConveyorItem; +import api.hbm.conveyor.IEnterableBlock; +import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.IInventory; +import net.minecraft.inventory.ISidedInventory; +import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.IIcon; import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; -public class CraneInserter extends BlockCraneBase{ +public class CraneInserter extends BlockCraneBase implements IEnterableBlock { public CraneInserter() { super(Material.iron); @@ -18,7 +27,7 @@ public class CraneInserter extends BlockCraneBase{ @Override public TileEntity createNewTileEntity(World world, int meta) { - return null; + return new TileEntityCraneInserter(); } @Override @@ -26,10 +35,87 @@ public class CraneInserter extends BlockCraneBase{ public void registerBlockIcons(IIconRegister iconRegister) { super.registerBlockIcons(iconRegister); this.iconDirectional = iconRegister.registerIcon(RefStrings.MODID + ":crane_in_top"); + this.iconDirectionalUp = iconRegister.registerIcon(RefStrings.MODID + ":crane_in_side_up"); + this.iconDirectionalDown = iconRegister.registerIcon(RefStrings.MODID + ":crane_in_side_down"); + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + if(world.isRemote) { + return true; + } else if(!player.isSneaking()) { + FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y, z); + return true; + } else { + return false; + } } @Override - public IIcon getIcon(int side, int metadata) { - return null; + public boolean canEnter(World world, int x, int y, int z, ForgeDirection dir, IConveyorItem entity) { + ForgeDirection orientation = ForgeDirection.getOrientation(world.getBlockMetadata(x, y, z)); + return orientation == dir; + } + + @Override + public void onEnter(World world, int x, int y, int z, ForgeDirection dir, IConveyorItem entity) { + TileEntity te = world.getTileEntity(x - dir.offsetX, y - dir.offsetY, z - dir.offsetZ); + + if(entity == null || entity.getItemStack() == null || entity.getItemStack().stackSize <= 0) { + return; + } + + ItemStack toAdd = entity.getItemStack().copy(); + + int[] access = null; + + if(te instanceof ISidedInventory) { + ISidedInventory sided = (ISidedInventory) te; + access = sided.getAccessibleSlotsFromSide(dir.ordinal()); + } + + if(te instanceof IInventory) { + IInventory inv = (IInventory) te; + int limit = inv.getInventoryStackLimit(); + + int size = access == null ? inv.getSizeInventory() : access.length; + + for(int i = 0; i < size; i++) { + int index = access == null ? i : access[i]; + ItemStack stack = inv.getStackInSlot(index); + + if(stack != null && toAdd.isItemEqual(stack) && ItemStack.areItemStackTagsEqual(toAdd, stack) && stack.stackSize < Math.min(stack.getMaxStackSize(), limit)) { + + int stackLimit = Math.min(stack.getMaxStackSize(), limit); + int amount = Math.min(toAdd.stackSize, stackLimit - stack.stackSize); + + stack.stackSize += amount; + toAdd.stackSize -= amount; + + if(toAdd.stackSize == 0) { + return; + } + } + } + + for(int i = 0; i < size; i++) { + int index = access == null ? i : access[i]; + ItemStack stack = inv.getStackInSlot(index); + + if(stack == null && inv.isItemValidForSlot(index, stack)) { + + int amount = Math.min(toAdd.stackSize, limit); + + ItemStack newStack = toAdd.copy(); + newStack.stackSize = amount; + inv.setInventorySlotContents(index, newStack); + toAdd.stackSize -= amount; + + if(toAdd.stackSize == 0) { + return; + } + } + } + } } } diff --git a/src/main/java/com/hbm/entity/item/EntityMovingItem.java b/src/main/java/com/hbm/entity/item/EntityMovingItem.java index 100ed0d60..7f3bba107 100644 --- a/src/main/java/com/hbm/entity/item/EntityMovingItem.java +++ b/src/main/java/com/hbm/entity/item/EntityMovingItem.java @@ -1,6 +1,6 @@ package com.hbm.entity.item; -import com.hbm.blocks.ModBlocks; +import com.hbm.lib.Library; import com.hbm.util.fauxpointtwelve.BlockPos; import api.hbm.conveyor.IConveyorBelt; @@ -40,7 +40,6 @@ public class EntityMovingItem extends Entity implements IConveyorItem { } public void setItemStack(ItemStack stack) { - this.getDataWatcher().updateObject(10, stack); this.getDataWatcher().setObjectWatched(10); } @@ -170,9 +169,18 @@ public class EntityMovingItem extends Entity implements IConveyorItem { if(newBlock instanceof IEnterableBlock) { ForgeDirection dir = ForgeDirection.UNKNOWN; + + if(lastPos.getX() > newPos.getX() && lastPos.getY() == newPos.getY() && lastPos.getZ() == newPos.getZ()) dir = Library.POS_X; + else if(lastPos.getX() < newPos.getX() && lastPos.getY() == newPos.getY() && lastPos.getZ() == newPos.getZ()) dir = Library.NEG_X; + else if(lastPos.getX() == newPos.getX() && lastPos.getY() > newPos.getY() && lastPos.getZ() == newPos.getZ()) dir = Library.POS_Y; + else if(lastPos.getX() == newPos.getX() && lastPos.getY() < newPos.getY() && lastPos.getZ() == newPos.getZ()) dir = Library.NEG_Y; + else if(lastPos.getX() == newPos.getX() && lastPos.getY() == newPos.getY() && lastPos.getZ() > newPos.getZ()) dir = Library.POS_Z; + else if(lastPos.getX() == newPos.getX() && lastPos.getY() == newPos.getY() && lastPos.getZ() < newPos.getZ()) dir = Library.NEG_Z; + IEnterableBlock enterable = (IEnterableBlock) newBlock; if(enterable.canEnter(worldObj, newPos.getX(), newPos.getY(), newPos.getZ(), dir, this)) { + enterable.onEnter(worldObj, newPos.getX(), newPos.getY(), newPos.getZ(), dir, this); this.setDead(); } @@ -193,7 +201,7 @@ public class EntityMovingItem extends Entity implements IConveyorItem { this.syncPosX = x; this.syncPosY = y; this.syncPosZ = z; - this.turnProgress = theNumberThree + 7; //use 4-ply for extra smoothness + this.turnProgress = theNumberThree + 2; //use 4-ply for extra smoothness this.motionX = this.velocityX; this.motionY = this.velocityY; this.motionZ = this.velocityZ; diff --git a/src/main/java/com/hbm/handler/GUIHandler.java b/src/main/java/com/hbm/handler/GUIHandler.java index ac2bb4927..2a93686ba 100644 --- a/src/main/java/com/hbm/handler/GUIHandler.java +++ b/src/main/java/com/hbm/handler/GUIHandler.java @@ -10,6 +10,7 @@ import com.hbm.inventory.container.*; import com.hbm.inventory.gui.*; import com.hbm.inventory.inv.InventoryLeadBox; import com.hbm.items.ModItems; +import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.bomb.*; import com.hbm.tileentity.machine.*; import com.hbm.tileentity.machine.oil.*; @@ -17,6 +18,7 @@ import com.hbm.tileentity.machine.rbmk.*; import com.hbm.tileentity.machine.storage.*; import com.hbm.tileentity.turret.*; +import net.minecraft.block.Block; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; @@ -29,6 +31,18 @@ public class GUIHandler implements IGuiHandler { public Object getServerGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) { TileEntity entity = world.getTileEntity(x, y, z); + if(entity instanceof IGUIProvider) { + return ((IGUIProvider) entity).provideContainer(ID, player, world, x, y, z); + } + + Block block = world.getBlock(x, y, z); + + if(block instanceof IGUIProvider) { + return ((IGUIProvider) block).provideContainer(ID, player, world, x, y, z); + } + + //notice: stop doing this, unless you absolutely have to \/ + if(entity instanceof TileEntityCrateIron) { return new ContainerCrateIron(player.inventory, (TileEntityCrateIron) entity); } if(entity instanceof TileEntityCrateSteel) { return new ContainerCrateSteel(player.inventory, (TileEntityCrateSteel) entity); } if(entity instanceof TileEntityCrateDesh) { return new ContainerCrateDesh(player.inventory, (TileEntityCrateDesh) entity); } @@ -47,6 +61,8 @@ public class GUIHandler implements IGuiHandler { if(entity instanceof TileEntityRBMKHeater) { return new ContainerRBMKHeater(player.inventory, (TileEntityRBMKHeater) entity); } + //notice: stop doing this completely, period \/ + switch(ID) { case ModBlocks.guiID_test_difurnace: { if(entity instanceof TileEntityDiFurnace) { @@ -854,6 +870,18 @@ public class GUIHandler implements IGuiHandler { @Override public Object getClientGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) { TileEntity entity = world.getTileEntity(x, y, z); + + if(entity instanceof IGUIProvider) { + return ((IGUIProvider) entity).provideGUI(ID, player, world, x, y, z); + } + + Block block = world.getBlock(x, y, z); + + if(block instanceof IGUIProvider) { + return ((IGUIProvider) block).provideGUI(ID, player, world, x, y, z); + } + + //stop doing this unless you absolutely have to \/ if(entity instanceof TileEntityCrateIron) { return new GUICrateIron(player.inventory, (TileEntityCrateIron) entity); } if(entity instanceof TileEntityCrateSteel) { return new GUICrateSteel(player.inventory, (TileEntityCrateSteel) entity); } @@ -873,6 +901,8 @@ public class GUIHandler implements IGuiHandler { if(entity instanceof TileEntityRBMKHeater) { return new GUIRBMKHeater(player.inventory, (TileEntityRBMKHeater) entity); } + //stop doing this, period \/ + switch(ID) { case ModBlocks.guiID_test_difurnace: { if(entity instanceof TileEntityDiFurnace) { diff --git a/src/main/java/com/hbm/inventory/container/ContainerCraneInserter.java b/src/main/java/com/hbm/inventory/container/ContainerCraneInserter.java new file mode 100644 index 000000000..ff9848108 --- /dev/null +++ b/src/main/java/com/hbm/inventory/container/ContainerCraneInserter.java @@ -0,0 +1,68 @@ +package com.hbm.inventory.container; + +import com.hbm.tileentity.network.TileEntityCraneInserter; + +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 ContainerCraneInserter extends Container { + + protected TileEntityCraneInserter inserter; + + public ContainerCraneInserter(InventoryPlayer invPlayer, TileEntityCraneInserter inserter) { + this.inserter = inserter; + + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 7; j++) { + this.addSlotToContainer(new Slot(inserter, j + i * 7, 26 + j * 18, 17 + i * 18)); + } + } + + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 9; j++) { + this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 84 + i * 18 + 20)); + } + } + + for(int i = 0; i < 9; i++) { + this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 142 + 20)); + } + } + + @Override + public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) { + ItemStack var3 = null; + Slot var4 = (Slot) this.inventorySlots.get(par2); + + if(var4 != null && var4.getHasStack()) { + ItemStack var5 = var4.getStack(); + var3 = var5.copy(); + + if(par2 <= inserter.getSizeInventory() - 1) { + if(!this.mergeItemStack(var5, inserter.getSizeInventory(), this.inventorySlots.size(), true)) { + return null; + } + } else if(!this.mergeItemStack(var5, 0, inserter.getSizeInventory(), false)) { + return null; + } + + if(var5.stackSize == 0) { + var4.putStack((ItemStack) null); + } else { + var4.onSlotChanged(); + } + + var4.onPickupFromSlot(p_82846_1_, var5); + } + + return var3; + } + + @Override + public boolean canInteractWith(EntityPlayer player) { + return inserter.isUseableByPlayer(player); + } +} diff --git a/src/main/java/com/hbm/inventory/gui/GUICraneInserter.java b/src/main/java/com/hbm/inventory/gui/GUICraneInserter.java new file mode 100644 index 000000000..28813d9ae --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GUICraneInserter.java @@ -0,0 +1,40 @@ +package com.hbm.inventory.gui; + +import org.lwjgl.opengl.GL11; + +import com.hbm.inventory.container.ContainerCraneInserter; +import com.hbm.lib.RefStrings; +import com.hbm.tileentity.network.TileEntityCraneInserter; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.util.ResourceLocation; + +public class GUICraneInserter extends GuiInfoContainer { + + private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/storage/gui_crane_inserter.png"); + private TileEntityCraneInserter inserter; + + public GUICraneInserter(InventoryPlayer invPlayer, TileEntityCraneInserter tedf) { + super(new ContainerCraneInserter(invPlayer, tedf)); + inserter = tedf; + + this.xSize = 176; + this.ySize = 185; + } + + @Override + protected void drawGuiContainerForegroundLayer(int i, int j) { + String name = this.inserter.hasCustomInventoryName() ? this.inserter.getInventoryName() : I18n.format(this.inserter.getInventoryName()); + this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); + this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); + } + + @Override + protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + } +} diff --git a/src/main/java/com/hbm/render/block/RenderConveyor.java b/src/main/java/com/hbm/render/block/RenderConveyor.java index 14c69a909..72922766a 100644 --- a/src/main/java/com/hbm/render/block/RenderConveyor.java +++ b/src/main/java/com/hbm/render/block/RenderConveyor.java @@ -3,35 +3,79 @@ package com.hbm.render.block; import org.lwjgl.opengl.GL11; import com.hbm.blocks.network.BlockConveyor; -import com.hbm.main.ResourceManager; -import com.hbm.render.util.ObjUtil; import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; import net.minecraft.block.Block; import net.minecraft.client.renderer.RenderBlocks; import net.minecraft.client.renderer.Tessellator; -import net.minecraft.util.IIcon; import net.minecraft.world.IBlockAccess; -import net.minecraftforge.client.model.obj.WavefrontObject; public class RenderConveyor implements ISimpleBlockRenderingHandler { @Override - public void renderInventoryBlock(Block block, int metadata, int modelId, RenderBlocks renderer) { + public void renderInventoryBlock(Block block, int meta, int modelId, RenderBlocks renderer) { GL11.glPushMatrix(); Tessellator tessellator = Tessellator.instance; - IIcon iicon = block.getIcon(0, 0); tessellator.setColorOpaque_F(1, 1, 1); - if(renderer.hasOverrideBlockTexture()) { - iicon = renderer.overrideBlockTexture; - } + GL11.glTranslatef(-0.5F, -0.25F, -0.5F); + renderer.setRenderBounds( 0D, 0D, 0D, 1D, 0.25D, 1D); + + meta = 2; - GL11.glTranslated(0, -0.125, 0); + if(meta == 2) { + renderer.uvRotateTop = 3; + renderer.uvRotateBottom = 0; + renderer.uvRotateWest = 3; + } + if(meta == 3) { + renderer.uvRotateTop = 0; + renderer.uvRotateBottom = 3; + renderer.uvRotateEast = 3; + } + if(meta == 4) { + renderer.uvRotateTop = 1; + renderer.uvRotateBottom = 1; + renderer.uvRotateSouth = 3; + } + if(meta == 5) { + renderer.uvRotateTop = 2; + renderer.uvRotateBottom = 2; + renderer.uvRotateNorth = 3; + } + tessellator.startDrawingQuads(); - ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.arrow, iicon, tessellator, 0, false); + tessellator.setNormal(0.0F, -1.0F, 0.0F); + renderer.renderFaceYNeg(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 0, meta)); tessellator.draw(); + tessellator.startDrawingQuads(); + tessellator.setNormal(0.0F, 1.0F, 0.0F); + renderer.renderFaceYPos(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 1, meta)); + tessellator.draw(); + tessellator.startDrawingQuads(); + tessellator.setNormal(0.0F, 0.0F, -1.0F); + renderer.renderFaceZNeg(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 2, meta)); + tessellator.draw(); + tessellator.startDrawingQuads(); + tessellator.setNormal(0.0F, 0.0F, 1.0F); + renderer.renderFaceZPos(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 3, meta)); + tessellator.draw(); + tessellator.startDrawingQuads(); + tessellator.setNormal(-1.0F, 0.0F, 0.0F); + renderer.renderFaceXNeg(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 4, meta)); + tessellator.draw(); + tessellator.startDrawingQuads(); + tessellator.setNormal(1.0F, 0.0F, 0.0F); + renderer.renderFaceXPos(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 5, meta)); + tessellator.draw(); + + renderer.uvRotateTop = 0; + renderer.uvRotateBottom = 0; + renderer.uvRotateNorth = 0; + renderer.uvRotateSouth = 0; + renderer.uvRotateEast = 0; + renderer.uvRotateWest = 0; GL11.glPopMatrix(); } diff --git a/src/main/java/com/hbm/render/entity/item/RenderMovingItem.java b/src/main/java/com/hbm/render/entity/item/RenderMovingItem.java index 30f1c0402..1115a27bf 100644 --- a/src/main/java/com/hbm/render/entity/item/RenderMovingItem.java +++ b/src/main/java/com/hbm/render/entity/item/RenderMovingItem.java @@ -20,23 +20,23 @@ public class RenderMovingItem extends Render { GL11.glPushMatrix(); GL11.glTranslated(x, y, z); - - EntityMovingItem item = (EntityMovingItem)entity; - ItemStack stack = item.getItemStack(); + + EntityMovingItem item = (EntityMovingItem) entity; + ItemStack stack = item.getItemStack().copy(); if(!(stack.getItem() instanceof ItemBlock)) { GL11.glRotatef(90F, 1.0F, 0.0F, 0.0F); GL11.glTranslated(0.0, -0.1875, 0.0); } - + EntityItem dummy = new EntityItem(entity.worldObj, 0, 0, 0, stack); - dummy.getEntityItem().stackSize = 1; + //dummy.getEntityItem().stackSize = 1; dummy.hoverStart = 0.0F; - RenderItem.renderInFrame = true; - RenderManager.instance.renderEntityWithPosYaw(dummy, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - RenderItem.renderInFrame = false; - + RenderItem.renderInFrame = true; + RenderManager.instance.renderEntityWithPosYaw(dummy, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); + RenderItem.renderInFrame = false; + GL11.glPopMatrix(); } diff --git a/src/main/java/com/hbm/tileentity/IGUIProvider.java b/src/main/java/com/hbm/tileentity/IGUIProvider.java new file mode 100644 index 000000000..f707f3d61 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/IGUIProvider.java @@ -0,0 +1,15 @@ +package com.hbm.tileentity; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.world.World; + +public interface IGUIProvider { + + public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z); + @SideOnly(Side.CLIENT) + public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z); +} diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityCraneExtractor.java b/src/main/java/com/hbm/tileentity/network/TileEntityCraneExtractor.java new file mode 100644 index 000000000..95a3561a2 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/network/TileEntityCraneExtractor.java @@ -0,0 +1,20 @@ +package com.hbm.tileentity.network; + +import com.hbm.tileentity.TileEntityMachineBase; + +public class TileEntityCraneExtractor extends TileEntityMachineBase { + + public TileEntityCraneExtractor() { + super(20); + } + + @Override + public String getName() { + return "container.craneExtractor"; + } + + @Override + public void updateEntity() { + + } +} diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityCraneInserter.java b/src/main/java/com/hbm/tileentity/network/TileEntityCraneInserter.java new file mode 100644 index 000000000..bcfca593c --- /dev/null +++ b/src/main/java/com/hbm/tileentity/network/TileEntityCraneInserter.java @@ -0,0 +1,41 @@ +package com.hbm.tileentity.network; + +import com.hbm.inventory.container.ContainerCraneInserter; +import com.hbm.inventory.gui.GUICraneInserter; +import com.hbm.tileentity.IGUIProvider; +import com.hbm.tileentity.TileEntityMachineBase; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.world.World; + +public class TileEntityCraneInserter extends TileEntityMachineBase implements IGUIProvider { + + public TileEntityCraneInserter() { + super(21); + } + + @Override + public String getName() { + return "container.craneInserter"; + } + + @Override + public void updateEntity() { + + } + + @Override + public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new ContainerCraneInserter(player.inventory, this); + } + + @Override + @SideOnly(Side.CLIENT) + public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new GUICraneInserter(player.inventory, this); + } +} diff --git a/src/main/java/com/hbm/world/feature/OreCave.java b/src/main/java/com/hbm/world/feature/OreCave.java index 0dba4397b..e71bf9d1d 100644 --- a/src/main/java/com/hbm/world/feature/OreCave.java +++ b/src/main/java/com/hbm/world/feature/OreCave.java @@ -9,7 +9,6 @@ import com.hbm.inventory.RecipesCommon.MetaBlock; import cpw.mods.fml.common.eventhandler.SubscribeEvent; import net.minecraft.block.Block; import net.minecraft.block.material.Material; -import net.minecraft.util.MathHelper; import net.minecraft.world.World; import net.minecraft.world.gen.NoiseGeneratorPerlin; import net.minecraftforge.common.MinecraftForge; @@ -82,8 +81,8 @@ public class OreCave { double scale = 0.01D; - for(int x = cX; x < cX + 16; x++) { - for(int z = cZ; z < cZ + 16; z++) { + for(int x = cX + 8; x < cX + 24; x++) { + for(int z = cZ + 8; z < cZ + 24; z++) { double n = noise.func_151601_a(x * scale, z * scale); @@ -105,7 +104,7 @@ public class OreCave { boolean canGenFluid = event.rand.nextBoolean(); for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { - Block neighbor = world.getBlock(MathHelper.clamp_int(x + dir.offsetX, cX, cX + 16), y + dir.offsetY, MathHelper.clamp_int(z + dir.offsetZ, cZ, cZ + 16)); + Block neighbor = world.getBlock(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ); if(neighbor.getMaterial() == Material.air || neighbor instanceof BlockStalagmite) { shouldGen = true; } @@ -132,8 +131,8 @@ public class OreCave { for(int i = 2; i < 6; i++) { ForgeDirection dir = ForgeDirection.getOrientation(i); - int clX = MathHelper.clamp_int(x + dir.offsetX, cX, cX + 16); - int clZ = MathHelper.clamp_int(z + dir.offsetZ, cZ, cZ + 16); + int clX = x + dir.offsetX; + int clZ = z + dir.offsetZ; Block neighbor = world.getBlock(clX, y, clZ); if(neighbor.isNormalCube()) @@ -146,7 +145,7 @@ public class OreCave { } else { - if((genTarget.getMaterial() == Material.air || !genTarget.isNormalCube()) && event.rand.nextInt(5) == 0) { + if((genTarget.getMaterial() == Material.air || !genTarget.isNormalCube()) && event.rand.nextInt(5) == 0 && !genTarget.getMaterial().isLiquid()) { if(ModBlocks.stalactite.canPlaceBlockAt(world, x, y, z)) { world.setBlock(x, y, z, ModBlocks.stalactite, ore.meta, 2); diff --git a/src/main/resources/assets/hbm/textures/blocks/crane_in_side_down.png b/src/main/resources/assets/hbm/textures/blocks/crane_in_side_down.png new file mode 100644 index 0000000000000000000000000000000000000000..f0374fbe7023637a45803160f3c9d5d12149d3a8 GIT binary patch literal 259 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf+Jex-PppcYdY* z%%mor(^6(3D)LLOXkCc1=3u!NRekW7#FU_jY);iLt;aV%JTxafSIp({0g1;l^P-ED z7%JxEGh7jU^DS0PeS(-}YGmD6zpx8Y#k=A=CiAV+Hn-6hIQh`ZBW6P}>%=9ld=Fa0 zS@%1vWXNEcl`b!{`}*?wz10WpH+*S~dAuz77tggY?x-wx!~N#=XMw(8@O1TaS?83{ F1OP|hU%dbT literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/crane_in_side_up.png b/src/main/resources/assets/hbm/textures/blocks/crane_in_side_up.png new file mode 100644 index 0000000000000000000000000000000000000000..181ab8eb930d0b15658dbf7efb7cb5e615947b1e GIT binary patch literal 259 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfyU$hTfE6so$9tJafhvMWKX>|StUInXK&BkC0u1qSC1!Yb+$%|)<064nO1K1 z%vNk#=OvT1k^vj{OC(!0p4++nz~O7R6e5IiE}eJ!AfQzW+aM29483 z5e7e`l^3wB;P*AyJ74kd%R3yu4(#jyW5yS??D~T2yA0oL{Q3UWcB}#Vg2B_(&t;uc GLK6UDLuc;* literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/crane_out_side_down.png b/src/main/resources/assets/hbm/textures/blocks/crane_out_side_down.png new file mode 100644 index 0000000000000000000000000000000000000000..0b77746b16a6fde2d3b165a45f50717c0ac6cfef GIT binary patch literal 253 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfkGELn6N^p+f1ZF^iyHM36pPq&w95U z74yCPy z=G+!*sGbw=z*}CWmFHJFzH-WgUX($58NW6 z4*VDHFAA)`H|OWa9@hT{jKqt2clW)#ePflm$TttKpJF!tK=(6vy85}Sb4q9e0BBWY A2><{9 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/crane_out_side_up.png b/src/main/resources/assets/hbm/textures/blocks/crane_out_side_up.png new file mode 100644 index 0000000000000000000000000000000000000000..9bde5e3f7323365d3bb4de258b75447ba01aa320 GIT binary patch literal 254 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 AVgLXD literal 2399 zcmbtVX;2eb5`KwcAgGX_0)lb`0l|_(9=BOu zO&$QS*~t;>3IIfELV(;)QssHM=)6?H!VfyR$w?(%?yqzJ;L1)|2e;_FX`$&wb$8{T zI@?0}#qcTLwwpmAsev1c+#Gnt2Pqf?@3dC2 z>xIVby<1-vAPro{2(fu_3RLTiaI++ydP6`u8RlrrWN)~YxaCFZtv?m^J!-0$W4)Vpnz;$ zjzZ~WIAO7$rl-9IDsqqMg+)h4PuCQM7T=6b;)ecWS04_c*0#;;XJf7#xArL+83D#GmC)_09+FOKEIuT%Ku| zMWKADR5V4hGOj+r(6GD4WHOgWOSvV>(;XAnsXiX?_9pirMErcG3($DE(%Ug2&Q0WqMncN^*r7bux_wl;HIQvRT1t@;(`VpMyN8<3Ti z4Q80CZt}I&P%*=E2Yur5Vw4-bbK~2MihafhACGa5*6IP2(ct4LRfS|z4MwV(e@2$A zOGk$e>ivt6R`&r@=A-sifH1O!y?g!XtNw_{8vGD_Z5LSX0tg|0?p(J6flco zV#T(%wQW~qFv$lPYc3k-rd7$^X}Sk7y-X>fO8fcUXPRnPF?aey<@U{99(2{0{4CEt zbQ`x6d$=;d24!^dj8jpJ#gIfo`7}G*dUrZCHMKqqYTUrDYZ;*VyMdki?9g1RdUw-c z@67fDGnhe+JgvIFNxiaSp=SMOFp)l{MDn`@g3Vxoh6%5G&p^p^U7oPI29{kuuVRnC zGqoapcBxGoZ2{}+X`(^d2p5*U*Ch8W z`HqxoMpadnDx=lHc+ursWZ4iG0~=Wj&j;POwcNh7f;IsL1;d0XAOGw(Y_h);_A!mYIM>C5<}lX6&2p*a zU$;B9D9i9jCiLOC@M{APTXPDn`c#shz7Yy7ZS1_Pf4g47yFtBk{tLs%VnfQ?yFgk| zaMW;4#Ak!RyqKuLa@UV&q0nn3Y>X&_cyJhkxKXIn`A~kyC_^)}iU>*P8*T&DPcms| z12QAfWe365fXw}pgEVtF8npZo3;```v!XpMTNP0P62WeI2KAiLYyFmEsQXt z)<;V&FSxu^V(YAmDS1pLKiW2}qu!}c24htWtk0i@!bpc$KwRb~)^hd%4VgxtcXzAE}8dDwnIV-)|U2ps$e3qKV5BSBKv{om6h3+iih5H}rh?4{Gt@9e%U*M~&N znB(Ci2O6MnG`y}{Ke=X!$6rj-{d3Cy46K6p%z(1P9Oq7|O{?HdKY;yfaBmH(KC>d@ zw<8<9IquB-{Maz`l7)G+WZA@C!>VVF?`XKv#Z~iY$6D*@I8>b>x Scm%<>L{5kC*ouRstN#SkuMzzK diff --git a/src/main/resources/assets/hbm/textures/gui/storage/gui_crane_inserter.png b/src/main/resources/assets/hbm/textures/gui/storage/gui_crane_inserter.png new file mode 100644 index 0000000000000000000000000000000000000000..a8047227319ef46c59a6c5284222663a794200de GIT binary patch literal 1232 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K5893O0R7}x|G$6%N?Bp530R%N1DIGv=yQhm| zNX4ADcLVbtMF_NAELv^OnsZp%@snKyM_ha4wC9RUzUfMCvNe-m|9QUW$y$eo{Sw?= z3%6}In{o2ILCtsB2maCaim!KB{rh>tfG1Sx!qj-_b44FMU)iJ+dQM>Xrqtg590%T( z-7YY(Klrq0<*HS$zeYXvS->4VkI}~BN22^J7KR(_j137)3(8%{j7X zE$8~_pI^9EpVQ&$ZSF^+mrbtPoPYKvqi^&6e>*uiu$XRu(^~zT>;`?wzL!({Zpi%l zuF5#$`Ol}i#@~HSpS?-%>vj0MS@6W1wBj6=SM#%BPQ_^$iUdUCi}}3{&rD_~D+m0~ zVKG{MQ%1V+*K;XUucK%~4il&ZMB^{>9Eswd7+Q{*!z#@W6@Li4Fbx=50{n;D0 zKJ@m!Z$FkSOJ~@Ad+oXB#iwU8#9jEKdtmP`hx!?B z==qF1#~&9yp7=*akKxs!3@a+wDY|)CvZ*N}aGv|H0eDATvHDIjG z`25mx`Q?{SEo!{Ra{HqgMq0sQC?pYqB>cZK_B@Wb zY_hjT`PmHT`E9GBu9vP|_3Qj2R_VqwFB8xG?sb@cdg-cF>#k>Cy`4S7e-ki*-#x#< zaix!p2!8kc0x*$0E3rTBwxA3YProhAn6^G9BZ7ZhZuwlIEb!%o+k&?h+_0dmt`fWu zmQY+Z<8z(1!R?KrH-JvvVR5%_JBeu#tnotM+5>NZ7!jmpPwRf2H>(T3YQS@Nmrggk z_@O(%H1hc4kG172|Jt}4Zdd$gSa-ij|G|4i!hj?Xa>)g~^$drnUVidO+a?=ihNr8a J%Q~loCIB(!zCi#0 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/piston_hydraulic.png b/src/main/resources/assets/hbm/textures/items/piston_hydraulic.png new file mode 100644 index 0000000000000000000000000000000000000000..1d069ab700ea7413bbc1392fe00f61130ee760f7 GIT binary patch literal 380 zcmV-?0fYXDP)vh}iF1>WUZrdrPTpY)4R`0ncN#c%=4gnYp`@B3o0_N`F a-}xJ*@t>{;GdrgfO)wOGqXsD57EMqb&g($DQ-eJ-PS2`wSW|8jbQY_kG`}^Hs$0 zc$_Px7+$q_OP*QIS6H1k_lqNJ+s1WWt!A%Gq?GyDdI~2+@zcX>d)8-#wSGlPnRmNg zqc$LlB0SG4NOH~L=`jFSr;RxXNz;@linNZk0D#G4g5x-x4?@f@x>Blg2U{ zMu6pf)nwC0_zScEDP`VdZ1U9XK?uP6>{cth2&U}*Y7crhn7u+X`B!^TGW_T}e*j1c VlqeEhmz)3q002ovPDHLkV1hcCpIHC^ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/models/turrets/arty.png b/src/main/resources/assets/hbm/textures/models/turrets/arty.png new file mode 100644 index 0000000000000000000000000000000000000000..9f87d68621454d03e116ab55134ddea21731dad1 GIT binary patch literal 3441 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 e2`js3C<_Ad4DDDo$$@jQ+l}jH`W0~G<9`Eyj Date: Sat, 4 Jun 2022 12:26:15 -0700 Subject: [PATCH 41/80] Changed probability --- .../java/com/hbm/blocks/machine/rbmk/RBMKDebrisBurning.java | 2 +- .../java/com/hbm/blocks/machine/rbmk/RBMKDebrisRadiating.java | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/hbm/blocks/machine/rbmk/RBMKDebrisBurning.java b/src/main/java/com/hbm/blocks/machine/rbmk/RBMKDebrisBurning.java index 22a55a449..43489035e 100644 --- a/src/main/java/com/hbm/blocks/machine/rbmk/RBMKDebrisBurning.java +++ b/src/main/java/com/hbm/blocks/machine/rbmk/RBMKDebrisBurning.java @@ -43,7 +43,7 @@ public class RBMKDebrisBurning extends RBMKDebris { world.setBlock(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ, ModBlocks.gas_meltdown); } - //Foam helps stop the fire; ~5+ minutes to extinguish with one side exposed to foam. + //Foam helps stop the fire; 1.66% chance every 100-120 seconds for one side int chance = block == ModBlocks.foam_layer || block == ModBlocks.block_foam ? 10 : 100; if(rand.nextInt(chance) == 0) { diff --git a/src/main/java/com/hbm/blocks/machine/rbmk/RBMKDebrisRadiating.java b/src/main/java/com/hbm/blocks/machine/rbmk/RBMKDebrisRadiating.java index 94363af26..e2bfa0972 100644 --- a/src/main/java/com/hbm/blocks/machine/rbmk/RBMKDebrisRadiating.java +++ b/src/main/java/com/hbm/blocks/machine/rbmk/RBMKDebrisRadiating.java @@ -56,8 +56,8 @@ public class RBMKDebrisRadiating extends RBMKDebrisBurning { world.setBlock(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ, ModBlocks.gas_meltdown); } - //Boron sand helps stop the fission reaction; ~5+ minutes to halt with one side exposed to boron sand. - int chance = block == ModBlocks.sand_boron_layer || block == ModBlocks.sand_boron ? 50 : 1000; + //Boron sand helps stop the fission reaction; 0.66% chance every 20-40 ticks for one side + int chance = block == ModBlocks.sand_boron_layer || block == ModBlocks.sand_boron ? 25 : 1000; if(rand.nextInt(chance) == 0) { From 1379522918123586aec5aae62451d5c483f11543 Mon Sep 17 00:00:00 2001 From: Vaern Date: Sat, 4 Jun 2022 13:25:08 -0700 Subject: [PATCH 42/80] Changed UEU heat --- src/main/java/com/hbm/items/ModItems.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 6f10f3acf..87b707b1c 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -3671,7 +3671,7 @@ public class ModItems { .setStats(15) .setFunction(EnumBurnFunc.LOG_TEN) .setDepletionFunction(EnumDepleteFunc.RAISING_SLOPE) - .setHeat(0.5) + .setHeat(0.65) //0.5 is too much of a nerf in heat; pu239 buildup justifies it being on par with MEU ig .setMeltingPoint(2865) .setUnlocalizedName("rbmk_fuel_ueu").setTextureName(RefStrings.MODID + ":rbmk_fuel_ueu"); rbmk_fuel_meu = (ItemRBMKRod) new ItemRBMKRod(rbmk_pellet_meu) @@ -3679,7 +3679,7 @@ public class ModItems { .setStats(20) .setFunction(EnumBurnFunc.LOG_TEN) .setDepletionFunction(EnumDepleteFunc.RAISING_SLOPE) - .setHeat(0.65) //0.75 was a bit too much + .setHeat(0.65) //0.75 was a bit too much... .setMeltingPoint(2865) .setUnlocalizedName("rbmk_fuel_meu").setTextureName(RefStrings.MODID + ":rbmk_fuel_meu"); rbmk_fuel_heu233 = (ItemRBMKRod) new ItemRBMKRod(rbmk_pellet_heu233) From e29616a83e53c2984e675f4ff91f4a18172a96db Mon Sep 17 00:00:00 2001 From: Vaern Date: Sat, 4 Jun 2022 14:27:41 -0700 Subject: [PATCH 43/80] Changed some stuff for the debris --- .../java/com/hbm/entity/projectile/EntityRBMKDebris.java | 7 ++++--- .../java/com/hbm/entity/projectile/EntityZirnoxDebris.java | 7 ++++--- .../java/com/hbm/inventory/recipes/ShredderRecipes.java | 1 + 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/hbm/entity/projectile/EntityRBMKDebris.java b/src/main/java/com/hbm/entity/projectile/EntityRBMKDebris.java index 5d98e6a42..c92fb2ae6 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityRBMKDebris.java +++ b/src/main/java/com/hbm/entity/projectile/EntityRBMKDebris.java @@ -121,11 +121,12 @@ public class EntityRBMKDebris extends EntityDebrisBase { } } - if(this.getType() == DebrisType.FUEL) { - List entities = worldObj.getEntitiesWithinAABB(EntityLivingBase.class, this.boundingBox.expand(10, 10, 10)); + if(this.getType() == DebrisType.FUEL || this.getType() == DebrisType.GRAPHITE) { + List entities = worldObj.getEntitiesWithinAABB(EntityLivingBase.class, this.boundingBox.expand(2.5, 2.5, 2.5)); + int level = this.getType() == DebrisType.FUEL ? 9 : 4; for(EntityLivingBase e : entities) { - e.addPotionEffect(new PotionEffect(HbmPotion.radiation.id, 60 * 20, 9)); + e.addPotionEffect(new PotionEffect(HbmPotion.radiation.id, 60 * 20, level)); } } diff --git a/src/main/java/com/hbm/entity/projectile/EntityZirnoxDebris.java b/src/main/java/com/hbm/entity/projectile/EntityZirnoxDebris.java index 4e3280db9..155667459 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityZirnoxDebris.java +++ b/src/main/java/com/hbm/entity/projectile/EntityZirnoxDebris.java @@ -116,10 +116,11 @@ public class EntityZirnoxDebris extends EntityDebrisBase { } if(this.getType() == DebrisType.ELEMENT || this.getType() == DebrisType.GRAPHITE) { - List entities = worldObj.getEntitiesWithinAABB(EntityLivingBase.class, this.boundingBox.expand(10, 10, 10)); - + List entities = worldObj.getEntitiesWithinAABB(EntityLivingBase.class, this.boundingBox.expand(2.5, 2.5, 2.5)); + + int level = this.getType() == DebrisType.ELEMENT ? 7 : 4; for(EntityLivingBase e : entities) { - e.addPotionEffect(new PotionEffect(HbmPotion.radiation.id, 60 * 20, 4)); + e.addPotionEffect(new PotionEffect(HbmPotion.radiation.id, 60 * 20, level)); } } diff --git a/src/main/java/com/hbm/inventory/recipes/ShredderRecipes.java b/src/main/java/com/hbm/inventory/recipes/ShredderRecipes.java index 08b5278d5..cca5c56b3 100644 --- a/src/main/java/com/hbm/inventory/recipes/ShredderRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/ShredderRecipes.java @@ -339,6 +339,7 @@ public class ShredderRecipes { ShredderRecipes.setRecipe(ModItems.debris_exchanger, new ItemStack(ModItems.powder_steel, 3)); ShredderRecipes.setRecipe(ModItems.debris_element, new ItemStack(ModItems.scrap_nuclear, 4)); ShredderRecipes.setRecipe(ModItems.debris_metal, new ItemStack(ModItems.powder_steel_tiny, 3)); + ShredderRecipes.setRecipe(ModItems.debris_graphite, new ItemStack(ModItems.powder_coal, 1)); /* * GC COMPAT From f23c080db0ac0c794c680542cc600867003dc247 Mon Sep 17 00:00:00 2001 From: Vaern Date: Sat, 4 Jun 2022 14:40:05 -0700 Subject: [PATCH 44/80] might as well --- .../java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) 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 507f3280b..9f79840e7 100644 --- a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java @@ -696,10 +696,9 @@ public class AnvilRecipes { constructionRecipes.add(new AnvilConstructionRecipe( new ComparableStack(ModBlocks.machine_turbine), new AnvilOutput[] { - new AnvilOutput(new ItemStack(ModItems.turbine_titanium, 2)), - new AnvilOutput(new ItemStack(ModItems.motor, 1)), - new AnvilOutput(new ItemStack(ModItems.tank_steel, 2)), - new AnvilOutput(new ItemStack(ModItems.plate_titanium, 4)) + new AnvilOutput(new ItemStack(ModItems.turbine_titanium, 1)), + new AnvilOutput(new ItemStack(ModItems.coil_copper, 2)), + new AnvilOutput(new ItemStack(ModItems.ingot_steel, 6)) }).setTier(3)); constructionRecipes.add(new AnvilConstructionRecipe( From 045dcaa79ab0be1a61228ad2374194ec948649cb Mon Sep 17 00:00:00 2001 From: Vaern Date: Sat, 4 Jun 2022 16:15:23 -0700 Subject: [PATCH 45/80] not sure how that was missed --- src/main/java/com/hbm/world/worldgen/ComponentNTMFeatures.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/hbm/world/worldgen/ComponentNTMFeatures.java b/src/main/java/com/hbm/world/worldgen/ComponentNTMFeatures.java index 650c5c3b2..b98219729 100644 --- a/src/main/java/com/hbm/world/worldgen/ComponentNTMFeatures.java +++ b/src/main/java/com/hbm/world/worldgen/ComponentNTMFeatures.java @@ -1024,7 +1024,7 @@ public class ComponentNTMFeatures { this.fillWithBlocks(world, box, featureSizeX, 0, 5, featureSizeX, 1, 5, ModBlocks.concrete_pillar, Blocks.air, false); //Back Wall Pt. 2 this.fillWithRandomizedBlocks(world, box, 6, 0, 5, featureSizeX - 1, 0, 5, false, rand, RandomConcreteBricks); this.fillWithRandomizedBlocks(world, box, 6, 1, 5, 6, 1, 5, false, rand, RandomConcreteBricks); - this.fillWithRandomizedBlocks(world, box, featureSizeX - 1, 1, 5, featureSizeX + 1, 1, 5, false, rand, RandomConcreteBricks); + this.fillWithRandomizedBlocks(world, box, featureSizeX - 1, 1, 5, featureSizeX - 1, 1, 5, false, rand, RandomConcreteBricks); this.fillWithBlocks(world, box, featureSizeX, 0, featureSizeZ, featureSizeX, 1, featureSizeZ, ModBlocks.concrete_pillar, Blocks.air, false); //Right Wall Pt. 2 this.fillWithRandomizedBlocks(world, box, featureSizeX, 0, 6, featureSizeX, 0, featureSizeZ - 1, false, rand, RandomConcreteBricks); this.fillWithRandomizedBlocks(world, box, featureSizeX, 1, 6, featureSizeX, 1, featureSizeZ - 3, false, rand, RandomConcreteBricks); From 671948754bcdb3704905d21167922d78a7e06dee Mon Sep 17 00:00:00 2001 From: Vaern Date: Sat, 4 Jun 2022 21:30:30 -0700 Subject: [PATCH 46/80] Plenty of changes --- .../nei/GasCentrifugeRecipeHandler.java | 24 +- .../container/ContainerMachineGasCent.java | 58 ++--- .../hbm/inventory/gui/GUIMachineGasCent.java | 2 +- .../recipes/GasCentrifugeRecipes.java | 36 +-- .../machine/TileEntityMachineGasCent.java | 232 +++++++++--------- .../hbm/textures/gui/centrifuge_gas.png | Bin 3362 -> 0 bytes .../gui/processing/gui_centrifuge_gas.png | Bin 0 -> 3291 bytes 7 files changed, 169 insertions(+), 183 deletions(-) delete mode 100644 src/main/resources/assets/hbm/textures/gui/centrifuge_gas.png create mode 100644 src/main/resources/assets/hbm/textures/gui/processing/gui_centrifuge_gas.png diff --git a/src/main/java/com/hbm/handler/nei/GasCentrifugeRecipeHandler.java b/src/main/java/com/hbm/handler/nei/GasCentrifugeRecipeHandler.java index 194d572d0..246a9e5fb 100644 --- a/src/main/java/com/hbm/handler/nei/GasCentrifugeRecipeHandler.java +++ b/src/main/java/com/hbm/handler/nei/GasCentrifugeRecipeHandler.java @@ -22,16 +22,15 @@ public class GasCentrifugeRecipeHandler extends TemplateRecipeHandler { public class SmeltingSet extends TemplateRecipeHandler.CachedRecipe { PositionedStack input; - PositionedStack result1; - PositionedStack result2; - PositionedStack result3; + List output = new ArrayList(); - public SmeltingSet(ItemStack input, ItemStack result1, ItemStack result2, ItemStack result3) { + public SmeltingSet(ItemStack input, ItemStack[] results) { input.stackSize = 1; this.input = new PositionedStack(input, 25, 35 - 11); - this.result1 = new PositionedStack(result1, 128, 26 - 11); - this.result2 = new PositionedStack(result2, 128, 44 - 11); - this.result3 = new PositionedStack(result3, 146, 35 - 11); + + for(byte i = 0; i < results.length; i++) { + this.output.add(new PositionedStack(results[i], i % 2 == 0 ? 128 : 146, i < 2 ? 26 - 11 : 44 - 11 )); + } } @Override @@ -43,14 +42,13 @@ public class GasCentrifugeRecipeHandler extends TemplateRecipeHandler { public List getOtherStacks() { List stacks = new ArrayList(); stacks.add(fuels.get((cycleticks / 48) % fuels.size()).stack); - stacks.add(result2); - stacks.add(result3); + stacks.addAll(output); return stacks; } @Override public PositionedStack getResult() { - return result1; + return output.get(0); } } @@ -93,7 +91,7 @@ public class GasCentrifugeRecipeHandler extends TemplateRecipeHandler { if((outputId.equals("gascentprocessing")) && getClass() == GasCentrifugeRecipeHandler.class) { Map recipes = GasCentrifugeRecipes.getGasCentrifugeRecipes(); for(Map.Entry recipe : recipes.entrySet()) { - this.arecipes.add(new SmeltingSet((ItemStack) recipe.getKey(), (ItemStack) recipe.getValue()[0], (ItemStack) recipe.getValue()[1], (ItemStack) recipe.getValue()[2])); + this.arecipes.add(new SmeltingSet((ItemStack) recipe.getKey(), (ItemStack[]) recipe.getValue())); } } else { super.loadCraftingRecipes(outputId, results); @@ -106,7 +104,7 @@ public class GasCentrifugeRecipeHandler extends TemplateRecipeHandler { for(Map.Entry recipe : recipes.entrySet()) { if(NEIServerUtils.areStacksSameType((ItemStack) recipe.getValue()[0], result) || NEIServerUtils.areStacksSameType((ItemStack) recipe.getValue()[1], result) || NEIServerUtils.areStacksSameType((ItemStack) recipe.getValue()[2], result)) - this.arecipes.add(new SmeltingSet((ItemStack) recipe.getKey(), (ItemStack) recipe.getValue()[0], (ItemStack) recipe.getValue()[1], (ItemStack) recipe.getValue()[2])); + this.arecipes.add(new SmeltingSet((ItemStack) recipe.getKey(), (ItemStack[]) recipe.getValue())); } } @@ -124,7 +122,7 @@ public class GasCentrifugeRecipeHandler extends TemplateRecipeHandler { Map recipes = GasCentrifugeRecipes.getGasCentrifugeRecipes(); for(Map.Entry recipe : recipes.entrySet()) { if(compareFluidStacks(ingredient, (ItemStack) recipe.getKey())) - this.arecipes.add(new SmeltingSet((ItemStack) recipe.getKey(), (ItemStack) recipe.getValue()[0], (ItemStack) recipe.getValue()[1], (ItemStack) recipe.getValue()[2])); + this.arecipes.add(new SmeltingSet((ItemStack) recipe.getKey(), (ItemStack[]) recipe.getValue())); } } diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineGasCent.java b/src/main/java/com/hbm/inventory/container/ContainerMachineGasCent.java index d6cd0f928..26d58fac5 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerMachineGasCent.java +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineGasCent.java @@ -18,27 +18,27 @@ public class ContainerMachineGasCent extends Container { gasCent = tedf; - //Battery - this.addSlotToContainer(new Slot(tedf, 0, 8, 53)); - //Fluid ID IO - this.addSlotToContainer(new Slot(tedf, 1, 30, 35)); //Output - this.addSlotToContainer(new SlotMachineOutput(tedf, 2, 133, 26)); - this.addSlotToContainer(new SlotMachineOutput(tedf, 3, 133, 44)); - this.addSlotToContainer(new SlotMachineOutput(tedf, 4, 151, 35)); - //upgrade - this.addSlotToContainer(new Slot(tedf, 5, 82, 19)); + for(int i = 0; i < 2; i++) { + for(int j = 0; j < 2; j++) { + this.addSlotToContainer(new SlotMachineOutput(tedf, j + i * 2, 133 + j * 18, 26 + i * 18)); + } + } - for(int i = 0; i < 3; i++) - { - for(int j = 0; j < 9; j++) - { + //Battery + this.addSlotToContainer(new Slot(tedf, 4, 8, 53)); + //Fluid ID IO + this.addSlotToContainer(new Slot(tedf, 5, 30, 35)); + //upgrade + this.addSlotToContainer(new Slot(tedf, 6, 82, 19)); + + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 9; j++) { this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 84 + i * 18)); } } - for(int i = 0; i < 9; i++) - { + for(int i = 0; i < 9; i++) { this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 142)); } } @@ -51,37 +51,29 @@ public class ContainerMachineGasCent extends Container { @Override public ItemStack transferStackInSlot(EntityPlayer player, int index) { - ItemStack var3 = null; + ItemStack returnStack = null; Slot slot = (Slot) this.inventorySlots.get(index); - if (slot != null && slot.getHasStack()) - { + if(slot != null && slot.getHasStack()) { ItemStack stack = slot.getStack(); - var3 = stack.copy(); + returnStack = stack.copy(); - if (index <= 5) { - if (!this.mergeItemStack(stack, 6, this.inventorySlots.size(), true)) - { + if(index <= 6) { + if (!this.mergeItemStack(stack, 7, this.inventorySlots.size(), true)) { return null; } - } - else if (!this.mergeItemStack(stack, 0, 2, false)) - { - if (!this.mergeItemStack(stack, 3, 4, false)) - return null; + } else if(!this.mergeItemStack(stack, 4, 7, false)) { + return null; } - if (stack.stackSize == 0) - { + if (stack.stackSize == 0) { slot.putStack((ItemStack) null); - } - else - { + } else { slot.onSlotChanged(); } } - return var3; + return returnStack; } @Override diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineGasCent.java b/src/main/java/com/hbm/inventory/gui/GUIMachineGasCent.java index 9427e4045..9202e0d18 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineGasCent.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineGasCent.java @@ -15,7 +15,7 @@ import net.minecraft.util.ResourceLocation; public class GUIMachineGasCent extends GuiInfoContainer { - public static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/centrifuge_gas.png"); + public static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/processing/gui_centrifuge_gas.png"); private TileEntityMachineGasCent gasCent; public GUIMachineGasCent(InventoryPlayer invPlayer, TileEntityMachineGasCent tedf) { diff --git a/src/main/java/com/hbm/inventory/recipes/GasCentrifugeRecipes.java b/src/main/java/com/hbm/inventory/recipes/GasCentrifugeRecipes.java index 62e08f5e5..de95ef888 100644 --- a/src/main/java/com/hbm/inventory/recipes/GasCentrifugeRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/GasCentrifugeRecipes.java @@ -14,27 +14,28 @@ import net.minecraft.item.ItemStack; public class GasCentrifugeRecipes { + //TODO: Change "String name" to I18n instead of unlocalized BS public static enum PseudoFluidType { - NONE (0, 0, "NONE", "Empty", false, (ItemStack[])null), + NONE (0, 0, null, "Empty", false, (ItemStack[])null), - NUF6 (400, 300, "LEUF6", "Natural UF6", false, new ItemStack(ModItems.nugget_u238, 1)), - LEUF6 (300, 200, "MEUF6", "Low Enriched UF6", false, new ItemStack(ModItems.nugget_u238, 1), new ItemStack(ModItems.fluorite, 1)), - MEUF6 (200, 100, "HEUF6", "Medium Enriched UF6", false, new ItemStack(ModItems.nugget_u238, 1)), - HEUF6 (300, 0, "NONE", "High Enriched UF6", true, new ItemStack(ModItems.nugget_u238, 2), new ItemStack(ModItems.nugget_u235, 1), new ItemStack(ModItems.fluorite, 1)), + HEUF6 (300, 0, NONE, "High Enriched UF6", true, new ItemStack(ModItems.nugget_u238, 2), new ItemStack(ModItems.nugget_u235, 1), new ItemStack(ModItems.fluorite, 1)), + MEUF6 (200, 100, HEUF6, "Medium Enriched UF6", false, new ItemStack(ModItems.nugget_u238, 1)), + LEUF6 (300, 200, MEUF6, "Low Enriched UF6", false, new ItemStack(ModItems.nugget_u238, 1), new ItemStack(ModItems.fluorite, 1)), + NUF6 (400, 300, LEUF6, "Natural UF6", false, new ItemStack(ModItems.nugget_u238, 1)), - PF6 (300, 0, "NONE", "Plutonium Hexafluoride", false, new ItemStack(ModItems.nugget_pu238, 1), new ItemStack(ModItems.nugget_pu_mix, 2), new ItemStack(ModItems.fluorite, 1)), - - MUD (1000, 500, "MUD_HEAVY", "Poisonous Mud", false, new ItemStack(ModItems.powder_lead, 1), new ItemStack(ModItems.dust, 1)), - MUD_HEAVY (500, 0, "NONE", "Heavy Mud Fraction", false, new ItemStack(ModItems.powder_iron, 1), new ItemStack(ModItems.dust, 1), new ItemStack(ModItems.nuclear_waste_tiny, 1)); + PF6 (300, 0, NONE, "Plutonium Hexafluoride", false, new ItemStack(ModItems.nugget_pu238, 1), new ItemStack(ModItems.nugget_pu_mix, 2), new ItemStack(ModItems.fluorite, 1)), + + MUD_HEAVY (500, 0, NONE, "Heavy Mud Fraction", false, new ItemStack(ModItems.powder_iron, 1), new ItemStack(ModItems.dust, 1), new ItemStack(ModItems.nuclear_waste_tiny, 1)), + MUD (1000, 500, MUD_HEAVY, "Poisonous Mud", false, new ItemStack(ModItems.powder_lead, 1), new ItemStack(ModItems.dust, 1)); int fluidConsumed; int fluidProduced; - String outputFluid; + PseudoFluidType outputFluid; String name; boolean isHighSpeed; ItemStack[] output; - PseudoFluidType(int fluidConsumed, int fluidProduced, String outputFluid, String name, boolean isHighSpeed, ItemStack... output) { + PseudoFluidType(int fluidConsumed, int fluidProduced, PseudoFluidType outputFluid, String name, boolean isHighSpeed, ItemStack... output) { this.fluidConsumed = fluidConsumed; this.fluidProduced = fluidProduced; this.outputFluid = outputFluid; @@ -51,8 +52,8 @@ public class GasCentrifugeRecipes { return this.fluidProduced; } - public PseudoFluidType getOutputFluid() { - return this.valueOf(this.outputFluid); + public PseudoFluidType getOutputType() { + return this.outputFluid; } public String getName() { @@ -97,8 +98,11 @@ public class GasCentrifugeRecipes { } public static void register() { - gasCent.put(new FluidStack(1200, Fluids.UF6), new ItemStack[] {new ItemStack(ModItems.nugget_u238, 11), new ItemStack(ModItems.nugget_u235, 1), new ItemStack(ModItems.fluorite, 4)}); - gasCent.put(new FluidStack(900, Fluids.PUF6), new ItemStack[] {new ItemStack(ModItems.nugget_pu238, 3), new ItemStack(ModItems.nugget_pu_mix, 6), new ItemStack(ModItems.fluorite, 3)}); - gasCent.put(new FluidStack(1000, Fluids.WATZ), new ItemStack[] {new ItemStack(ModItems.powder_iron, 1), new ItemStack(ModItems.powder_lead, 1), new ItemStack(ModItems.nuclear_waste_tiny, 1)}); + gasCent.put(new FluidStack(1200, Fluids.UF6), new ItemStack[] + {new ItemStack(ModItems.nugget_u238, 11), new ItemStack(ModItems.nugget_u235, 1), new ItemStack(ModItems.fluorite, 4)}); + gasCent.put(new FluidStack(900, Fluids.PUF6), new ItemStack[] + {new ItemStack(ModItems.nugget_pu238, 3), new ItemStack(ModItems.nugget_pu_mix, 6), new ItemStack(ModItems.fluorite, 3)}); + gasCent.put(new FluidStack(1000, Fluids.WATZ), new ItemStack[] + {new ItemStack(ModItems.powder_iron, 1), new ItemStack(ModItems.powder_lead, 1), new ItemStack(ModItems.nuclear_waste_tiny, 1), new ItemStack(ModItems.dust, 2)}); } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineGasCent.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineGasCent.java index 5ca39fbc3..c097ec771 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineGasCent.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineGasCent.java @@ -4,21 +4,22 @@ import java.util.HashMap; import com.hbm.blocks.BlockDummyable; import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidContainer; -import com.hbm.interfaces.Spaghetti; -import com.hbm.interfaces.Untested; import com.hbm.inventory.FluidTank; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.recipes.GasCentrifugeRecipes.PseudoFluidType; import com.hbm.items.ModItems; +import com.hbm.items.machine.IItemFluidIdentifier; import com.hbm.items.machine.ItemFluidIdentifier; import com.hbm.lib.Library; import com.hbm.packet.LoopedSoundPacket; import com.hbm.packet.PacketDispatcher; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.InventoryUtil; +import com.hbm.util.fauxpointtwelve.DirPos; import api.hbm.energy.IEnergyUser; +import api.hbm.fluid.IFluidStandardReceiver; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -28,10 +29,9 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraftforge.common.util.ForgeDirection; -@Spaghetti("I still can't believe this was my idea of a 'rework'") -public class TileEntityMachineGasCent extends TileEntityMachineBase implements IEnergyUser, IFluidContainer, IFluidAcceptor { +//epic! +public class TileEntityMachineGasCent extends TileEntityMachineBase implements IEnergyUser, IFluidAcceptor, IFluidStandardReceiver { - public byte age; public long power; public int progress; public boolean isProgressing; @@ -42,11 +42,10 @@ public class TileEntityMachineGasCent extends TileEntityMachineBase implements I public PseudoFluidTank inputTank; public PseudoFluidTank outputTank; - private static final int[] slots_top = new int[] {0}; + private static final int[] slots_io = new int[] { 0, 2, 3, 4 }; private static final int[] slots_bottom = new int[] {2, 3, 4}; private static final int[] slots_side = new int[] { }; - @Untested private static HashMap fluidConversions = new HashMap(); static { @@ -56,7 +55,7 @@ public class TileEntityMachineGasCent extends TileEntityMachineBase implements I } public TileEntityMachineGasCent() { - super(6); + super(7); tank = new FluidTank(Fluids.UF6, 2000, 0); inputTank = new PseudoFluidTank(PseudoFluidType.NUF6, 8000); outputTank = new PseudoFluidTank(PseudoFluidType.LEUF6, 8000); @@ -66,10 +65,15 @@ public class TileEntityMachineGasCent extends TileEntityMachineBase implements I public String getName() { return "container.gasCentrifuge"; } - + + @Override + public boolean canExtractItem(int i, ItemStack itemStack, int j) { + return i < 4; + } + @Override public int[] getAccessibleSlotsFromSide(int side) { - return side == 0 ? slots_bottom : side == 1 ? slots_top : slots_side; + return slots_io; } @Override @@ -92,11 +96,6 @@ public class TileEntityMachineGasCent extends TileEntityMachineBase implements I inputTank.writeToNBT(nbt, "inputTank"); outputTank.writeToNBT(nbt, "outputTank"); } - - @Override - public boolean canExtractItem(int i, ItemStack itemStack, int j) { - return (i != 0 && i != 1) || j == 1; - } public int getCentrifugeProgressScaled(int i) { return (progress * i) / getProcessingSpeed(); @@ -121,31 +120,17 @@ public class TileEntityMachineGasCent extends TileEntityMachineBase implements I ItemStack[] list = inputTank.getTankType().getOutput(); if(this.inputTank.getTankType().getIfHighSpeed()) - if(!(slots[5] != null && slots[5].getItem() == ModItems.upgrade_gc_speed)) + if(!(slots[6] != null && slots[6].getItem() == ModItems.upgrade_gc_speed)) return false; if(list == null) return false; - if(list.length < 1 || list.length > 3) + if(list.length < 1) return false; - for(int i = 0; i < list.length; i++) { - - int slot = i + 2; - - if(slots[slot] == null) - continue; - - if(slots[slot].getItem() == list[i].getItem() && - slots[slot].getItemDamage() == list[i].getItemDamage() && - slots[slot].stackSize + list[i].stackSize <= slots[slot].getMaxStackSize()) - continue; - - return false; - } - - return true; + if(InventoryUtil.doesArrayHaveSpace(slots, 0, 3, list)) + return true; } return false; @@ -158,54 +143,42 @@ public class TileEntityMachineGasCent extends TileEntityMachineBase implements I inputTank.setFill(inputTank.getFill() - inputTank.getTankType().getFluidConsumed()); outputTank.setFill(outputTank.getFill() + inputTank.getTankType().getFluidProduced()); - for(byte i = 0; i < output.length && i < 3; i++) { - if(slots[i + 2] == null) { - slots[i + 2] = output[i].copy(); - } else { - slots[i + 2].stackSize += output[i].stackSize; - } - } + for(byte i = 0; i < output.length; i++) + InventoryUtil.tryAddItemToInventory(slots, 0, 3, output[i].copy()); //reference types almost got me again } private void attemptConversion() { - if(inputTank.getFill() <= inputTank.getMaxFill() && tank.getFill() > 0) { - int fill = inputTank.getMaxFill() - inputTank.getFill(); + if(inputTank.getFill() < inputTank.getMaxFill() && tank.getFill() > 0) { + int fill = Math.min(inputTank.getMaxFill() - inputTank.getFill(), tank.getFill()); - if(tank.getFill() >= fill) { - tank.setFill(tank.getFill() - fill); - inputTank.setFill(inputTank.getFill() + fill); - } else { - inputTank.setFill(inputTank.getFill() + tank.getFill()); - tank.setFill(0); - } + tank.setFill(tank.getFill() - fill); + inputTank.setFill(inputTank.getFill() + fill); } } private boolean attemptTransfer(TileEntity te) { if(te instanceof TileEntityMachineGasCent) { - TileEntityMachineGasCent gasCent = (TileEntityMachineGasCent) te; + TileEntityMachineGasCent cent = (TileEntityMachineGasCent) te; - if(gasCent.tank.getFill() == 0 && gasCent.tank.getTankType() == this.tank.getTankType()) { - if(gasCent.inputTank.getTankType() != this.outputTank.getTankType()) { - gasCent.inputTank.setTankType(this.outputTank.getTankType()); - gasCent.outputTank.setTankType(this.outputTank.getTankType().getOutputFluid()); + if(cent.tank.getFill() == 0 && cent.tank.getTankType() == tank.getTankType()) { + if(cent.inputTank.getTankType() != outputTank.getTankType()) { + cent.inputTank.setTankType(outputTank.getTankType()); + cent.outputTank.setTankType(outputTank.getTankType().getOutputType()); } - if(gasCent.inputTank.getFill() < gasCent.inputTank.getMaxFill() && this.outputTank.getFill() > 0) { - int fill = gasCent.inputTank.getMaxFill() - gasCent.inputTank.getFill(); + //God, why did I forget about the entirety of the fucking math library? + if(cent.inputTank.getFill() < cent.inputTank.getMaxFill() && outputTank.getFill() > 0) { + int fill = Math.min(cent.inputTank.getMaxFill() - cent.inputTank.getFill(), outputTank.getFill()); - if(this.outputTank.getFill() >= fill) { - this.outputTank.setFill(this.outputTank.getFill() - fill); - gasCent.inputTank.setFill(gasCent.inputTank.getFill() + fill); - } else { - gasCent.inputTank.setFill(gasCent.inputTank.getFill() + this.outputTank.getFill()); - this.outputTank.setFill(0); - } + outputTank.setFill(outputTank.getFill() - fill); + cent.inputTank.setFill(cent.inputTank.getFill() + fill); } - return false; + + return true; } } - return true; + + return false; } public void networkUnpack(NBTTagCompound data) { @@ -220,26 +193,25 @@ public class TileEntityMachineGasCent extends TileEntityMachineBase implements I @Override public void updateEntity() { - + if(!worldObj.isRemote) { - this.updateStandardConnections(worldObj, xCoord, yCoord, zCoord); + updateConnections(); power = Library.chargeTEFromItems(slots, 0, power, maxPower); - setTankType(1); + setTankType(5); - if(inputTank.getTankType() == PseudoFluidType.PF6 || inputTank.getTankType() == PseudoFluidType.NUF6 || inputTank.getTankType() == PseudoFluidType.MUD) { - tank.updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); + if(fluidConversions.containsValue(inputTank.getTankType())) { + tank.updateTank(this); attemptConversion(); } if(canEnrich()) { isProgressing = true; - this.progress++; - if(slots[5] != null && slots[5].getItem() == ModItems.upgrade_gc_speed) + if(slots[6] != null && slots[6].getItem() == ModItems.upgrade_gc_speed) this.power -= 300; else this.power -= 200; @@ -251,28 +223,20 @@ public class TileEntityMachineGasCent extends TileEntityMachineBase implements I if(progress >= getProcessingSpeed()) enrich(); - } else { isProgressing = false; this.progress = 0; } - age++; - if(age >= 10) { - age = 0; - + if(worldObj.getTotalWorldTime() % 10 == 0) { ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); TileEntity te = worldObj.getTileEntity(this.xCoord - dir.offsetX, this.yCoord, this.zCoord - dir.offsetZ); - if(attemptTransfer(te) && this.inputTank.getTankType() == PseudoFluidType.LEUF6) { - if(this.outputTank.getFill() >= 100 && (slots[4] == null || (slots[4].getItem() == ModItems.nugget_uranium_fuel && slots[4].stackSize + 1 <= slots[4].getMaxStackSize()))) { + //*AT THE MOMENT*, there's not really any need for a dedicated method for this. Yet. + if(!attemptTransfer(te) && this.inputTank.getTankType() == PseudoFluidType.LEUF6) { + if(this.outputTank.getFill() >= 100 && InventoryUtil.tryAddItemToInventory(slots, 0, 3, new ItemStack(ModItems.nugget_uranium_fuel)) == null) { this.outputTank.setFill(this.outputTank.getFill() - 100); - if(slots[4] == null) { - slots[4] = new ItemStack(ModItems.nugget_uranium_fuel, 1); - } else { - slots[4].stackSize += 1; - } } } } @@ -290,6 +254,26 @@ public class TileEntityMachineGasCent extends TileEntityMachineBase implements I PacketDispatcher.wrapper.sendToAllAround(new LoopedSoundPacket(xCoord, yCoord, zCoord), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50)); } } + + private void updateConnections() { + for(DirPos pos : getConPos()) { + this.trySubscribe(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + + if(fluidConversions.containsValue(inputTank.getTankType())) { + this.trySubscribe(tank.getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + } + } + } + + private DirPos[] getConPos() { + return new DirPos[] { + new DirPos(xCoord, yCoord - 1, zCoord, Library.NEG_Y), + new DirPos(xCoord + 1, yCoord, zCoord, Library.POS_X), + new DirPos(xCoord - 1, yCoord, zCoord, Library.NEG_X), + new DirPos(xCoord, yCoord, zCoord + 1, Library.POS_Z), + new DirPos(xCoord, yCoord, zCoord - 1, Library.NEG_Z) + }; + } @Override public void setPower(long i) { @@ -308,58 +292,62 @@ public class TileEntityMachineGasCent extends TileEntityMachineBase implements I } public int getProcessingSpeed() { - if(slots[5] != null && slots[5].getItem() == ModItems.upgrade_gc_speed) { + if(slots[6] != null && slots[6].getItem() == ModItems.upgrade_gc_speed) { return processingSpeed - 70; } return processingSpeed; } - + + public void setTankType(int in) { + + if(slots[in] != null && slots[in].getItem() instanceof IItemFluidIdentifier) { + IItemFluidIdentifier id = (IItemFluidIdentifier) slots[in].getItem(); + FluidType newType = id.getType(null, 0, 0, 0, slots[in]); + + if(tank.getTankType() != newType) { + PseudoFluidType pseudo = fluidConversions.get(newType); + + if(pseudo != null) { + inputTank.setTankType(pseudo); + outputTank.setTankType(pseudo.getOutputType()); + tank.setTankType(newType); + } + } + + } + } + + @Override + public void setTypeForSync(FluidType type, int index) { + tank.setTankType(type); + } + @Override public void setFillForSync(int fill, int index) { tank.setFill(fill); } @Override - public void setTypeForSync(FluidType type, int index) { - tank.setTankType(type); + public void setFluidFill(int fill, FluidType type) { + if(type == tank.getTankType()) + tank.setFill(fill); } - public void setTankType(int in) { - - if(slots[in] != null && slots[in].getItem() instanceof ItemFluidIdentifier) { - FluidType newType = ItemFluidIdentifier.getType(slots[in]); - - if(tank.getTankType() != newType) { - - PseudoFluidType pseudo = fluidConversions.get(newType); - - if(pseudo != null) { - inputTank.setTankType(pseudo); - outputTank.setTankType(pseudo.getOutputFluid()); - tank.setTankType(newType); - tank.setFill(0); - } - } - return; - } + @Override + public int getFluidFill(FluidType type) { + return tank.getTankType() == type ? tank.getFill() : 0; } @Override public int getMaxFluidFill(FluidType type) { - return type.name().equals(this.tank.getTankType().name()) ? tank.getMaxFill() : 0; + return tank.getTankType() == type ? tank.getMaxFill() : 0; } - + @Override - public int getFluidFill(FluidType type) { - return type.name().equals(this.tank.getTankType().name()) ? tank.getFill() : 0; + public FluidTank[] getReceivingTanks() { + return new FluidTank[] { tank }; } - - @Override - public void setFluidFill(int i, FluidType type) { - if(type.name().equals(tank.getTankType().name())) - tank.setFill(i); - } - + AxisAlignedBB bb = null; @Override @@ -394,10 +382,14 @@ public class TileEntityMachineGasCent extends TileEntityMachineBase implements I public void setTankType(PseudoFluidType type) { - if(this.type.name().equals(type.name())) + if(this.type.equals(type)) return; - this.type = type; + if(type == null) + this.type = PseudoFluidType.NONE; + else + this.type = type; + this.setFill(0); } diff --git a/src/main/resources/assets/hbm/textures/gui/centrifuge_gas.png b/src/main/resources/assets/hbm/textures/gui/centrifuge_gas.png deleted file mode 100644 index 1300c56f928c03969ebe1ce3ff1f7062525e1ab5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3362 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 XG;N>O+lT(_PZ+Sl*;`bZ6BGXf`H&Ri literal 0 HcmV?d00001 From fd901c8aef8ba9fe16a9683429f75df2c215d947 Mon Sep 17 00:00:00 2001 From: Bob Date: Sun, 5 Jun 2022 20:54:15 +0200 Subject: [PATCH 47/80] finished inserter + basic extractor functionality --- .../com/hbm/blocks/network/CraneInserter.java | 63 +++++++++++++++++- .../com/hbm/entity/item/EntityMovingItem.java | 15 +++++ .../container/ContainerCraneInserter.java | 4 +- .../java/com/hbm/items/ItemEnumMulti.java | 6 +- .../java/com/hbm/items/ItemGenericPart.java | 39 +++++++++++ src/main/java/com/hbm/items/ModItems.java | 3 + .../java/com/hbm/main/CraftingManager.java | 6 ++ .../render/entity/item/RenderMovingItem.java | 5 ++ .../java/com/hbm/tileentity/TileMappings.java | 3 + .../network/TileEntityCraneExtractor.java | 51 ++++++++++++++ .../network/TileEntityCraneInserter.java | 39 +++++++++++ src/main/resources/assets/hbm/lang/de_DE.lang | 3 + src/main/resources/assets/hbm/lang/en_US.lang | 3 + .../hbm/textures/items/piston_electric.png | Bin 0 -> 370 bytes .../hbm/textures/items/upgrade_ejector_1.png | Bin 0 -> 403 bytes .../hbm/textures/items/upgrade_ejector_2.png | Bin 0 -> 409 bytes .../hbm/textures/items/upgrade_ejector_3.png | Bin 0 -> 373 bytes .../hbm/textures/items/upgrade_stack_1.png | Bin 0 -> 407 bytes .../hbm/textures/items/upgrade_stack_2.png | Bin 0 -> 405 bytes .../hbm/textures/items/upgrade_stack_3.png | Bin 0 -> 391 bytes 20 files changed, 233 insertions(+), 7 deletions(-) create mode 100644 src/main/java/com/hbm/items/ItemGenericPart.java create mode 100644 src/main/resources/assets/hbm/textures/items/piston_electric.png create mode 100644 src/main/resources/assets/hbm/textures/items/upgrade_ejector_1.png create mode 100644 src/main/resources/assets/hbm/textures/items/upgrade_ejector_2.png create mode 100644 src/main/resources/assets/hbm/textures/items/upgrade_ejector_3.png create mode 100644 src/main/resources/assets/hbm/textures/items/upgrade_stack_1.png create mode 100644 src/main/resources/assets/hbm/textures/items/upgrade_stack_2.png create mode 100644 src/main/resources/assets/hbm/textures/items/upgrade_stack_3.png diff --git a/src/main/java/com/hbm/blocks/network/CraneInserter.java b/src/main/java/com/hbm/blocks/network/CraneInserter.java index bf214709c..a617aaa10 100644 --- a/src/main/java/com/hbm/blocks/network/CraneInserter.java +++ b/src/main/java/com/hbm/blocks/network/CraneInserter.java @@ -11,6 +11,7 @@ import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.IInventory; import net.minecraft.inventory.ISidedInventory; @@ -76,7 +77,10 @@ public class CraneInserter extends BlockCraneBase implements IEnterableBlock { if(te instanceof IInventory) { IInventory inv = (IInventory) te; - int limit = inv.getInventoryStackLimit(); + + addToInventory(inv, access, toAdd, dir.ordinal()); + + /*int limit = inv.getInventoryStackLimit(); int size = access == null ? inv.getSizeInventory() : access.length; @@ -115,7 +119,62 @@ public class CraneInserter extends BlockCraneBase implements IEnterableBlock { return; } } - } + }*/ + } + + if(toAdd != null && toAdd.stackSize > 0) { + addToInventory((TileEntityCraneInserter) world.getTileEntity(x, y, z), null, toAdd, dir.ordinal()); + } + if(toAdd != null && toAdd.stackSize > 0) { + EntityItem drop = new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, toAdd.copy()); + world.spawnEntityInWorld(drop); } } + + public static ItemStack addToInventory(IInventory inv, int[] access, ItemStack toAdd, int side) { + + ISidedInventory sided = inv instanceof ISidedInventory ? (ISidedInventory) inv : null; + int limit = inv.getInventoryStackLimit(); + + int size = access == null ? inv.getSizeInventory() : access.length; + + for(int i = 0; i < size; i++) { + int index = access == null ? i : access[i]; + ItemStack stack = inv.getStackInSlot(index); + + if(stack != null && toAdd.isItemEqual(stack) && ItemStack.areItemStackTagsEqual(toAdd, stack) && stack.stackSize < Math.min(stack.getMaxStackSize(), limit)) { + + int stackLimit = Math.min(stack.getMaxStackSize(), limit); + int amount = Math.min(toAdd.stackSize, stackLimit - stack.stackSize); + + stack.stackSize += amount; + toAdd.stackSize -= amount; + + if(toAdd.stackSize == 0) { + return null; + } + } + } + + for(int i = 0; i < size; i++) { + int index = access == null ? i : access[i]; + ItemStack stack = inv.getStackInSlot(index); + + if(stack == null && (sided != null ? sided.canInsertItem(index, toAdd, side) : inv.isItemValidForSlot(index, toAdd))) { + + int amount = Math.min(toAdd.stackSize, limit); + + ItemStack newStack = toAdd.copy(); + newStack.stackSize = amount; + inv.setInventorySlotContents(index, newStack); + toAdd.stackSize -= amount; + + if(toAdd.stackSize == 0) { + return null; + } + } + } + + return toAdd; + } } diff --git a/src/main/java/com/hbm/entity/item/EntityMovingItem.java b/src/main/java/com/hbm/entity/item/EntityMovingItem.java index 7f3bba107..38cbb86c7 100644 --- a/src/main/java/com/hbm/entity/item/EntityMovingItem.java +++ b/src/main/java/com/hbm/entity/item/EntityMovingItem.java @@ -184,6 +184,21 @@ public class EntityMovingItem extends Entity implements IConveyorItem { enterable.onEnter(worldObj, newPos.getX(), newPos.getY(), newPos.getZ(), dir, this); this.setDead(); } + } else { + + if(!newBlock.getMaterial().isSolid()) { + + newBlock = worldObj.getBlock(newPos.getX(), newPos.getY() - 1, newPos.getZ()); + + if(newBlock instanceof IEnterableBlock) { + + IEnterableBlock enterable = (IEnterableBlock) newBlock; + if(enterable.canEnter(worldObj, newPos.getX(), newPos.getY() - 1, newPos.getZ(), ForgeDirection.UP, this)) { + enterable.onEnter(worldObj, newPos.getX(), newPos.getY() - 1, newPos.getZ(), ForgeDirection.UP, this); + this.setDead(); + } + } + } } } } diff --git a/src/main/java/com/hbm/inventory/container/ContainerCraneInserter.java b/src/main/java/com/hbm/inventory/container/ContainerCraneInserter.java index ff9848108..ad08c4a45 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerCraneInserter.java +++ b/src/main/java/com/hbm/inventory/container/ContainerCraneInserter.java @@ -23,12 +23,12 @@ public class ContainerCraneInserter extends Container { for(int i = 0; i < 3; i++) { for(int j = 0; j < 9; j++) { - this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 84 + i * 18 + 20)); + this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 103 + i * 18)); } } for(int i = 0; i < 9; i++) { - this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 142 + 20)); + this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 161)); } } diff --git a/src/main/java/com/hbm/items/ItemEnumMulti.java b/src/main/java/com/hbm/items/ItemEnumMulti.java index 2419ae0c6..762634440 100644 --- a/src/main/java/com/hbm/items/ItemEnumMulti.java +++ b/src/main/java/com/hbm/items/ItemEnumMulti.java @@ -17,8 +17,8 @@ public class ItemEnumMulti extends Item { //hell yes, now we're thinking with enums! protected Class theEnum; - private boolean multiName; - private boolean multiTexture; + protected boolean multiName; + protected boolean multiTexture; public ItemEnumMulti(Class theEnum, boolean multiName, boolean multiTexture) { this.setHasSubtypes(true); @@ -42,7 +42,7 @@ public class ItemEnumMulti extends Item { return this; } - private IIcon[] icons; + protected IIcon[] icons; @SideOnly(Side.CLIENT) public void registerIcons(IIconRegister reg) { diff --git a/src/main/java/com/hbm/items/ItemGenericPart.java b/src/main/java/com/hbm/items/ItemGenericPart.java new file mode 100644 index 000000000..3e87bb0ca --- /dev/null +++ b/src/main/java/com/hbm/items/ItemGenericPart.java @@ -0,0 +1,39 @@ +package com.hbm.items; + +import com.hbm.lib.RefStrings; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.util.IIcon; + +public class ItemGenericPart extends ItemEnumMulti { + + public static enum EnumPartTpe { + PISTON_PNEUMATIC("piston_pneumatic"), + PISTON_HYDRAULIC("piston_hydraulic"), + PISTON_ELECTRIC("piston_electric"); + + private String texName; + + private EnumPartTpe(String texName) { + this.texName = texName; + } + } + + public ItemGenericPart() { + super(EnumPartTpe.class, true, true); + } + + @SideOnly(Side.CLIENT) + public void registerIcons(IIconRegister reg) { + + Enum[] enums = theEnum.getEnumConstants(); + this.icons = new IIcon[enums.length]; + + for(int i = 0; i < icons.length; i++) { + EnumPartTpe num = (EnumPartTpe)enums[i]; + this.icons[i] = reg.registerIcon(RefStrings.MODID + ":" + num.texName); + } + } +} diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 1318911e2..434a9270c 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -314,6 +314,7 @@ public class ModItems { public static Item sat_base; public static Item thruster_nuclear; public static Item safety_fuse; + public static Item part_generic; public static Item undefined; @@ -2681,6 +2682,7 @@ public class ModItems { sat_base = new Item().setUnlocalizedName("sat_base").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":sat_base"); thruster_nuclear = new Item().setUnlocalizedName("thruster_nuclear").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":thruster_nuclear"); safety_fuse = new Item().setUnlocalizedName("safety_fuse").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":safety_fuse"); + part_generic = new ItemGenericPart().setUnlocalizedName("part_generic").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":part_generic"); undefined = new ItemCustomLore().setUnlocalizedName("undefined").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":undefined"); @@ -6190,6 +6192,7 @@ public class ModItems { GameRegistry.registerItem(chlorine_pinwheel, chlorine_pinwheel.getUnlocalizedName()); GameRegistry.registerItem(ring_starmetal, ring_starmetal.getUnlocalizedName()); GameRegistry.registerItem(deuterium_filter, deuterium_filter.getUnlocalizedName()); + GameRegistry.registerItem(part_generic, part_generic.getUnlocalizedName()); GameRegistry.registerItem(parts_legendary, parts_legendary.getUnlocalizedName()); //Plant Products diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index 66f82c33b..c35eae0b3 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -16,6 +16,7 @@ import static com.hbm.inventory.OreDictManager.*; import com.hbm.items.ModItems; import com.hbm.items.ItemEnums.EnumLegendaryType; import com.hbm.items.ItemEnums.EnumPlantType; +import com.hbm.items.ItemGenericPart.EnumPartTpe; import com.hbm.items.machine.ItemBattery; import com.hbm.items.special.ItemCircuitStarComponent.CircuitComponentType; import com.hbm.items.special.ItemHolotapeImage.EnumHoloImage; @@ -915,6 +916,11 @@ public class CraftingManager { addShapelessAuto(new ItemStack(ModItems.canister_full, 1, Fluids.BIOFUEL.getID()), new Object[] { ModItems.canister_biofuel }); addShapelessAuto(new ItemStack(ModItems.canister_full, 1, Fluids.ETHANOL.getID()), new Object[] { ModItems.canister_ethanol }); + addRecipeAuto(DictFrame.fromOne(ModItems.part_generic, EnumPartTpe.PISTON_PNEUMATIC, 4), new Object[] { " I ", "CPC", " I ", 'I', IRON.ingot(), 'C', CU.ingot(), 'P', IRON.plate() }); + addRecipeAuto(DictFrame.fromOne(ModItems.part_generic, EnumPartTpe.PISTON_HYDRAULIC, 4), new Object[] { " I ", "CPC", " I ", 'I', STEEL.ingot(), 'C', TI.ingot(), 'P', Fluids.LUBRICANT.getDict(1000) }); + addRecipeAuto(DictFrame.fromOne(ModItems.part_generic, EnumPartTpe.PISTON_ELECTRIC, 4), new Object[] { " I ", "CPC", " I ", 'I', TCALLOY.ingot(), 'C', ANY_PLASTIC.ingot(), 'P', ModItems.motor }); + + addShapelessAuto(DictFrame.fromOne(ModItems.parts_legendary, EnumLegendaryType.TIER1), new Object[] { ModItems.ingot_chainsteel, ASBESTOS.ingot(), ModItems.gem_alexandrite }); addShapelessAuto(DictFrame.fromOne(ModItems.parts_legendary, EnumLegendaryType.TIER1, 3), new Object[] { DictFrame.fromOne(ModItems.parts_legendary, EnumLegendaryType.TIER2) }); addShapelessAuto(DictFrame.fromOne(ModItems.parts_legendary, EnumLegendaryType.TIER2), new Object[] { ModItems.ingot_chainsteel, ModItems.ingot_bismuth, ModItems.gem_alexandrite, ModItems.gem_alexandrite }); diff --git a/src/main/java/com/hbm/render/entity/item/RenderMovingItem.java b/src/main/java/com/hbm/render/entity/item/RenderMovingItem.java index 1115a27bf..92747da0f 100644 --- a/src/main/java/com/hbm/render/entity/item/RenderMovingItem.java +++ b/src/main/java/com/hbm/render/entity/item/RenderMovingItem.java @@ -1,5 +1,7 @@ package com.hbm.render.entity.item; +import java.util.Random; + import org.lwjgl.opengl.GL11; import com.hbm.entity.item.EntityMovingItem; @@ -20,6 +22,9 @@ public class RenderMovingItem extends Render { GL11.glPushMatrix(); GL11.glTranslated(x, y, z); + + Random rand = new Random(entity.getEntityId()); + GL11.glTranslated(0, rand.nextDouble() * 0.0625, 0); EntityMovingItem item = (EntityMovingItem) entity; ItemStack stack = item.getItemStack().copy(); diff --git a/src/main/java/com/hbm/tileentity/TileMappings.java b/src/main/java/com/hbm/tileentity/TileMappings.java index 73d9c279a..3101835ac 100644 --- a/src/main/java/com/hbm/tileentity/TileMappings.java +++ b/src/main/java/com/hbm/tileentity/TileMappings.java @@ -315,6 +315,9 @@ public class TileMappings { put(TileEntityPylon.class, "tileentity_pylon_redwire"); put(TileEntityPylonLarge.class, "tileentity_pylon_large"); put(TileEntitySubstation.class, "tileentity_substation"); + + put(TileEntityCraneInserter.class, "tileentity_inserter"); + put(TileEntityCraneExtractor.class, "tileentity_extractor"); } private static void put(Class clazz, String... names) { diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityCraneExtractor.java b/src/main/java/com/hbm/tileentity/network/TileEntityCraneExtractor.java index 95a3561a2..4d1d5f2f2 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityCraneExtractor.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityCraneExtractor.java @@ -1,7 +1,17 @@ package com.hbm.tileentity.network; +import com.hbm.entity.item.EntityMovingItem; import com.hbm.tileentity.TileEntityMachineBase; +import api.hbm.conveyor.IConveyorBelt; +import net.minecraft.block.Block; +import net.minecraft.inventory.IInventory; +import net.minecraft.inventory.ISidedInventory; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.Vec3; +import net.minecraftforge.common.util.ForgeDirection; + public class TileEntityCraneExtractor extends TileEntityMachineBase { public TileEntityCraneExtractor() { @@ -16,5 +26,46 @@ public class TileEntityCraneExtractor extends TileEntityMachineBase { @Override public void updateEntity() { + if(!worldObj.isRemote && worldObj.getTotalWorldTime() % 20 == 0) { + + int amount = 16; + + ForgeDirection dir = ForgeDirection.getOrientation(this.blockMetadata); + TileEntity te = worldObj.getTileEntity(xCoord - dir.offsetX, yCoord - dir.offsetY, zCoord - dir.offsetZ); + Block b = worldObj.getBlock(xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ); + + int[] access = null; + ISidedInventory sided = null; + + if(te instanceof ISidedInventory) { + sided = (ISidedInventory) te; + access = sided.getAccessibleSlotsFromSide(dir.ordinal()); + } + + if(b instanceof IConveyorBelt && te instanceof IInventory) { + IInventory inv = (IInventory) te; + int size = access == null ? inv.getSizeInventory() : access.length; + + for(int i = 0; i < size; i++) { + int index = access == null ? i : access[i]; + ItemStack stack = inv.getStackInSlot(index); + + if(stack != null && (sided == null || sided.canExtractItem(index, stack, dir.ordinal()))){ + stack = stack.copy(); + int toSend = Math.min(amount, stack.stackSize); + inv.decrStackSize(index, toSend); + stack.stackSize = toSend; + + EntityMovingItem moving = new EntityMovingItem(worldObj); + Vec3 pos = Vec3.createVectorHelper(xCoord + 0.5 + dir.offsetX * 0.55, yCoord + 0.5 + dir.offsetY * 0.55, zCoord + 0.5 + dir.offsetZ * 0.55); + Vec3 snap = ((IConveyorBelt) b).getClosestSnappingPosition(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, pos); + moving.setPosition(snap.xCoord, snap.yCoord, snap.zCoord); + moving.setItemStack(stack); + worldObj.spawnEntityInWorld(moving); + break; + } + } + } + } } } diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityCraneInserter.java b/src/main/java/com/hbm/tileentity/network/TileEntityCraneInserter.java index bcfca593c..e5e3e90ff 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityCraneInserter.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityCraneInserter.java @@ -1,5 +1,6 @@ package com.hbm.tileentity.network; +import com.hbm.blocks.network.CraneInserter; import com.hbm.inventory.container.ContainerCraneInserter; import com.hbm.inventory.gui.GUICraneInserter; import com.hbm.tileentity.IGUIProvider; @@ -10,7 +11,12 @@ import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; +import net.minecraft.inventory.IInventory; +import net.minecraft.inventory.ISidedInventory; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; public class TileEntityCraneInserter extends TileEntityMachineBase implements IGUIProvider { @@ -26,6 +32,39 @@ public class TileEntityCraneInserter extends TileEntityMachineBase implements IG @Override public void updateEntity() { + if(!worldObj.isRemote) { + + ForgeDirection dir = ForgeDirection.getOrientation(this.blockMetadata); + TileEntity te = worldObj.getTileEntity(xCoord - dir.offsetX, yCoord - dir.offsetY, zCoord - dir.offsetZ); + + int[] access = null; + + if(te instanceof ISidedInventory) { + ISidedInventory sided = (ISidedInventory) te; + access = sided.getAccessibleSlotsFromSide(dir.ordinal()); + } + + if(te instanceof IInventory) { + for(int i = 0; i < slots.length; i++) { + + ItemStack stack = slots[i]; + + if(stack != null) { + ItemStack ret = CraneInserter.addToInventory((ISidedInventory) te, access, stack.copy(), dir.ordinal()); + + if(ret == null || ret.stackSize != stack.stackSize) { + slots[i] = ret; + break; + } + } + } + } + } + } + + @Override + public boolean isItemValidForSlot(int i, ItemStack itemStack) { + return true; } @Override diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index a633cadc1..28ff298e5 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -2111,6 +2111,9 @@ item.pancake.name=Pfannkuchen aus Altmetall, Nägeln und Edelsteinpulver item.part_beryllium.name=Berylliumstaubkiste item.part_carbon.name=Kohlenstoffstaubkiste item.part_copper.name=Kupferstaubkiste +item.part_generic.piston_electric.name=Electrischer Kolben +item.part_generic.piston_hydraulic.name=Hydraulischer Kolben +item.part_generic.piston_pneumatic.name=Pneumatischer Kolben item.part_lithium.name=Lithiumstaubkiste item.part_plutonium.name=Plutoniumstaubkiste item.particle_aelectron.name=Positronenkapsel diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index fe780307e..f0fb54273 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -2385,6 +2385,9 @@ item.pancake.name=Pancake made from Scrap Metal, Nails and Gem Dust item.part_beryllium.name=Box of Beryllium Dust item.part_carbon.name=Box of Carbon Dust item.part_copper.name=Box of Copper Dust +item.part_generic.piston_electric.name=Electric Piston +item.part_generic.piston_hydraulic.name=Hydraulic Piston +item.part_generic.piston_pneumatic.name=Pneumatic Piston item.part_lithium.name=Box of Lithium Dust item.part_plutonium.name=Box of Plutonium Dust item.particle_aelectron.name=Positron Capsule diff --git a/src/main/resources/assets/hbm/textures/items/piston_electric.png b/src/main/resources/assets/hbm/textures/items/piston_electric.png new file mode 100644 index 0000000000000000000000000000000000000000..3d8285ff9aaa202812e03438f257788b47a7150d GIT binary patch literal 370 zcmV-&0ge8NP)IH$GU-$zH=vnMCi$Tl|vLKo) z%Ths7NmkX(HNmmfBVOA~As>R2v}+4Pa@4!$op*9??s*0+xEYOfxqg^VjV4`w2$zfBz!2v{Sp7XSdeAe&m)vktPvp3 z^EMf0tv4s4VsO0UCj6R%Vtv=cVdde=di}Q?6oD%9|0D-t5E$Xt@uctk2_&AM1j4i! QeEP)NklAs=6vzKYhb-dF9<7j3`~Zby=up}rbn8_79>&o+^%Gz3-9`Md@I4c)2PMxEXS0iM(J*a0O|g70JT*+I{B(Y|^I z_9HAF?lFjC0Kj9nE92W%3l8VFK2Lz{4o2wov7D@r<@O`Iyd7l}McQ~dStATTig%Ft zEhB4xyjs-&z@TJG`b78NZh$&4`>=gBNIF1`*nQrFcE3S$gH zh=PsrH>xcREek>j2q7@EtWpb&(CHth?6PxO*)(M$Gfl09W<58F`5~!7zCyO3COe$N x;ryg!RsRclHa)eK-6JK3|Yj?9<31Q<_9PkutTv!aO+h39@WwM0Xk+E z^&4cdEES;pNTf}ww z`p(e_3Q@3~OyUY_&jX<0IGOrtIxPT{b*Dxfb$ac2JZ`tY9jI`ua9w8absCOC?eZ1& z17>$OwC~U2_%;Xt=v1rNLeM@9VY8#`+ueh|i~8Zn{eY(z(lM}Ft?0B`0L({ADkaSw zM1He~+8-_!1%RRo$4d2@N|$&W1aa$0Y#~s+rc&3ID*ASp`Dm$4Hcc~*kC~5_`2HK^ z^N)j#t>b7PifNiiDN{CvpX6KUTNYAEq?Gh6E7L-H3Q=Xlh!ai2&{{}M;rNl{5li5<)r=>)oZGUTH-ez=_LB!xY&-IS2eZ7ebG${00000NkvXXu0mjf Dm2tIU literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/upgrade_ejector_3.png b/src/main/resources/assets/hbm/textures/items/upgrade_ejector_3.png new file mode 100644 index 0000000000000000000000000000000000000000..f791711268a7f4bf2d1d347e70dc67fecd9207aa GIT binary patch literal 373 zcmV-*0gC>KP)i7p{k|E6atNq?{TCiEvH5PT<%i9(v zrI;hn3TH86tc|Ag@5tZ*icF0yeNz@XsvrTR__?Mu#6&Tt)aEXGKvN*^tWI- z2SHoNg1~8^w}tK{8Kd2TN!Z1La|q7=jBM+Fp){uZ(0Yv>ZR388FCUmqN3_Kc;V-(( TYQ6ui00000NkvXXu0mjfulcG& literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/upgrade_stack_1.png b/src/main/resources/assets/hbm/textures/items/upgrade_stack_1.png new file mode 100644 index 0000000000000000000000000000000000000000..a478d4b053f3a4e7692de9bf183283a2a4ed7f2f GIT binary patch literal 407 zcmV;I0cie-P)ycP~l?r{zw2Y4_yF2gBckuG7nw!F2)rAP~?o_VL6ZozlDpm0*V}hWnt3npur3r z?mYpUAtr%|+wlYdFfzM|KJOhvXBxV}Gq7Bv>bLut+FtsL%@8lI=`sj{LOr!T`2I)v z9hAY#AB-O2J4h^qZpJe&nOhLinFcajRBS;&RaK~}io5$+ZjW0~PCsKCD`sqM7}>_) zD~_vD)#XWPlBw;XUXwaeZjx>AS4d`| zC|GA2bf)F>zag_l?*89o3R)yTjUvl6>a_wb@C(@3r|~4A{a641002ovPDHLkV1j#y Bu3`WH literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/upgrade_stack_2.png b/src/main/resources/assets/hbm/textures/items/upgrade_stack_2.png new file mode 100644 index 0000000000000000000000000000000000000000..b2bcf0eeb3a69a59ac84cb0999cebe5bcd162c0f GIT binary patch literal 405 zcmV;G0c!qLLP3IiG&^*|sY&|_ zZnLCCBa%^ahx8Zi|e$#JyxaYplInQ~|3jt)=lhFj#et2Y@tGm3fvF-jt5yOOob4L9fEv1|Ex%kvA6320z4nQ&g+17Oe{lFKCA zK^*G%t@eX^2eRx5rb*wie3@@L{k3izr#=%Ef%%HGU2ZVw4kLHdG!0GDxVs;P)&|`n zw*5x-=-rL6&?|`#CK#jj;nsz^pt!y&#~LJeK^=c{gUk9stVv`Sf{!E#)rIveL=_kH z0!6(L(*H(`l33fnlj+f3!qezwz9N^2&>nsOP;#v!vNP~G00000NkvXXu0mjfx1q3H literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/upgrade_stack_3.png b/src/main/resources/assets/hbm/textures/items/upgrade_stack_3.png new file mode 100644 index 0000000000000000000000000000000000000000..705d1dbded7373e7d5650abbdc82e1d512c2315e GIT binary patch literal 391 zcmV;20eJq2P)4BlgAmCiBu-M$-9e$d_z8@3a%%kq zaSmDC3yF&mX$A{78E9z4<#kA}UM_#|H$CL?K6lT(_W}x(1vJ?Msk)9<>5J## z`=>(Jpb4>je`T4AoKoSuGUBQ$G8PKv_WK+9Y=C?7X0( zog(F7rJnK`EVB!8ZK8{PG7_hs=R7*eEx+#Z`UXI+(Q6_q=b^+}=2~2F+a%$KT$<_0?gmNo5z*N797o!e$n#iY>DX%j}l)zaiJAaCbeK ll9nk?qs)ATwqBtnegRj-tP|^beUShF002ovPDHLkV1lMyr5OMK literal 0 HcmV?d00001 From cfe90f281ad7f1986de82ca72e5189f55d416650 Mon Sep 17 00:00:00 2001 From: Vaern Date: Sun, 5 Jun 2022 20:32:47 -0700 Subject: [PATCH 48/80] plenty more changes; RBMK rounding errors fixed --- .../nei/GasCentrifugeRecipeHandler.java | 71 +++++++++--- .../container/ContainerMachineGasCent.java | 12 +- .../hbm/inventory/gui/GUIMachineGasCent.java | 105 +++++++++++------- .../recipes/GasCentrifugeRecipes.java | 53 +++++---- .../java/com/hbm/main/CraftingManager.java | 2 +- .../machine/TileEntityMachineGasCent.java | 27 ++--- .../machine/rbmk/TileEntityRBMKBoiler.java | 31 ++++-- src/main/resources/assets/hbm/lang/en_US.lang | 8 ++ .../gui/nei/gui_nei_centrifuge_gas.png | Bin 0 -> 2391 bytes .../gui/processing/gui_centrifuge_gas.png | Bin 3291 -> 2501 bytes 10 files changed, 195 insertions(+), 114 deletions(-) create mode 100644 src/main/resources/assets/hbm/textures/gui/nei/gui_nei_centrifuge_gas.png diff --git a/src/main/java/com/hbm/handler/nei/GasCentrifugeRecipeHandler.java b/src/main/java/com/hbm/handler/nei/GasCentrifugeRecipeHandler.java index 246a9e5fb..8fdda9e8a 100644 --- a/src/main/java/com/hbm/handler/nei/GasCentrifugeRecipeHandler.java +++ b/src/main/java/com/hbm/handler/nei/GasCentrifugeRecipeHandler.java @@ -1,18 +1,27 @@ package com.hbm.handler.nei; +import static codechicken.lib.gui.GuiDraw.drawTexturedModalRect; + import java.awt.Rectangle; import java.util.ArrayList; import java.util.Arrays; +import java.util.LinkedList; import java.util.List; import java.util.Map; +import com.hbm.handler.nei.AnvilRecipeHandler.RecipeSet; import com.hbm.inventory.gui.GUIMachineGasCent; import com.hbm.inventory.recipes.GasCentrifugeRecipes; import com.hbm.inventory.recipes.MachineRecipes; +import com.hbm.lib.RefStrings; import codechicken.nei.NEIServerUtils; import codechicken.nei.PositionedStack; import codechicken.nei.recipe.TemplateRecipeHandler; +import codechicken.nei.recipe.TemplateRecipeHandler.RecipeTransferRect; +import codechicken.nei.recipe.TemplateRecipeHandler.RecipeTransferRectHandler; +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.FontRenderer; import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.item.ItemStack; @@ -23,13 +32,17 @@ public class GasCentrifugeRecipeHandler extends TemplateRecipeHandler { public class SmeltingSet extends TemplateRecipeHandler.CachedRecipe { PositionedStack input; List output = new ArrayList(); + boolean isHighSpeed; + int centNumber; - public SmeltingSet(ItemStack input, ItemStack[] results) { + public SmeltingSet(ItemStack input, ItemStack[] results, boolean isHighSpeed, int centNumber) { input.stackSize = 1; - this.input = new PositionedStack(input, 25, 35 - 11); + this.input = new PositionedStack(input, 52 - 5, 35 - 11); + this.isHighSpeed = isHighSpeed; + this.centNumber = centNumber; for(byte i = 0; i < results.length; i++) { - this.output.add(new PositionedStack(results[i], i % 2 == 0 ? 128 : 146, i < 2 ? 26 - 11 : 44 - 11 )); + this.output.add(new PositionedStack(results[i], i % 2 == 0 ? 134 - 5 : 152 - 5, i < 2 ? 26 - 11 : 44 - 11 )); } } @@ -68,12 +81,7 @@ public class GasCentrifugeRecipeHandler extends TemplateRecipeHandler { @Override public String getGuiTexture() { - return GUIMachineGasCent.texture.toString(); - } - - @Override - public Class getGuiClass() { - return GUIMachineGasCent.class; + return RefStrings.MODID + ":textures/gui/nei/gui_nei_centrifuge_gas.png"; } @Override @@ -91,7 +99,7 @@ public class GasCentrifugeRecipeHandler extends TemplateRecipeHandler { if((outputId.equals("gascentprocessing")) && getClass() == GasCentrifugeRecipeHandler.class) { Map recipes = GasCentrifugeRecipes.getGasCentrifugeRecipes(); for(Map.Entry recipe : recipes.entrySet()) { - this.arecipes.add(new SmeltingSet((ItemStack) recipe.getKey(), (ItemStack[]) recipe.getValue())); + this.arecipes.add(new SmeltingSet((ItemStack) recipe.getKey(), (ItemStack[]) recipe.getValue()[0], (boolean) recipe.getValue()[1], (int) recipe.getValue()[2])); } } else { super.loadCraftingRecipes(outputId, results); @@ -102,9 +110,9 @@ public class GasCentrifugeRecipeHandler extends TemplateRecipeHandler { public void loadCraftingRecipes(ItemStack result) { Map recipes = GasCentrifugeRecipes.getGasCentrifugeRecipes(); for(Map.Entry recipe : recipes.entrySet()) { - if(NEIServerUtils.areStacksSameType((ItemStack) recipe.getValue()[0], result) || NEIServerUtils.areStacksSameType((ItemStack) recipe.getValue()[1], result) - || NEIServerUtils.areStacksSameType((ItemStack) recipe.getValue()[2], result)) - this.arecipes.add(new SmeltingSet((ItemStack) recipe.getKey(), (ItemStack[]) recipe.getValue())); + if(NEIServerUtils.areStacksSameType(((ItemStack[]) recipe.getValue()[0])[0], result) || NEIServerUtils.areStacksSameType(((ItemStack[]) recipe.getValue()[0])[1], result) + || NEIServerUtils.areStacksSameType(((ItemStack[]) recipe.getValue()[0])[2], result) || NEIServerUtils.areStacksSameType(((ItemStack[]) recipe.getValue()[0])[3], result)) + this.arecipes.add(new SmeltingSet((ItemStack) recipe.getKey(), (ItemStack[]) recipe.getValue()[0], (boolean) recipe.getValue()[1], (int) recipe.getValue()[2])); } } @@ -122,7 +130,7 @@ public class GasCentrifugeRecipeHandler extends TemplateRecipeHandler { Map recipes = GasCentrifugeRecipes.getGasCentrifugeRecipes(); for(Map.Entry recipe : recipes.entrySet()) { if(compareFluidStacks(ingredient, (ItemStack) recipe.getKey())) - this.arecipes.add(new SmeltingSet((ItemStack) recipe.getKey(), (ItemStack[]) recipe.getValue())); + this.arecipes.add(new SmeltingSet((ItemStack) recipe.getKey(), (ItemStack[]) recipe.getValue()[0], (boolean) recipe.getValue()[1], (int) recipe.getValue()[2])); } } @@ -133,11 +141,42 @@ public class GasCentrifugeRecipeHandler extends TemplateRecipeHandler { @Override public void drawExtras(int recipe) { drawProgressBar(3, 51 - 45, 176, 0, 16, 34, 480, 7); - drawProgressBar(69, 26, 208, 0, 33, 12, 200, 0); + + SmeltingSet set = (SmeltingSet) this.arecipes.get(recipe); + + drawProgressBar(79 - 5, 28 - 11, 208, 0, 44, 37, set.isHighSpeed ? 150 - 70 : 150, 0); + + FontRenderer fontRenderer = Minecraft.getMinecraft().fontRenderer; + + String centrifuges = set.centNumber + " G. Cents"; + fontRenderer.drawString(centrifuges, (50 - fontRenderer.getStringWidth(centrifuges) / 2), 21 - 11, 65280); } + + public LinkedList transferRectsRec = new LinkedList(); + public LinkedList transferRectsGui = new LinkedList(); + public LinkedList> guiRec = new LinkedList>(); + public LinkedList> guiGui = new LinkedList>(); @Override public void loadTransferRects() { - transferRects.add(new RecipeTransferRect(new Rectangle(69, 26, 32, 12), "gascentprocessing")); + transferRectsGui = new LinkedList(); + guiGui = new LinkedList>(); + + transferRects.add(new RecipeTransferRect(new Rectangle(79 - 5, 26 - 11, 44, 40), "gascentprocessing")); + transferRectsGui.add(new RecipeTransferRect(new Rectangle(70 - 5, 36 - 11, 36, 12), "gascentprocessing")); + + guiGui.add(GUIMachineGasCent.class); + RecipeTransferRectHandler.registerRectsToGuis(getRecipeTransferRectGuis(), transferRects); + RecipeTransferRectHandler.registerRectsToGuis(guiGui, transferRectsGui); + } + + @Override + public void drawBackground(int recipe) { + super.drawBackground(recipe); + + SmeltingSet set = (SmeltingSet) this.arecipes.get(recipe); + + if(set.isHighSpeed) + drawTexturedModalRect(30 - 5, 35 - 11, 192, 0, 16, 16); } } diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineGasCent.java b/src/main/java/com/hbm/inventory/container/ContainerMachineGasCent.java index 26d58fac5..6381575fb 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerMachineGasCent.java +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineGasCent.java @@ -21,25 +21,25 @@ public class ContainerMachineGasCent extends Container { //Output for(int i = 0; i < 2; i++) { for(int j = 0; j < 2; j++) { - this.addSlotToContainer(new SlotMachineOutput(tedf, j + i * 2, 133 + j * 18, 26 + i * 18)); + this.addSlotToContainer(new SlotMachineOutput(tedf, j + i * 2, 71 + j * 18, 53 + i * 18)); } } //Battery - this.addSlotToContainer(new Slot(tedf, 4, 8, 53)); + this.addSlotToContainer(new Slot(tedf, 4, 182, 71)); //Fluid ID IO - this.addSlotToContainer(new Slot(tedf, 5, 30, 35)); + this.addSlotToContainer(new Slot(tedf, 5, 91, 15)); //upgrade - this.addSlotToContainer(new Slot(tedf, 6, 82, 19)); + this.addSlotToContainer(new Slot(tedf, 6, 69, 15)); for(int i = 0; i < 3; i++) { for(int j = 0; j < 9; j++) { - this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 84 + i * 18)); + this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 122 + i * 18)); } } for(int i = 0; i < 9; i++) { - this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 142)); + this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 180)); } } diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineGasCent.java b/src/main/java/com/hbm/inventory/gui/GUIMachineGasCent.java index 9202e0d18..8577cbbcd 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineGasCent.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineGasCent.java @@ -9,8 +9,10 @@ import com.hbm.tileentity.machine.TileEntityMachineGasCent; import com.hbm.util.I18nUtil; import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.resources.I18n; import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.ResourceLocation; public class GUIMachineGasCent extends GuiInfoContainer { @@ -22,31 +24,42 @@ public class GUIMachineGasCent extends GuiInfoContainer { super(new ContainerMachineGasCent(invPlayer, tedf)); gasCent = tedf; - this.xSize = 176; - this.ySize = 168; + this.xSize = 206; + this.ySize = 204; } @Override public void drawScreen(int mouseX, int mouseY, float f) { super.drawScreen(mouseX, mouseY, f); - this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 58, guiTop + 30, 8, 33, mouseX, mouseY, new String[] {gasCent.inputTank.getTankType().getName(), gasCent.inputTank.getFill() + " / " + gasCent.inputTank.getMaxFill() + " mB"}); - this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 114, guiTop + 30, 8, 33, mouseX, mouseY, new String[] {gasCent.outputTank.getTankType().getName(), gasCent.outputTank.getFill() + " / " + gasCent.outputTank.getMaxFill() + " mB"}); + String[] inTankInfo = new String[] {gasCent.inputTank.getTankType().getName(), gasCent.inputTank.getFill() + " / " + gasCent.inputTank.getMaxFill() + " mB"}; + if(gasCent.inputTank.getTankType().getIfHighSpeed()) { + if(gasCent.getProcessingSpeed() > gasCent.processingSpeed - 70) + inTankInfo[0] = EnumChatFormatting.DARK_RED + inTankInfo[0]; + else + inTankInfo[0] = EnumChatFormatting.GOLD + inTankInfo[0]; + } + String[] outTankInfo = new String[] {gasCent.outputTank.getTankType().getName(), gasCent.outputTank.getFill() + " / " + gasCent.outputTank.getMaxFill() + " mB"}; + if(gasCent.outputTank.getTankType().getIfHighSpeed()) + outTankInfo[0] = EnumChatFormatting.GOLD + outTankInfo[0]; - this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 8, guiTop + 51 - 34, 16, 34, gasCent.power, gasCent.maxPower); + this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 15, guiTop + 15, 24, 55, mouseX, mouseY, inTankInfo); + this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 137, guiTop + 15, 25, 55, mouseX, mouseY, outTankInfo); + + this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 182, guiTop + 69 - 52, 16, 52, gasCent.power, gasCent.maxPower); String[] enrichmentText = I18nUtil.resolveKeyArray("desc.gui.gasCent.enrichment"); - this.drawCustomInfoStat(mouseX, mouseY, guiLeft - 16, guiTop + 16, 16, 16, guiLeft - 8, guiTop + 16 + 16, enrichmentText); + this.drawCustomInfoStat(mouseX, mouseY, guiLeft - 12, guiTop + 16, 16, 16, guiLeft - 8, guiTop + 16 + 16, enrichmentText); String[] transferText = I18nUtil.resolveKeyArray("desc.gui.gasCent.output"); - this.drawCustomInfoStat(mouseX, mouseY, guiLeft - 16, guiTop + 32, 16, 16, guiLeft - 8, guiTop + 32 + 16, transferText); + this.drawCustomInfoStat(mouseX, mouseY, guiLeft - 12, guiTop + 32, 16, 16, guiLeft - 8, guiTop + 32 + 16, transferText); } @Override protected void drawGuiContainerForegroundLayer(int i, int j) { String name = this.gasCent.hasCustomInventoryName() ? this.gasCent.getInventoryName() : I18n.format(this.gasCent.getInventoryName()); - this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); + //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); } @@ -56,44 +69,50 @@ public class GUIMachineGasCent extends GuiInfoContainer { Minecraft.getMinecraft().getTextureManager().bindTexture(texture); drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); - int i = (int)gasCent.getPowerRemainingScaled(34); - drawTexturedModalRect(guiLeft + 8, guiTop + 51 - i, 176, 34 - i, 16, i); + int i = (int)gasCent.getPowerRemainingScaled(52); + drawTexturedModalRect(guiLeft + 182, guiTop + 69 - i, 206, 52 - i, 16, i); - int j = (int)gasCent.getCentrifugeProgressScaled(33); - drawTexturedModalRect(guiLeft + 74, guiTop + 37, 208, 0, j, 12); + int j = (int)gasCent.getCentrifugeProgressScaled(36); + drawTexturedModalRect(guiLeft + 70, guiTop + 35, 206, 52, j, 13); - int a = gasCent.getTankScaled(31, 0); - switch (gasCent.inputTank.getTankType()) { - case PF6: - drawTexturedModalRect(guiLeft + 58, guiTop + 62 - a, 200, 31 - a, 8, a); - break; - case MUD: - drawTexturedModalRect(guiLeft + 58, guiTop + 62 - a, 192, 63 - a, 8, a); - break; - case MUD_HEAVY: - drawTexturedModalRect(guiLeft + 58, guiTop + 62 - a, 192, 63 - a, 8, a); - break; - case NONE: - break; - default: - drawTexturedModalRect(guiLeft + 58, guiTop + 62 - a, 192, 31 - a, 8, a); - } + this.renderTank(guiLeft + 16, guiTop + 16, this.zLevel, 6, 52, gasCent.inputTank.getFill(), gasCent.inputTank.getMaxFill()); + this.renderTank(guiLeft + 32, guiTop + 16, this.zLevel, 6, 52, gasCent.inputTank.getFill(), gasCent.inputTank.getMaxFill()); - int b = gasCent.getTankScaled(31, 1); - switch (gasCent.outputTank.getTankType()) { - case PF6: - drawTexturedModalRect(guiLeft + 114, guiTop + 62 - b, 200, 31 - b, 8, b); - break; - case MUD_HEAVY: - drawTexturedModalRect(guiLeft + 114, guiTop + 62 - b, 192, 63 - b, 8, b); - break; - case NONE: - break; - default: - drawTexturedModalRect(guiLeft + 114, guiTop + 62 - b, 192, 31 - b, 8, b); - } + this.renderTank(guiLeft + 138, guiTop + 16, this.zLevel, 6, 52, gasCent.outputTank.getFill(), gasCent.outputTank.getMaxFill()); + this.renderTank(guiLeft + 154, guiTop + 16, this.zLevel, 6, 52, gasCent.outputTank.getFill(), gasCent.outputTank.getMaxFill()); - this.drawInfoPanel(guiLeft - 16, guiTop + 16, 16, 16, 3); - this.drawInfoPanel(guiLeft - 16, guiTop + 32, 16, 16, 2); + this.drawInfoPanel(guiLeft - 12, guiTop + 16, 16, 16, 3); + this.drawInfoPanel(guiLeft - 12, guiTop + 32, 16, 16, 2); + } + + public void renderTank(int x, int y, double z, int width, int height, int fluid, int maxFluid) { + + GL11.glEnable(GL11.GL_BLEND); + + y += height; + + Minecraft.getMinecraft().getTextureManager().bindTexture(gasCent.tank.getTankType().getTexture()); + + int i = (fluid * height) / maxFluid; + + double minX = x; + double maxX = x + width; + double minY = y - height; + double maxY = y - (height - i); + + double minV = 1D; + double maxV = 1D - i / 16D; + double minU = 0D; + double maxU = width / 16D; + + Tessellator tessellator = Tessellator.instance; + tessellator.startDrawingQuads(); + tessellator.addVertexWithUV(minX, maxY, z, minU, maxV); + tessellator.addVertexWithUV(maxX, maxY, z, maxU, maxV); + tessellator.addVertexWithUV(maxX, minY, z, maxU, minV); + tessellator.addVertexWithUV(minX, minY, z, minU, minV); + tessellator.draw(); + + GL11.glDisable(GL11.GL_BLEND); } } diff --git a/src/main/java/com/hbm/inventory/recipes/GasCentrifugeRecipes.java b/src/main/java/com/hbm/inventory/recipes/GasCentrifugeRecipes.java index de95ef888..a7b78c542 100644 --- a/src/main/java/com/hbm/inventory/recipes/GasCentrifugeRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/GasCentrifugeRecipes.java @@ -9,37 +9,41 @@ import com.hbm.inventory.FluidStack; import com.hbm.inventory.fluid.Fluids; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemFluidIcon; +import com.hbm.util.I18nUtil; +import com.hbm.util.Tuple.Pair; import net.minecraft.item.ItemStack; public class GasCentrifugeRecipes { - //TODO: Change "String name" to I18n instead of unlocalized BS public static enum PseudoFluidType { - NONE (0, 0, null, "Empty", false, (ItemStack[])null), + NONE (0, 0, null, false, (ItemStack[])null), - HEUF6 (300, 0, NONE, "High Enriched UF6", true, new ItemStack(ModItems.nugget_u238, 2), new ItemStack(ModItems.nugget_u235, 1), new ItemStack(ModItems.fluorite, 1)), - MEUF6 (200, 100, HEUF6, "Medium Enriched UF6", false, new ItemStack(ModItems.nugget_u238, 1)), - LEUF6 (300, 200, MEUF6, "Low Enriched UF6", false, new ItemStack(ModItems.nugget_u238, 1), new ItemStack(ModItems.fluorite, 1)), - NUF6 (400, 300, LEUF6, "Natural UF6", false, new ItemStack(ModItems.nugget_u238, 1)), + HEUF6 (300, 0, NONE, true, new ItemStack(ModItems.nugget_u238, 2), new ItemStack(ModItems.nugget_u235, 1), new ItemStack(ModItems.fluorite, 1)), + MEUF6 (200, 100, HEUF6, false, new ItemStack(ModItems.nugget_u238, 1)), + LEUF6 (300, 200, MEUF6, false, new ItemStack(ModItems.nugget_u238, 1), new ItemStack(ModItems.fluorite, 1)), + NUF6 (400, 300, LEUF6, false, new ItemStack(ModItems.nugget_u238, 1)), - PF6 (300, 0, NONE, "Plutonium Hexafluoride", false, new ItemStack(ModItems.nugget_pu238, 1), new ItemStack(ModItems.nugget_pu_mix, 2), new ItemStack(ModItems.fluorite, 1)), + PF6 (300, 0, NONE, false, new ItemStack(ModItems.nugget_pu238, 1), new ItemStack(ModItems.nugget_pu_mix, 2), new ItemStack(ModItems.fluorite, 1)), - MUD_HEAVY (500, 0, NONE, "Heavy Mud Fraction", false, new ItemStack(ModItems.powder_iron, 1), new ItemStack(ModItems.dust, 1), new ItemStack(ModItems.nuclear_waste_tiny, 1)), - MUD (1000, 500, MUD_HEAVY, "Poisonous Mud", false, new ItemStack(ModItems.powder_lead, 1), new ItemStack(ModItems.dust, 1)); + MUD_HEAVY (500, 0, NONE, false, new ItemStack(ModItems.powder_iron, 1), new ItemStack(ModItems.dust, 1), new ItemStack(ModItems.nuclear_waste_tiny, 1)), + MUD (1000, 500, MUD_HEAVY, false, new ItemStack(ModItems.powder_lead, 1), new ItemStack(ModItems.dust, 1)); + + //TODO for bob: consider more fluid types + //Schraranium Trisulfide for more schrab-containing, pre-SILEX processing using the crystals? + //Gaseous Nuclear Waste: because why not? Large inputs could output Xe-135 and maybe some other fun stuff... + // int fluidConsumed; int fluidProduced; PseudoFluidType outputFluid; - String name; boolean isHighSpeed; ItemStack[] output; - PseudoFluidType(int fluidConsumed, int fluidProduced, PseudoFluidType outputFluid, String name, boolean isHighSpeed, ItemStack... output) { + PseudoFluidType(int fluidConsumed, int fluidProduced, PseudoFluidType outputFluid, boolean isHighSpeed, ItemStack... output) { this.fluidConsumed = fluidConsumed; this.fluidProduced = fluidProduced; this.outputFluid = outputFluid; - this.name = name; this.isHighSpeed = isHighSpeed; this.output = output; } @@ -57,7 +61,7 @@ public class GasCentrifugeRecipes { } public String getName() { - return this.name; + return I18nUtil.resolveKey("hbmpseudofluid.".concat(this.toString().toLowerCase())); } public boolean getIfHighSpeed() { @@ -71,7 +75,8 @@ public class GasCentrifugeRecipes { }; /* Recipe NEI Handler */ - private static Map gasCent = new HashMap(); + //Fluid input; ItemStack[] outputs, isHighSpeed, # of centrifuges + private static Map gasCent = new HashMap(); //Iterators are lots of fun public static Map getGasCentrifugeRecipes() { @@ -79,10 +84,10 @@ public class GasCentrifugeRecipes { Iterator itr = gasCent.entrySet().iterator(); while(itr.hasNext()) { - Map.Entry entry = (Entry) itr.next(); + Map.Entry entry = (Entry) itr.next(); FluidStack input = (FluidStack) entry.getKey(); ItemStack[] out = new ItemStack[4]; - ItemStack[] outputs = (ItemStack[]) entry.getValue(); + ItemStack[] outputs = (ItemStack[]) entry.getValue()[0]; for(int j = 0; j < outputs.length; j++) { out[j] = outputs[j].copy(); @@ -91,18 +96,20 @@ public class GasCentrifugeRecipes { if(out[j] == null) out[j] = new ItemStack(ModItems.nothing); - recipes.put(ItemFluidIcon.make(input.type, input.fill), outputs); + recipes.put(ItemFluidIcon.make(input.type, input.fill), new Object[] { out, entry.getValue()[1], entry.getValue()[2] }); } return recipes; } public static void register() { - gasCent.put(new FluidStack(1200, Fluids.UF6), new ItemStack[] - {new ItemStack(ModItems.nugget_u238, 11), new ItemStack(ModItems.nugget_u235, 1), new ItemStack(ModItems.fluorite, 4)}); - gasCent.put(new FluidStack(900, Fluids.PUF6), new ItemStack[] - {new ItemStack(ModItems.nugget_pu238, 3), new ItemStack(ModItems.nugget_pu_mix, 6), new ItemStack(ModItems.fluorite, 3)}); - gasCent.put(new FluidStack(1000, Fluids.WATZ), new ItemStack[] - {new ItemStack(ModItems.powder_iron, 1), new ItemStack(ModItems.powder_lead, 1), new ItemStack(ModItems.nuclear_waste_tiny, 1), new ItemStack(ModItems.dust, 2)}); + gasCent.put(new FluidStack(1200, Fluids.UF6), new Object[] { new ItemStack[] + {new ItemStack(ModItems.nugget_u238, 11), new ItemStack(ModItems.nugget_u235, 1), new ItemStack(ModItems.fluorite, 4)}, true, 4 }); + gasCent.put(new FluidStack(1200, Fluids.UF6), new Object[] { new ItemStack[] + {new ItemStack(ModItems.nugget_u238, 6), new ItemStack(ModItems.nugget_uranium_fuel, 2), new ItemStack(ModItems.fluorite, 4)}, false, 2 }); + gasCent.put(new FluidStack(900, Fluids.PUF6), new Object[] { new ItemStack[] + {new ItemStack(ModItems.nugget_pu238, 3), new ItemStack(ModItems.nugget_pu_mix, 6), new ItemStack(ModItems.fluorite, 3)}, false, 1 }); + gasCent.put(new FluidStack(1000, Fluids.WATZ), new Object[] { new ItemStack[] + {new ItemStack(ModItems.powder_iron, 1), new ItemStack(ModItems.powder_lead, 1), new ItemStack(ModItems.nuclear_waste_tiny, 1), new ItemStack(ModItems.dust, 2)}, false, 2 }); } } diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index 66f82c33b..d67fc1072 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -767,7 +767,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModItems.upgrade_centrifuge, 1), new Object[] { "PHP", "PUP", "DTD", 'P', ModItems.centrifuge_element, 'H', Blocks.hopper, 'U', ModItems.upgrade_shredder, 'D', ANY_PLASTIC.ingot(), 'T', ModBlocks.machine_transformer }); addRecipeAuto(new ItemStack(ModItems.upgrade_crystallizer, 1), new Object[] { "PHP", "CUC", "DTD", 'P', new ItemStack(ModItems.fluid_barrel_full, 1, Fluids.ACID.getID()), 'H', ModItems.circuit_targeting_tier4, 'C', ModBlocks.barrel_steel, 'U', ModItems.upgrade_centrifuge, 'D', ModItems.motor, 'T', ModBlocks.machine_transformer }); addRecipeAuto(new ItemStack(ModItems.upgrade_screm, 1), new Object[] { "SUS", "SCS", "SUS", 'S', STEEL.plate(), 'U', ModItems.upgrade_template, 'C', ModItems.crystal_xen }); - addRecipeAuto(new ItemStack(ModItems.upgrade_gc_speed, 1), new Object[] {"GNG", "RUR", "GMG", 'R', RUBBER.ingot(), 'M', ModItems.motor, 'G', ModItems.coil_gold, 'N', TCALLOY.ingot(), 'U', ModItems.upgrade_template}); + addRecipeAuto(new ItemStack(ModItems.upgrade_gc_speed, 1), new Object[] {"GNG", "RUR", "GMG", 'R', RUBBER.ingot(), 'M', ModItems.motor, 'G', ModItems.coil_gold, 'N', TCALLOY.ingot(), 'U', ModItems.upgrade_template}); //TODO: gate this behind the upwards gate of the oil chain when it exists addRecipeAuto(new ItemStack(ModItems.mech_key, 1), new Object[] { "MCM", "MKM", "MMM", 'M', ModItems.ingot_meteorite_forged, 'C', ModItems.coin_maskman, 'K', ModItems.key }); addRecipeAuto(new ItemStack(ModItems.spawn_ufo, 1), new Object[] { "MMM", "DCD", "MMM", 'M', ModItems.ingot_meteorite, 'D', DNT.ingot(), 'C', ModItems.coin_worm }); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineGasCent.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineGasCent.java index c097ec771..6dcf61f47 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineGasCent.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineGasCent.java @@ -42,9 +42,7 @@ public class TileEntityMachineGasCent extends TileEntityMachineBase implements I public PseudoFluidTank inputTank; public PseudoFluidTank outputTank; - private static final int[] slots_io = new int[] { 0, 2, 3, 4 }; - private static final int[] slots_bottom = new int[] {2, 3, 4}; - private static final int[] slots_side = new int[] { }; + private static final int[] slots_io = new int[] { 0, 1, 2, 3 }; private static HashMap fluidConversions = new HashMap(); @@ -105,15 +103,6 @@ public class TileEntityMachineGasCent extends TileEntityMachineBase implements I return (power * i) / maxPower; } - public int getTankScaled(int i, int id) { - if(id == 0) { - return (this.inputTank.getFill() * i) / inputTank.getMaxFill(); - } else if(id == 1) { - return (this.outputTank.getFill() * i) / outputTank.getMaxFill(); - } - return i; - } - private boolean canEnrich() { if(power > 0 && this.inputTank.getFill() >= inputTank.getTankType().getFluidConsumed() && this.outputTank.getFill() + this.inputTank.getTankType().getFluidProduced() <= outputTank.getMaxFill()) { @@ -161,7 +150,7 @@ public class TileEntityMachineGasCent extends TileEntityMachineBase implements I TileEntityMachineGasCent cent = (TileEntityMachineGasCent) te; if(cent.tank.getFill() == 0 && cent.tank.getTankType() == tank.getTankType()) { - if(cent.inputTank.getTankType() != outputTank.getTankType()) { + if(cent.inputTank.getTankType() != outputTank.getTankType() && outputTank.getTankType() != PseudoFluidType.NONE) { cent.inputTank.setTankType(outputTank.getTankType()); cent.outputTank.setTankType(outputTank.getTankType().getOutputType()); } @@ -198,11 +187,11 @@ public class TileEntityMachineGasCent extends TileEntityMachineBase implements I updateConnections(); - power = Library.chargeTEFromItems(slots, 0, power, maxPower); + power = Library.chargeTEFromItems(slots, 4, power, maxPower); setTankType(5); + tank.updateTank(this); if(fluidConversions.containsValue(inputTank.getTankType())) { - tank.updateTank(this); attemptConversion(); } @@ -235,8 +224,12 @@ public class TileEntityMachineGasCent extends TileEntityMachineBase implements I //*AT THE MOMENT*, there's not really any need for a dedicated method for this. Yet. if(!attemptTransfer(te) && this.inputTank.getTankType() == PseudoFluidType.LEUF6) { - if(this.outputTank.getFill() >= 100 && InventoryUtil.tryAddItemToInventory(slots, 0, 3, new ItemStack(ModItems.nugget_uranium_fuel)) == null) { - this.outputTank.setFill(this.outputTank.getFill() - 100); + ItemStack[] converted = new ItemStack[] { new ItemStack(ModItems.nugget_uranium_fuel, 6), new ItemStack(ModItems.fluorite) }; + + if(this.outputTank.getFill() >= 600 && InventoryUtil.doesArrayHaveSpace(slots, 0, 3, converted)) { + this.outputTank.setFill(this.outputTank.getFill() - 600); + for(ItemStack stack : converted) + InventoryUtil.tryAddItemToInventory(slots, 0, 3, stack); } } } diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBoiler.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBoiler.java index b89800e81..985666099 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBoiler.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBoiler.java @@ -47,17 +47,32 @@ public class TileEntityRBMKBoiler extends TileEntityRBMKSlottedBase implements I double heatProvided = this.heat - heatCap; if(heatProvided > 0) { - int waterUsed = (int)Math.floor(heatProvided / RBMKDials.getBoilerHeatConsumption(worldObj)); - waterUsed = Math.min(waterUsed, feed.getFill()); - feed.setFill(feed.getFill() - waterUsed); - int steamProduced = (int)Math.floor((waterUsed * 100) / getFactorFromSteam(steam.getTankType())); - steam.setFill(steam.getFill() + steamProduced); + double HEAT_PER_MB_WATER = RBMKDials.getBoilerHeatConsumption(worldObj); + double steamFactor = getFactorFromSteam(steam.getTankType()); + int waterUsed; + int steamProduced; - if(steam.getFill() > steam.getMaxFill()) { - steam.setFill(steam.getMaxFill()); + if(steam.getTankType() == Fluids.ULTRAHOTSTEAM) { + steamProduced = (int)Math.floor((heatProvided / HEAT_PER_MB_WATER) * 100D / steamFactor); + waterUsed = (int)Math.floor(steamProduced / 100D * steamFactor); + + if(feed.getFill() < waterUsed) { + steamProduced = (int)Math.floor(feed.getFill() * 100D / steamFactor); + waterUsed = (int)Math.floor(steamProduced / 100D * steamFactor); + } + } else { + waterUsed = (int)Math.floor(heatProvided / HEAT_PER_MB_WATER); + waterUsed = Math.min(waterUsed, feed.getFill()); + steamProduced = (int)Math.floor((waterUsed * 100D) / steamFactor); } - this.heat -= waterUsed * RBMKDials.getBoilerHeatConsumption(worldObj); + feed.setFill(feed.getFill() - waterUsed); + steam.setFill(steam.getFill() + steamProduced); + + if(steam.getFill() > steam.getMaxFill()) + steam.setFill(steam.getMaxFill()); + + this.heat -= waterUsed * HEAT_PER_MB_WATER; } fillFluidInit(steam.getTankType()); diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index fe780307e..16bf8e684 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -758,6 +758,14 @@ hbmfluid.water=Water hbmfluid.watz=Poisonous Mud hbmfluid.xenon=Xenon Gas hbmfluid.xpjuice=Experience Juice +hbmpseudofluid.none=Empty +hbmpseudofluid.heuf6=Highly Enriched UF6 +hbmpseudofluid.meuf6=Medium Enriched UF6 +hbmpseudofluid.leuf6=Low Enriched UF6 +hbmpseudofluid.nuf6=Natural UF6 +hbmpseudofluid.pf6=Plutonium Hexafluoride +hbmpseudofluid.mud_heavy=Heavy Sludge Fraction +hbmpseudofluid.mud=Poisonous Sludge Gas info.coil=Coil Strength info.templatefolder=Created with %s diff --git a/src/main/resources/assets/hbm/textures/gui/nei/gui_nei_centrifuge_gas.png b/src/main/resources/assets/hbm/textures/gui/nei/gui_nei_centrifuge_gas.png new file mode 100644 index 0000000000000000000000000000000000000000..b291ba662721101527385e9bc323a533ef73432f GIT binary patch literal 2391 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 literal 3291 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 XG;N>O+lT(_PZ+Sl*;`bZ6BGXf`H&Ri From 02761a12cf79a0d763aa8d4c11a4f3f513413658 Mon Sep 17 00:00:00 2001 From: Bob Date: Mon, 6 Jun 2022 21:16:18 +0200 Subject: [PATCH 49/80] extractor filter, GUI --- .../hbm/blocks/network/BlockCraneBase.java | 15 ++ .../hbm/blocks/network/CraneExtractor.java | 4 +- .../com/hbm/blocks/network/CraneInserter.java | 15 -- .../container/ContainerCraneExtractor.java | 130 +++++++++++++++ .../hbm/inventory/gui/GUICraneExtractor.java | 63 ++++++++ .../java/com/hbm/main/CraftingManager.java | 14 +- .../network/TileEntityCraneExtractor.java | 149 ++++++++++++++---- .../network/TileEntityCraneInserter.java | 7 + src/main/resources/assets/hbm/lang/de_DE.lang | 1 + src/main/resources/assets/hbm/lang/en_US.lang | 1 + 10 files changed, 347 insertions(+), 52 deletions(-) create mode 100644 src/main/java/com/hbm/inventory/container/ContainerCraneExtractor.java create mode 100644 src/main/java/com/hbm/inventory/gui/GUICraneExtractor.java diff --git a/src/main/java/com/hbm/blocks/network/BlockCraneBase.java b/src/main/java/com/hbm/blocks/network/BlockCraneBase.java index b0ae95010..d2840e41c 100644 --- a/src/main/java/com/hbm/blocks/network/BlockCraneBase.java +++ b/src/main/java/com/hbm/blocks/network/BlockCraneBase.java @@ -1,7 +1,9 @@ package com.hbm.blocks.network; import com.hbm.lib.RefStrings; +import com.hbm.main.MainRegistry; +import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.BlockContainer; @@ -9,6 +11,7 @@ import net.minecraft.block.BlockPistonBase; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.util.IIcon; import net.minecraft.world.World; @@ -41,6 +44,18 @@ public abstract class BlockCraneBase extends BlockContainer { this.iconSideOut = iconRegister.registerIcon(RefStrings.MODID + ":crane_side_out"); } + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + if(world.isRemote) { + return true; + } else if(!player.isSneaking()) { + FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y, z); + return true; + } else { + return false; + } + } + public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack stack) { int l = BlockPistonBase.determineOrientation(world, x, y, z, player); world.setBlockMetadataWithNotify(x, y, z, l, 2); diff --git a/src/main/java/com/hbm/blocks/network/CraneExtractor.java b/src/main/java/com/hbm/blocks/network/CraneExtractor.java index e5c7b08ee..c7bf7dce7 100644 --- a/src/main/java/com/hbm/blocks/network/CraneExtractor.java +++ b/src/main/java/com/hbm/blocks/network/CraneExtractor.java @@ -26,7 +26,7 @@ public class CraneExtractor extends BlockCraneBase { public void registerBlockIcons(IIconRegister iconRegister) { super.registerBlockIcons(iconRegister); this.iconDirectional = iconRegister.registerIcon(RefStrings.MODID + ":crane_out_top"); - this.iconDirectionalUp = iconRegister.registerIcon(RefStrings.MODID + ":crane_out_side_up"); - this.iconDirectionalDown = iconRegister.registerIcon(RefStrings.MODID + ":crane_out_side_down"); + this.iconDirectionalUp = iconRegister.registerIcon(RefStrings.MODID + ":crane_out_side_down"); + this.iconDirectionalDown = iconRegister.registerIcon(RefStrings.MODID + ":crane_out_side_up"); } } diff --git a/src/main/java/com/hbm/blocks/network/CraneInserter.java b/src/main/java/com/hbm/blocks/network/CraneInserter.java index a617aaa10..69b3b6a5c 100644 --- a/src/main/java/com/hbm/blocks/network/CraneInserter.java +++ b/src/main/java/com/hbm/blocks/network/CraneInserter.java @@ -1,18 +1,15 @@ package com.hbm.blocks.network; import com.hbm.lib.RefStrings; -import com.hbm.main.MainRegistry; import com.hbm.tileentity.network.TileEntityCraneInserter; import api.hbm.conveyor.IConveyorItem; import api.hbm.conveyor.IEnterableBlock; -import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.item.EntityItem; -import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.IInventory; import net.minecraft.inventory.ISidedInventory; import net.minecraft.item.ItemStack; @@ -39,18 +36,6 @@ public class CraneInserter extends BlockCraneBase implements IEnterableBlock { this.iconDirectionalUp = iconRegister.registerIcon(RefStrings.MODID + ":crane_in_side_up"); this.iconDirectionalDown = iconRegister.registerIcon(RefStrings.MODID + ":crane_in_side_down"); } - - @Override - public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { - if(world.isRemote) { - return true; - } else if(!player.isSneaking()) { - FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y, z); - return true; - } else { - return false; - } - } @Override public boolean canEnter(World world, int x, int y, int z, ForgeDirection dir, IConveyorItem entity) { diff --git a/src/main/java/com/hbm/inventory/container/ContainerCraneExtractor.java b/src/main/java/com/hbm/inventory/container/ContainerCraneExtractor.java new file mode 100644 index 000000000..c12d09b57 --- /dev/null +++ b/src/main/java/com/hbm/inventory/container/ContainerCraneExtractor.java @@ -0,0 +1,130 @@ +package com.hbm.inventory.container; + +import com.hbm.inventory.SlotUpgrade; +import com.hbm.items.ModItems; +import com.hbm.tileentity.network.TileEntityCraneExtractor; + +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 ContainerCraneExtractor extends Container { + + protected TileEntityCraneExtractor inserter; + + public ContainerCraneExtractor(InventoryPlayer invPlayer, TileEntityCraneExtractor inserter) { + this.inserter = inserter; + + //filter + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 3; j++) { + this.addSlotToContainer(new Slot(inserter, j + i * 3, 71 + j * 18, 17 + i * 18)); + } + } + + //buffer + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 3; j++) { + this.addSlotToContainer(new Slot(inserter, 9 + j + i * 3, 8 + j * 18, 17 + i * 18)); + } + } + + //upgrades + this.addSlotToContainer(new SlotUpgrade(inserter, 18, 152, 23)); + this.addSlotToContainer(new SlotUpgrade(inserter, 19, 152, 47)); + + 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, 103 + i * 18)); + } + } + + for(int i = 0; i < 9; i++) { + this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 161)); + } + } + + @Override + public ItemStack transferStackInSlot(EntityPlayer player, int slot) { + ItemStack var3 = null; + Slot var4 = (Slot) this.inventorySlots.get(slot); + + if(var4 != null && var4.getHasStack()) { + ItemStack var5 = var4.getStack(); + var3 = var5.copy(); + + if(slot < 9) { //filters + return null; + } + + if(slot <= inserter.getSizeInventory() - 1) { + if(!this.mergeItemStack(var5, inserter.getSizeInventory(), this.inventorySlots.size(), true)) { + return null; + } + } else { + + if(var3.getItem() == ModItems.upgrade_5g) { + if(!this.mergeItemStack(var5, 18, 19, false)) + return null; + } else if(var3.getItem() == ModItems.upgrade_crystallizer) { + if(!this.mergeItemStack(var5, 19, 20, false)) + return null; + } else if(!this.mergeItemStack(var5, 9, inserter.getSizeInventory(), false)) { + return null; + } + + return null; + } + + if(var5.stackSize == 0) { + var4.putStack((ItemStack) null); + } else { + var4.onSlotChanged(); + } + + var4.onPickupFromSlot(player, var5); + } + + return var3; + } + + @Override + public boolean canInteractWith(EntityPlayer player) { + return inserter.isUseableByPlayer(player); + } + + @Override + public ItemStack slotClick(int index, int button, int mode, EntityPlayer player) { + + //L/R: 0 + //M3: 3 + //SHIFT: 1 + //DRAG: 5 + //System.out.println("Mode " + mode); + //System.out.println("Slot " + index); + + if(index < 0 || index > 8) { + return super.slotClick(index, button, mode, player); + } + + Slot slot = this.getSlot(index); + + ItemStack ret = null; + ItemStack held = player.inventory.getItemStack(); + + if(slot.getHasStack()) + ret = slot.getStack().copy(); + + slot.putStack(held != null ? held.copy() : null); + + if(slot.getHasStack()) { + slot.getStack().stackSize = 1; + } + + slot.onSlotChanged(); + + return ret; + } +} diff --git a/src/main/java/com/hbm/inventory/gui/GUICraneExtractor.java b/src/main/java/com/hbm/inventory/gui/GUICraneExtractor.java new file mode 100644 index 000000000..04ccad591 --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GUICraneExtractor.java @@ -0,0 +1,63 @@ +package com.hbm.inventory.gui; + +import org.lwjgl.opengl.GL11; + +import com.hbm.inventory.container.ContainerCraneExtractor; +import com.hbm.lib.RefStrings; +import com.hbm.packet.NBTControlPacket; +import com.hbm.packet.PacketDispatcher; +import com.hbm.tileentity.network.TileEntityCraneExtractor; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.audio.PositionedSoundRecord; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.ResourceLocation; + +public class GUICraneExtractor extends GuiInfoContainer { + + private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/storage/gui_crane_ejector.png"); + private TileEntityCraneExtractor inserter; + + public GUICraneExtractor(InventoryPlayer invPlayer, TileEntityCraneExtractor tedf) { + super(new ContainerCraneExtractor(invPlayer, tedf)); + inserter = tedf; + + this.xSize = 176; + this.ySize = 185; + } + + @Override + protected void mouseClicked(int x, int y, int i) { + super.mouseClicked(x, y, i); + + if(guiLeft + 128 <= x && guiLeft + 128 + 14 > x && guiTop + 30 < y && guiTop + 30 + 26 >= y) { + + mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); + NBTTagCompound data = new NBTTagCompound(); + data.setBoolean("whitelist", true); + PacketDispatcher.wrapper.sendToServer(new NBTControlPacket(data, inserter.xCoord, inserter.yCoord, inserter.zCoord)); + } + } + + @Override + protected void drawGuiContainerForegroundLayer(int i, int j) { + String name = this.inserter.hasCustomInventoryName() ? this.inserter.getInventoryName() : I18n.format(this.inserter.getInventoryName()); + this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); + this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); + } + + @Override + protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + + if(inserter.isWhitelist) { + drawTexturedModalRect(guiLeft + 139, guiTop + 33, 176, 0, 3, 6); + } else { + drawTexturedModalRect(guiLeft + 139, guiTop + 47, 176, 0, 3, 6); + } + } +} diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index c35eae0b3..bd8110eec 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -919,7 +919,19 @@ public class CraftingManager { addRecipeAuto(DictFrame.fromOne(ModItems.part_generic, EnumPartTpe.PISTON_PNEUMATIC, 4), new Object[] { " I ", "CPC", " I ", 'I', IRON.ingot(), 'C', CU.ingot(), 'P', IRON.plate() }); addRecipeAuto(DictFrame.fromOne(ModItems.part_generic, EnumPartTpe.PISTON_HYDRAULIC, 4), new Object[] { " I ", "CPC", " I ", 'I', STEEL.ingot(), 'C', TI.ingot(), 'P', Fluids.LUBRICANT.getDict(1000) }); addRecipeAuto(DictFrame.fromOne(ModItems.part_generic, EnumPartTpe.PISTON_ELECTRIC, 4), new Object[] { " I ", "CPC", " I ", 'I', TCALLOY.ingot(), 'C', ANY_PLASTIC.ingot(), 'P', ModItems.motor }); - + + Object[] craneCasing = new Object[] { + Blocks.stonebrick, 1, + IRON.ingot(), 2, + STEEL.ingot(), 4 + }; + + for(int i = 0; i < craneCasing.length / 2; i++) { + Object casing = craneCasing[i * 2]; + int amount = (int) craneCasing[i * 2 + 1]; + addRecipeAuto(new ItemStack(ModBlocks.crane_inserter, amount), new Object[] { "CCC", "C C", "CBC", 'C', casing, 'B', ModBlocks.conveyor }); + addRecipeAuto(new ItemStack(ModBlocks.crane_extractor, amount), new Object[] { "CCC", "CPC", "CBC", 'C', casing, 'B', ModBlocks.conveyor, 'P', DictFrame.fromOne(ModItems.part_generic, EnumPartTpe.PISTON_PNEUMATIC) }); + } addShapelessAuto(DictFrame.fromOne(ModItems.parts_legendary, EnumLegendaryType.TIER1), new Object[] { ModItems.ingot_chainsteel, ASBESTOS.ingot(), ModItems.gem_alexandrite }); addShapelessAuto(DictFrame.fromOne(ModItems.parts_legendary, EnumLegendaryType.TIER1, 3), new Object[] { DictFrame.fromOne(ModItems.parts_legendary, EnumLegendaryType.TIER2) }); diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityCraneExtractor.java b/src/main/java/com/hbm/tileentity/network/TileEntityCraneExtractor.java index 4d1d5f2f2..0072fd325 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityCraneExtractor.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityCraneExtractor.java @@ -1,18 +1,31 @@ package com.hbm.tileentity.network; import com.hbm.entity.item.EntityMovingItem; +import com.hbm.interfaces.IControlReceiver; +import com.hbm.inventory.container.ContainerCraneExtractor; +import com.hbm.inventory.gui.GUICraneExtractor; +import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; import api.hbm.conveyor.IConveyorBelt; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.Container; import net.minecraft.inventory.IInventory; import net.minecraft.inventory.ISidedInventory; import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.Vec3; +import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityCraneExtractor extends TileEntityMachineBase { +public class TileEntityCraneExtractor extends TileEntityMachineBase implements IGUIProvider, IControlReceiver { + + public boolean isWhitelist = false; public TileEntityCraneExtractor() { super(20); @@ -26,46 +39,114 @@ public class TileEntityCraneExtractor extends TileEntityMachineBase { @Override public void updateEntity() { - if(!worldObj.isRemote && worldObj.getTotalWorldTime() % 20 == 0) { + if(!worldObj.isRemote) { - int amount = 16; - - ForgeDirection dir = ForgeDirection.getOrientation(this.blockMetadata); - TileEntity te = worldObj.getTileEntity(xCoord - dir.offsetX, yCoord - dir.offsetY, zCoord - dir.offsetZ); - Block b = worldObj.getBlock(xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ); - - int[] access = null; - ISidedInventory sided = null; - - if(te instanceof ISidedInventory) { - sided = (ISidedInventory) te; - access = sided.getAccessibleSlotsFromSide(dir.ordinal()); - } - - if(b instanceof IConveyorBelt && te instanceof IInventory) { - IInventory inv = (IInventory) te; - int size = access == null ? inv.getSizeInventory() : access.length; + if(worldObj.getTotalWorldTime() % 20 == 0) { + int amount = 16; + + ForgeDirection dir = ForgeDirection.getOrientation(this.blockMetadata); + TileEntity te = worldObj.getTileEntity(xCoord - dir.offsetX, yCoord - dir.offsetY, zCoord - dir.offsetZ); + Block b = worldObj.getBlock(xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ); - for(int i = 0; i < size; i++) { - int index = access == null ? i : access[i]; - ItemStack stack = inv.getStackInSlot(index); + int[] access = null; + ISidedInventory sided = null; + + if(te instanceof ISidedInventory) { + sided = (ISidedInventory) te; + access = sided.getAccessibleSlotsFromSide(dir.ordinal()); + } + + if(b instanceof IConveyorBelt && te instanceof IInventory) { + IInventory inv = (IInventory) te; + int size = access == null ? inv.getSizeInventory() : access.length; - if(stack != null && (sided == null || sided.canExtractItem(index, stack, dir.ordinal()))){ - stack = stack.copy(); - int toSend = Math.min(amount, stack.stackSize); - inv.decrStackSize(index, toSend); - stack.stackSize = toSend; + for(int i = 0; i < size; i++) { + int index = access == null ? i : access[i]; + ItemStack stack = inv.getStackInSlot(index); - EntityMovingItem moving = new EntityMovingItem(worldObj); - Vec3 pos = Vec3.createVectorHelper(xCoord + 0.5 + dir.offsetX * 0.55, yCoord + 0.5 + dir.offsetY * 0.55, zCoord + 0.5 + dir.offsetZ * 0.55); - Vec3 snap = ((IConveyorBelt) b).getClosestSnappingPosition(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, pos); - moving.setPosition(snap.xCoord, snap.yCoord, snap.zCoord); - moving.setItemStack(stack); - worldObj.spawnEntityInWorld(moving); - break; + if(stack != null && (sided == null || sided.canExtractItem(index, stack, dir.ordinal()))){ + + boolean match = this.matchesFilter(stack); + + if((isWhitelist && match) || (!isWhitelist && !match)) { + stack = stack.copy(); + int toSend = Math.min(amount, stack.stackSize); + inv.decrStackSize(index, toSend); + stack.stackSize = toSend; + + EntityMovingItem moving = new EntityMovingItem(worldObj); + Vec3 pos = Vec3.createVectorHelper(xCoord + 0.5 + dir.offsetX * 0.55, yCoord + 0.5 + dir.offsetY * 0.55, zCoord + 0.5 + dir.offsetZ * 0.55); + Vec3 snap = ((IConveyorBelt) b).getClosestSnappingPosition(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, pos); + moving.setPosition(snap.xCoord, snap.yCoord, snap.zCoord); + moving.setItemStack(stack); + worldObj.spawnEntityInWorld(moving); + break; + } + } } } } + + NBTTagCompound data = new NBTTagCompound(); + data.setBoolean("isWhitelist", isWhitelist); + this.networkPack(data, 15); + } + } + + public void networkUnpack(NBTTagCompound nbt) { + this.isWhitelist = nbt.getBoolean("isWhitelist"); + } + + public boolean matchesFilter(ItemStack stack) { + + for(int i = 0; i < 9; i++) { + ItemStack filter = slots[i]; + + if(filter != null && filter.isItemEqual(stack)) { + return true; + } + } + + return false; + } + + @Override + public boolean isItemValidForSlot(int i, ItemStack itemStack) { + return true; + } + + @Override + public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new ContainerCraneExtractor(player.inventory, this); + } + + @Override + @SideOnly(Side.CLIENT) + public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { + return new GUICraneExtractor(player.inventory, this); + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + this.isWhitelist = nbt.getBoolean("isWhitelist"); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + nbt.setBoolean("isWhitelist", this.isWhitelist); + } + + @Override + public boolean hasPermission(EntityPlayer player) { + return Vec3.createVectorHelper(xCoord - player.posX, yCoord - player.posY, zCoord - player.posZ).lengthVector() < 20; + } + + @Override + public void receiveControl(NBTTagCompound data) { + if(data.hasKey("whitelist")) { + this.isWhitelist = !this.isWhitelist; } } } diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityCraneInserter.java b/src/main/java/com/hbm/tileentity/network/TileEntityCraneInserter.java index e5e3e90ff..c6fbbce03 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityCraneInserter.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityCraneInserter.java @@ -19,6 +19,8 @@ import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; public class TileEntityCraneInserter extends TileEntityMachineBase implements IGUIProvider { + + public static final int[] access = new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20 }; public TileEntityCraneInserter() { super(21); @@ -62,6 +64,11 @@ public class TileEntityCraneInserter extends TileEntityMachineBase implements IG } } + @Override + public int[] getAccessibleSlotsFromSide(int side) { + return access; + } + @Override public boolean isItemValidForSlot(int i, ItemStack itemStack) { return true; diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 28ff298e5..b7e48229b 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -3114,6 +3114,7 @@ tile.concrete_pillar.name=Stahlbetonsäule tile.concrete_smooth.name=Beton tile.concrete_super.name=Super Beton tile.concrete_super_broken.name=Schimmliger Schutt +tile.conveyor.name=Förderband tile.corium_block.name=Corium tile.crashed_bomb.name=Blindgänger tile.crate.name=Vorratskiste diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index f0fb54273..c02675eb4 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -3506,6 +3506,7 @@ tile.concrete_pillar.name=Rebar Reinforced Concrete Pillar tile.concrete_smooth.name=Concrete tile.concrete_super.name=Über Concrete tile.concrete_super_broken.name=Moldy Debris +tile.conveyor.name=Conveyor Belt tile.corium_block.name=Corium tile.crashed_bomb.name=Dud tile.crate.name=Supply Crate From 8a080a037f43a95df9a3b04289a1557a4f9ca6c6 Mon Sep 17 00:00:00 2001 From: Boblet Date: Tue, 7 Jun 2022 16:05:31 +0200 Subject: [PATCH 50/80] stack matching settings for extractor crane --- ...titytemWaste.java => EntityItemWaste.java} | 8 +- .../container/ContainerCraneExtractor.java | 34 ++-- .../hbm/inventory/gui/GUICraneExtractor.java | 32 ++++ .../hbm/items/machine/ItemDepletedFuel.java | 3 - .../hbm/items/special/ItemNuclearWaste.java | 6 +- .../com/hbm/module/ModulePatternMatcher.java | 147 ++++++++++++++++++ .../network/TileEntityCraneExtractor.java | 13 +- 7 files changed, 219 insertions(+), 24 deletions(-) rename src/main/java/com/hbm/entity/item/{EntitytemWaste.java => EntityItemWaste.java} (64%) create mode 100644 src/main/java/com/hbm/module/ModulePatternMatcher.java diff --git a/src/main/java/com/hbm/entity/item/EntitytemWaste.java b/src/main/java/com/hbm/entity/item/EntityItemWaste.java similarity index 64% rename from src/main/java/com/hbm/entity/item/EntitytemWaste.java rename to src/main/java/com/hbm/entity/item/EntityItemWaste.java index 64cf56896..8f307c96b 100644 --- a/src/main/java/com/hbm/entity/item/EntitytemWaste.java +++ b/src/main/java/com/hbm/entity/item/EntityItemWaste.java @@ -5,17 +5,17 @@ import net.minecraft.item.ItemStack; import net.minecraft.util.DamageSource; import net.minecraft.world.World; -public class EntitytemWaste extends EntityItem { +public class EntityItemWaste extends EntityItem { - public EntitytemWaste(World world) { + public EntityItemWaste(World world) { super(world); } - public EntitytemWaste(World world, double x, double y, double z) { + public EntityItemWaste(World world, double x, double y, double z) { super(world, x, y, z); } - public EntitytemWaste(World world, double x, double y, double z, ItemStack stack) { + public EntityItemWaste(World world, double x, double y, double z, ItemStack stack) { super(world, x, y, z, stack); } diff --git a/src/main/java/com/hbm/inventory/container/ContainerCraneExtractor.java b/src/main/java/com/hbm/inventory/container/ContainerCraneExtractor.java index c12d09b57..fa68c7f10 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerCraneExtractor.java +++ b/src/main/java/com/hbm/inventory/container/ContainerCraneExtractor.java @@ -12,10 +12,10 @@ import net.minecraft.item.ItemStack; public class ContainerCraneExtractor extends Container { - protected TileEntityCraneExtractor inserter; + protected TileEntityCraneExtractor extractor; public ContainerCraneExtractor(InventoryPlayer invPlayer, TileEntityCraneExtractor inserter) { - this.inserter = inserter; + this.extractor = inserter; //filter for(int i = 0; i < 3; i++) { @@ -59,8 +59,8 @@ public class ContainerCraneExtractor extends Container { return null; } - if(slot <= inserter.getSizeInventory() - 1) { - if(!this.mergeItemStack(var5, inserter.getSizeInventory(), this.inventorySlots.size(), true)) { + if(slot <= extractor.getSizeInventory() - 1) { + if(!this.mergeItemStack(var5, extractor.getSizeInventory(), this.inventorySlots.size(), true)) { return null; } } else { @@ -71,7 +71,7 @@ public class ContainerCraneExtractor extends Container { } else if(var3.getItem() == ModItems.upgrade_crystallizer) { if(!this.mergeItemStack(var5, 19, 20, false)) return null; - } else if(!this.mergeItemStack(var5, 9, inserter.getSizeInventory(), false)) { + } else if(!this.mergeItemStack(var5, 9, extractor.getSizeInventory(), false)) { return null; } @@ -92,7 +92,7 @@ public class ContainerCraneExtractor extends Container { @Override public boolean canInteractWith(EntityPlayer player) { - return inserter.isUseableByPlayer(player); + return extractor.isUseableByPlayer(player); } @Override @@ -116,15 +116,21 @@ public class ContainerCraneExtractor extends Container { if(slot.getHasStack()) ret = slot.getStack().copy(); - - slot.putStack(held != null ? held.copy() : null); - if(slot.getHasStack()) { - slot.getStack().stackSize = 1; + if(button == 1 && mode == 0 && slot.getHasStack()) { + extractor.nextMode(index); + return ret; + + } else { + slot.putStack(held != null ? held.copy() : null); + + if(slot.getHasStack()) { + slot.getStack().stackSize = 1; + } + + slot.onSlotChanged(); + + return ret; } - - slot.onSlotChanged(); - - return ret; } } diff --git a/src/main/java/com/hbm/inventory/gui/GUICraneExtractor.java b/src/main/java/com/hbm/inventory/gui/GUICraneExtractor.java index 04ccad591..ab99a9e40 100644 --- a/src/main/java/com/hbm/inventory/gui/GUICraneExtractor.java +++ b/src/main/java/com/hbm/inventory/gui/GUICraneExtractor.java @@ -1,5 +1,7 @@ package com.hbm.inventory.gui; +import java.util.Arrays; + import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerCraneExtractor; @@ -12,7 +14,9 @@ import net.minecraft.client.Minecraft; import net.minecraft.client.audio.PositionedSoundRecord; import net.minecraft.client.resources.I18n; import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Slot; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.ResourceLocation; public class GUICraneExtractor extends GuiInfoContainer { @@ -27,6 +31,30 @@ public class GUICraneExtractor extends GuiInfoContainer { this.xSize = 176; this.ySize = 185; } + + @Override + public void drawScreen(int x, int y, float interp) { + super.drawScreen(x, y, interp); + + if(this.mc.thePlayer.inventory.getItemStack() == null) { + for(int i = 0; i < 9; ++i) { + Slot slot = (Slot) this.inventorySlots.inventorySlots.get(i); + + if(this.isMouseOverSlot(slot, x, y) && inserter.matcher.modes[i] != null) { + + String label = EnumChatFormatting.YELLOW + ""; + + switch(inserter.matcher.modes[i]) { + case "exact": label += "Item and meta match"; break; + case "wildcard": label += "Item matches"; break; + default: label += "Ore dict key matches: " + inserter.matcher.modes[i]; break; + } + + this.func_146283_a(Arrays.asList(new String[] { EnumChatFormatting.RED + "Right click to change", label }), x, y - 30); + } + } + } + } @Override protected void mouseClicked(int x, int y, int i) { @@ -60,4 +88,8 @@ public class GUICraneExtractor extends GuiInfoContainer { drawTexturedModalRect(guiLeft + 139, guiTop + 47, 176, 0, 3, 6); } } + + protected boolean isMouseOverSlot(Slot slot, int x, int y) { + return this.func_146978_c(slot.xDisplayPosition, slot.yDisplayPosition, 16, 16, x, y); + } } diff --git a/src/main/java/com/hbm/items/machine/ItemDepletedFuel.java b/src/main/java/com/hbm/items/machine/ItemDepletedFuel.java index 11ead81e9..fe839a410 100644 --- a/src/main/java/com/hbm/items/machine/ItemDepletedFuel.java +++ b/src/main/java/com/hbm/items/machine/ItemDepletedFuel.java @@ -3,8 +3,6 @@ package com.hbm.items.machine; import java.util.List; import com.hbm.items.special.ItemNuclearWaste; -import com.hbm.lib.Library; -import com.hbm.main.MainRegistry; import com.hbm.util.I18nUtil; import cpw.mods.fml.relauncher.Side; @@ -14,7 +12,6 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.IIcon; public class ItemDepletedFuel extends ItemNuclearWaste { diff --git a/src/main/java/com/hbm/items/special/ItemNuclearWaste.java b/src/main/java/com/hbm/items/special/ItemNuclearWaste.java index aa114abe3..a4ce9b68c 100644 --- a/src/main/java/com/hbm/items/special/ItemNuclearWaste.java +++ b/src/main/java/com/hbm/items/special/ItemNuclearWaste.java @@ -1,6 +1,6 @@ package com.hbm.items.special; -import com.hbm.entity.item.EntitytemWaste; +import com.hbm.entity.item.EntityItemWaste; import net.minecraft.entity.Entity; import net.minecraft.item.Item; @@ -22,12 +22,14 @@ public class ItemNuclearWaste extends Item { @Override public Entity createEntity(World world, Entity entityItem, ItemStack itemstack) { - EntitytemWaste entity = new EntitytemWaste(world, entityItem.posX, entityItem.posY, entityItem.posZ, itemstack); + EntityItemWaste entity = new EntityItemWaste(world, entityItem.posX, entityItem.posY, entityItem.posZ, itemstack); entity.motionX = entityItem.motionX; entity.motionY = entityItem.motionY; entity.motionZ = entityItem.motionZ; entity.delayBeforeCanPickup = 10; + entityItem.setDead(); + return entity; } } diff --git a/src/main/java/com/hbm/module/ModulePatternMatcher.java b/src/main/java/com/hbm/module/ModulePatternMatcher.java new file mode 100644 index 000000000..ff8c10ff0 --- /dev/null +++ b/src/main/java/com/hbm/module/ModulePatternMatcher.java @@ -0,0 +1,147 @@ +package com.hbm.module; + +import java.util.List; + +import com.hbm.util.ItemStackUtil; + +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.world.World; + +public class ModulePatternMatcher { + + public static final String MODE_EXACT = "exact"; + public static final String MODE_WILDCARD = "wildcard"; + public String[] modes; + + public ModulePatternMatcher() { + this.modes = new String[1]; + } + + public ModulePatternMatcher(int count) { + this.modes = new String[count]; + } + + public void initPatternSmart(World world, ItemStack stack, int i) { + + if(world.isRemote) return; + + if(stack == null) { + modes[i] = null; + return; + } + + List names = ItemStackUtil.getOreDictNames(stack); + + if(iterateAndCheck(names, i ,"ingot")) return; + if(iterateAndCheck(names, i ,"block")) return; + if(iterateAndCheck(names, i ,"dust")) return; + if(iterateAndCheck(names, i ,"nugget")) return; + if(iterateAndCheck(names, i ,"plate")) return; + + if(stack.getHasSubtypes()) { + modes[i] = MODE_EXACT; + } else { + modes[i] = MODE_WILDCARD; + } + } + + private boolean iterateAndCheck(List names, int i, String prefix) { + + for(String s : names) { + if(s.startsWith(prefix)) { + modes[i] = s; + return true; + } + } + + return false; + } + + public void initPatternStandard(World world, ItemStack stack, int i) { + + if(world.isRemote) return; + + if(stack == null) { + modes[i] = null; + return; + } + + if(stack.getHasSubtypes()) { + modes[i] = MODE_EXACT; + } else { + modes[i] = MODE_WILDCARD; + } + } + + public void nextMode(World world, ItemStack pattern, int i) { + + if(world.isRemote) return; + + if(pattern == null) { + modes[i] = null; + return; + } + + if(modes[i] == null) { + modes[i] = MODE_EXACT; + } else if(MODE_EXACT.equals(modes[i])) { + modes[i] = MODE_WILDCARD; + } else if(MODE_WILDCARD.equals(modes[i])) { + + List names = ItemStackUtil.getOreDictNames(pattern); + + if(names.isEmpty()) { + modes[i] = MODE_EXACT; + } else { + modes[i] = names.get(0); + } + } else { + + List names = ItemStackUtil.getOreDictNames(pattern); + + if(names.size() < 2 || modes[i].equals(names.get(names.size() - 1))) { + modes[i] = MODE_EXACT; + } else { + + for(int j = 0; j < names.size() - 1; j++) { + + if(modes[i].equals(names.get(j))) { + modes[i] = names.get(j + 1); + return; + } + } + } + } + } + + public boolean isValidForFilter(ItemStack filter, int index, ItemStack input) { + + String mode = modes[index]; + switch(mode) { + case MODE_EXACT: return input.isItemEqual(filter) && ItemStack.areItemStackTagsEqual(input, filter); + case MODE_WILDCARD: return input.getItem() == filter.getItem() && ItemStack.areItemStackTagsEqual(input, filter); + default: + List keys = ItemStackUtil.getOreDictNames(input); + return keys.contains(mode); + } + } + + public void readFromNBT(NBTTagCompound nbt) { + + for(int i = 0; i < modes.length; i++) { + if(nbt.hasKey("mode" + i)) { + modes[i] = nbt.getString("mode" + i); + } + } + } + + public void writeToNBT(NBTTagCompound nbt) { + + for(int i = 0; i < modes.length; i++) { + if(modes[i] != null) { + nbt.setString("mode" + i, modes[i]); + } + } + } +} diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityCraneExtractor.java b/src/main/java/com/hbm/tileentity/network/TileEntityCraneExtractor.java index 0072fd325..550c2b4c8 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityCraneExtractor.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityCraneExtractor.java @@ -4,6 +4,7 @@ import com.hbm.entity.item.EntityMovingItem; import com.hbm.interfaces.IControlReceiver; import com.hbm.inventory.container.ContainerCraneExtractor; import com.hbm.inventory.gui.GUICraneExtractor; +import com.hbm.module.ModulePatternMatcher; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; @@ -26,9 +27,11 @@ import net.minecraftforge.common.util.ForgeDirection; public class TileEntityCraneExtractor extends TileEntityMachineBase implements IGUIProvider, IControlReceiver { public boolean isWhitelist = false; + public ModulePatternMatcher matcher; public TileEntityCraneExtractor() { super(20); + this.matcher = new ModulePatternMatcher(9); } @Override @@ -89,12 +92,14 @@ public class TileEntityCraneExtractor extends TileEntityMachineBase implements I NBTTagCompound data = new NBTTagCompound(); data.setBoolean("isWhitelist", isWhitelist); + this.matcher.writeToNBT(data); this.networkPack(data, 15); } } public void networkUnpack(NBTTagCompound nbt) { this.isWhitelist = nbt.getBoolean("isWhitelist"); + this.matcher.readFromNBT(nbt); } public boolean matchesFilter(ItemStack stack) { @@ -102,13 +107,17 @@ public class TileEntityCraneExtractor extends TileEntityMachineBase implements I for(int i = 0; i < 9; i++) { ItemStack filter = slots[i]; - if(filter != null && filter.isItemEqual(stack)) { + if(this.matcher.isValidForFilter(filter, i, stack)) { return true; } } return false; } + + public void nextMode(int i) { + this.matcher.nextMode(worldObj, slots[i], i); + } @Override public boolean isItemValidForSlot(int i, ItemStack itemStack) { @@ -130,12 +139,14 @@ public class TileEntityCraneExtractor extends TileEntityMachineBase implements I public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt); this.isWhitelist = nbt.getBoolean("isWhitelist"); + this.matcher.readFromNBT(nbt); } @Override public void writeToNBT(NBTTagCompound nbt) { super.writeToNBT(nbt); nbt.setBoolean("isWhitelist", this.isWhitelist); + this.matcher.writeToNBT(nbt); } @Override From 67a9c91950b1e9cf8d58200571b8e8fac9047510 Mon Sep 17 00:00:00 2001 From: Bob Date: Tue, 7 Jun 2022 21:08:11 +0200 Subject: [PATCH 51/80] my head hurts --- .../container/ContainerCraneExtractor.java | 1 + .../java/com/hbm/module/ModulePatternMatcher.java | 3 ++- .../machine/storage/TileEntityMassStorage.java | 15 +++++++++++++++ .../network/TileEntityCraneExtractor.java | 7 ++++--- .../network/TileEntityCraneInserter.java | 2 +- 5 files changed, 23 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/hbm/inventory/container/ContainerCraneExtractor.java b/src/main/java/com/hbm/inventory/container/ContainerCraneExtractor.java index fa68c7f10..8dddbfc01 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerCraneExtractor.java +++ b/src/main/java/com/hbm/inventory/container/ContainerCraneExtractor.java @@ -129,6 +129,7 @@ public class ContainerCraneExtractor extends Container { } slot.onSlotChanged(); + extractor.matcher.initPatternStandard(extractor.getWorldObj(), slot.getStack(), index); return ret; } diff --git a/src/main/java/com/hbm/module/ModulePatternMatcher.java b/src/main/java/com/hbm/module/ModulePatternMatcher.java index ff8c10ff0..bde47b864 100644 --- a/src/main/java/com/hbm/module/ModulePatternMatcher.java +++ b/src/main/java/com/hbm/module/ModulePatternMatcher.java @@ -118,6 +118,7 @@ public class ModulePatternMatcher { public boolean isValidForFilter(ItemStack filter, int index, ItemStack input) { String mode = modes[index]; + switch(mode) { case MODE_EXACT: return input.isItemEqual(filter) && ItemStack.areItemStackTagsEqual(input, filter); case MODE_WILDCARD: return input.getItem() == filter.getItem() && ItemStack.areItemStackTagsEqual(input, filter); @@ -137,7 +138,7 @@ public class ModulePatternMatcher { } public void writeToNBT(NBTTagCompound nbt) { - + for(int i = 0; i < modes.length; i++) { if(modes[i] != null) { nbt.setString("mode" + i, modes[i]); diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMassStorage.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMassStorage.java index 02311816a..c75245199 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMassStorage.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMassStorage.java @@ -143,4 +143,19 @@ public class TileEntityMassStorage extends TileEntityCrateBase implements INBTPa this.output = !output; } } + + @Override + public boolean canInsertItem(int i, ItemStack itemStack, int j) { + return !this.isLocked() && i == 0 && (this.getType() == null || (getType().isItemEqual(itemStack) && ItemStack.areItemStackTagsEqual(itemStack, getType()))); + } + + @Override + public boolean canExtractItem(int i, ItemStack itemStack, int j) { + return !this.isLocked() && i == 2; + } + + @Override + public int[] getAccessibleSlotsFromSide(int side) { + return new int[] { 0, 2 }; + } } diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityCraneExtractor.java b/src/main/java/com/hbm/tileentity/network/TileEntityCraneExtractor.java index 550c2b4c8..7a84b1f16 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityCraneExtractor.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityCraneExtractor.java @@ -45,9 +45,9 @@ public class TileEntityCraneExtractor extends TileEntityMachineBase implements I if(!worldObj.isRemote) { if(worldObj.getTotalWorldTime() % 20 == 0) { - int amount = 16; + int amount = 64; - ForgeDirection dir = ForgeDirection.getOrientation(this.blockMetadata); + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata()); TileEntity te = worldObj.getTileEntity(xCoord - dir.offsetX, yCoord - dir.offsetY, zCoord - dir.offsetZ); Block b = worldObj.getBlock(xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ); @@ -99,6 +99,7 @@ public class TileEntityCraneExtractor extends TileEntityMachineBase implements I public void networkUnpack(NBTTagCompound nbt) { this.isWhitelist = nbt.getBoolean("isWhitelist"); + this.matcher.modes = new String[this.matcher.modes.length]; this.matcher.readFromNBT(nbt); } @@ -107,7 +108,7 @@ public class TileEntityCraneExtractor extends TileEntityMachineBase implements I for(int i = 0; i < 9; i++) { ItemStack filter = slots[i]; - if(this.matcher.isValidForFilter(filter, i, stack)) { + if(filter != null && this.matcher.isValidForFilter(filter, i, stack)) { return true; } } diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityCraneInserter.java b/src/main/java/com/hbm/tileentity/network/TileEntityCraneInserter.java index c6fbbce03..6556b3e8c 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityCraneInserter.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityCraneInserter.java @@ -36,7 +36,7 @@ public class TileEntityCraneInserter extends TileEntityMachineBase implements IG if(!worldObj.isRemote) { - ForgeDirection dir = ForgeDirection.getOrientation(this.blockMetadata); + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata()); TileEntity te = worldObj.getTileEntity(xCoord - dir.offsetX, yCoord - dir.offsetY, zCoord - dir.offsetZ); int[] access = null; From 24b7720f6d9a4a69fefca65ba59cc41052474069 Mon Sep 17 00:00:00 2001 From: Vaern Date: Tue, 7 Jun 2022 13:32:32 -0700 Subject: [PATCH 52/80] added boron sand for flaming debris --- .../java/com/hbm/blocks/machine/rbmk/RBMKDebrisBurning.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/hbm/blocks/machine/rbmk/RBMKDebrisBurning.java b/src/main/java/com/hbm/blocks/machine/rbmk/RBMKDebrisBurning.java index 43489035e..0480adc74 100644 --- a/src/main/java/com/hbm/blocks/machine/rbmk/RBMKDebrisBurning.java +++ b/src/main/java/com/hbm/blocks/machine/rbmk/RBMKDebrisBurning.java @@ -43,8 +43,9 @@ public class RBMKDebrisBurning extends RBMKDebris { world.setBlock(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ, ModBlocks.gas_meltdown); } - //Foam helps stop the fire; 1.66% chance every 100-120 seconds for one side - int chance = block == ModBlocks.foam_layer || block == ModBlocks.block_foam ? 10 : 100; + //Foam helps stop the fire; Boron smothers it. 1.66% chance every 100-120 seconds for one side + int chance = block == ModBlocks.foam_layer || block == ModBlocks.block_foam || + block == ModBlocks.sand_boron_layer || block == ModBlocks.sand_boron ? 10 : 100; if(rand.nextInt(chance) == 0) { world.setBlock(x, y, z, ModBlocks.pribris); From 17712de204dfce73b557e1e4d867f52a3ac230c0 Mon Sep 17 00:00:00 2001 From: Bob Date: Tue, 7 Jun 2022 23:37:45 +0200 Subject: [PATCH 53/80] know your gusics --- .../com/hbm/main/ModEventHandlerClient.java | 20 ++++++++++++++++++ .../hbm/textures/models/misc/poster_cat.png | Bin 0 -> 793082 bytes 2 files changed, 20 insertions(+) create mode 100644 src/main/resources/assets/hbm/textures/models/misc/poster_cat.png diff --git a/src/main/java/com/hbm/main/ModEventHandlerClient.java b/src/main/java/com/hbm/main/ModEventHandlerClient.java index 4f97748f1..4d24efe10 100644 --- a/src/main/java/com/hbm/main/ModEventHandlerClient.java +++ b/src/main/java/com/hbm/main/ModEventHandlerClient.java @@ -84,6 +84,7 @@ import net.minecraft.client.renderer.RenderHelper; import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.renderer.entity.RenderPlayer; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Items; import net.minecraft.item.Item; import net.minecraft.item.ItemArmor; import net.minecraft.item.ItemStack; @@ -882,6 +883,7 @@ public class ModEventHandlerClient { } private static final ResourceLocation poster = new ResourceLocation(RefStrings.MODID + ":textures/models/misc/poster.png"); + private static final ResourceLocation poster_cat = new ResourceLocation(RefStrings.MODID + ":textures/models/misc/poster_cat.png"); @SubscribeEvent public void renderFrame(RenderItemInFrameEvent event) { @@ -903,5 +905,23 @@ public class ModEventHandlerClient { tess.draw(); GL11.glEnable(GL11.GL_LIGHTING); } + + if(event.item != null && event.item.getItem() == Items.paper) { + event.setCanceled(true); + + double p = 0.0625D; + double o = p * 2.75D; + + GL11.glDisable(GL11.GL_LIGHTING); + Minecraft.getMinecraft().renderEngine.bindTexture(poster_cat); + Tessellator tess = Tessellator.instance; + tess.startDrawingQuads(); + tess.addVertexWithUV(0.5, 0.5 + o, p * 0.5, 1, 0); + tess.addVertexWithUV(-0.5, 0.5 + o, p * 0.5, 0, 0); + tess.addVertexWithUV(-0.5, -0.5 + o, p * 0.5, 0, 1); + tess.addVertexWithUV(0.5, -0.5 + o, p * 0.5, 1, 1); + tess.draw(); + GL11.glEnable(GL11.GL_LIGHTING); + } } } diff --git a/src/main/resources/assets/hbm/textures/models/misc/poster_cat.png b/src/main/resources/assets/hbm/textures/models/misc/poster_cat.png new file mode 100644 index 0000000000000000000000000000000000000000..591134e84b4e5324da5dedf24f42e6ec171f3f48 GIT binary patch literal 793082 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 z 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