diff --git a/changelog b/changelog index f75344b58..b871fa462 100644 --- a/changelog +++ b/changelog @@ -1,10 +1,19 @@ +## Added +* Plasma forge + * Plasma-powered assembly machine + * Used to produce lategame items that until now were regular assembler recipes + ## Changed * Doubled bismuth and tantalum yields from high-performance solvent bedrock ore processing * Hoppers and buckets can now be made out of steel * RoR gauges now show the lowest and highest configured value on the actual gauge * The steel sword now looks like a medival broad sword with the appropriate scale -* All remaining items have been removed from the template folder, siren tracks and plate stamps are now made in th +* All remaining items have been removed from the template folder, siren tracks and plate stamps are now made in the anvil +* Gerald assembly now requires stellar flux +* The restrictions for firing Folly (using the scope, waiting for the startup) no longer apply to NPCs (which can never fulfill them anyway), allowing them to actually use it ## Fixed * Fixed size 15 dual kerosene thruster not rendering at all -* Fixed HUD/jetpack toggle popup not working at all on multiplayer servers \ No newline at end of file +* Fixed HUD/jetpack toggle popup not working at all on multiplayer servers +* Fixed assembly machine NEI handler not being able to handle all thirteen inputs at once +* Fixed RBMK fuel channels playing the meltdown sound when broken while hot with meltdowns disabled \ No newline at end of file diff --git a/src/main/java/com/hbm/handler/nei/AssemblyMachineRecipeHandler.java b/src/main/java/com/hbm/handler/nei/AssemblyMachineRecipeHandler.java index 288b74db5..c34096384 100644 --- a/src/main/java/com/hbm/handler/nei/AssemblyMachineRecipeHandler.java +++ b/src/main/java/com/hbm/handler/nei/AssemblyMachineRecipeHandler.java @@ -3,6 +3,9 @@ package com.hbm.handler.nei; import com.hbm.blocks.ModBlocks; import com.hbm.inventory.recipes.AssemblyMachineRecipes; import com.hbm.inventory.recipes.loader.GenericRecipe; +import com.hbm.inventory.recipes.loader.GenericRecipes; + +import net.minecraft.block.Block; public class AssemblyMachineRecipeHandler extends NEIGenericRecipeHandler { @@ -10,9 +13,20 @@ public class AssemblyMachineRecipeHandler extends NEIGenericRecipeHandler { super(ModBlocks.machine_assembly_machine.getLocalizedName(), AssemblyMachineRecipes.INSTANCE, ModBlocks.machine_assembly_machine); } + public AssemblyMachineRecipeHandler(String displayName, GenericRecipes recipeSet, Block... machines) { super(displayName, recipeSet, machines); } + @Override public String getRecipeID() { return "ntmAssemblyMachine"; } - @Override public int getInputXOffset(GenericRecipe recipe, int inputCount) { return recipe.inputItem != null && recipe.inputItem.length > 9 ? 18 : 0; } - @Override public int getOutputXOffset(GenericRecipe recipe, int outputCount) { return recipe.inputItem != null && recipe.inputItem.length > 9 ? 18 : 0; } - @Override public int getMachineXOffset(GenericRecipe recipe) { return recipe.inputItem != null && recipe.inputItem.length > 9 ? 18 : 0; } + @Override public int getInputXOffset(GenericRecipe recipe, int inputCount) { return inputCount > 12 ? -9 : inputCount > 9 ? 18 : 0; } + @Override public int getOutputXOffset(GenericRecipe recipe, int outputCount) { return getOffset(recipe); } + @Override public int getMachineXOffset(GenericRecipe recipe) { return getOffset(recipe); } + + public int getOffset(GenericRecipe recipe) { + int length = 0; + if(recipe.inputItem != null) length += recipe.inputItem.length; + if(recipe.inputFluid != null) length += recipe.inputFluid.length; + if(length > 12) return 27; + if(length > 9) return 18; + return 0; + } } diff --git a/src/main/java/com/hbm/handler/nei/PlasmaForgeRecipeHandler.java b/src/main/java/com/hbm/handler/nei/PlasmaForgeRecipeHandler.java new file mode 100644 index 000000000..8f63e3a74 --- /dev/null +++ b/src/main/java/com/hbm/handler/nei/PlasmaForgeRecipeHandler.java @@ -0,0 +1,13 @@ +package com.hbm.handler.nei; + +import com.hbm.blocks.ModBlocks; +import com.hbm.inventory.recipes.PlasmaForgeRecipes; + +public class PlasmaForgeRecipeHandler extends AssemblyMachineRecipeHandler { + + public PlasmaForgeRecipeHandler() { + super(ModBlocks.fusion_plasma_forge.getLocalizedName(), PlasmaForgeRecipes.INSTANCE, ModBlocks.fusion_plasma_forge); + } + + @Override public String getRecipeID() { return "ntmPlasmaForge"; } +} diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachinePlasmaForge.java b/src/main/java/com/hbm/inventory/container/ContainerMachinePlasmaForge.java new file mode 100644 index 000000000..821c85dee --- /dev/null +++ b/src/main/java/com/hbm/inventory/container/ContainerMachinePlasmaForge.java @@ -0,0 +1,70 @@ +package com.hbm.inventory.container; + +import com.hbm.inventory.SlotCraftingOutput; +import com.hbm.inventory.SlotNonRetarded; +import com.hbm.items.ModItems; +import com.hbm.util.InventoryUtil; + +import api.hbm.energymk2.IBatteryItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.IInventory; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; + +public class ContainerMachinePlasmaForge extends ContainerBase { + + public ContainerMachinePlasmaForge(InventoryPlayer invPlayer, IInventory assembler) { + super(invPlayer, assembler); + + // Battery + this.addSlotToContainer(new SlotNonRetarded(assembler, 0, 152, 82)); + // Schematic + this.addSlotToContainer(new SlotNonRetarded(assembler, 1, 35, 81)); + // Booster + this.addSlotToContainer(new SlotNonRetarded(assembler, 2, 98, 116)); + // Input + this.addSlots(assembler, 3, 8, 18, 3, 4); + // Output + this.addSlotToContainer(new SlotCraftingOutput(invPlayer.player, assembler, 15, 116, 36)); + + this.playerInv(invPlayer, 8, 162); + } + + @Override + public ItemStack transferStackInSlot(EntityPlayer player, int index) { + ItemStack slotOriginal = null; + Slot slot = (Slot) this.inventorySlots.get(index); + + if(slot != null && slot.getHasStack()) { + ItemStack slotStack = slot.getStack(); + slotOriginal = slotStack.copy(); + + if(index <= tile.getSizeInventory() - 1) { + SlotCraftingOutput.checkAchievements(player, slotStack); + if(!this.mergeItemStack(slotStack, tile.getSizeInventory(), this.inventorySlots.size(), true)) { + return null; + } + } else { + + if(slotOriginal.getItem() instanceof IBatteryItem || slotOriginal.getItem() == ModItems.battery_creative) { + if(!this.mergeItemStack(slotStack, 0, 1, false)) return null; + } else if(slotOriginal.getItem() == ModItems.blueprints) { + if(!this.mergeItemStack(slotStack, 1, 2, false)) return null; + } else { + if(!InventoryUtil.mergeItemStack(this.inventorySlots, slotStack, 2, 15, false)) return null; + } + } + + if(slotStack.stackSize == 0) { + slot.putStack(null); + } else { + slot.onSlotChanged(); + } + + slot.onPickupFromSlot(player, slotStack); + } + + return slotOriginal; + } +} diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachinePlasmaForge.java b/src/main/java/com/hbm/inventory/gui/GUIMachinePlasmaForge.java new file mode 100644 index 000000000..5071b994e --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GUIMachinePlasmaForge.java @@ -0,0 +1,140 @@ +package com.hbm.inventory.gui; + +import org.lwjgl.opengl.GL11; + +import com.hbm.inventory.container.ContainerMachinePlasmaForge; +import com.hbm.inventory.recipes.PlasmaForgeRecipe; +import com.hbm.inventory.recipes.PlasmaForgeRecipes; +import com.hbm.inventory.recipes.loader.GenericRecipe; +import com.hbm.items.machine.ItemBlueprints; +import com.hbm.lib.RefStrings; +import com.hbm.render.util.GaugeUtil; +import com.hbm.tileentity.machine.fusion.TileEntityFusionPlasmaForge; +import com.hbm.util.BobMathUtil; +import com.hbm.util.i18n.I18nUtil; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.OpenGlHelper; +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 GUIMachinePlasmaForge extends GuiInfoContainer { + + private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/reactors/gui_fusion_plasmaforge.png"); + private TileEntityFusionPlasmaForge forge; + + public GUIMachinePlasmaForge(InventoryPlayer invPlayer, TileEntityFusionPlasmaForge tedf) { + super(new ContainerMachinePlasmaForge(invPlayer, tedf)); + forge = tedf; + + this.xSize = 176; + this.ySize = 244; + } + + @Override + public void drawScreen(int mouseX, int mouseY, float f) { + super.drawScreen(mouseX, mouseY, f); + + forge.inputTank.renderTankInfo(this, mouseX, mouseY, guiLeft + 80, guiTop + 18, 16, 52); + + this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 152, guiTop + 18, 16, 62, forge.power, forge.maxPower); + + if(guiLeft + 7 <= mouseX && guiLeft + 7 + 18 > mouseX && guiTop + 80 < mouseY && guiTop + 80 + 18 >= mouseY) { + if(this.forge.plasmaModule.recipe != null && PlasmaForgeRecipes.INSTANCE.recipeNameMap.containsKey(this.forge.plasmaModule.recipe)) { + GenericRecipe recipe = (GenericRecipe) PlasmaForgeRecipes.INSTANCE.recipeNameMap.get(this.forge.plasmaModule.recipe); + this.func_146283_a(recipe.print(), mouseX, mouseY); + } else { + this.drawCreativeTabHoveringText(EnumChatFormatting.YELLOW + I18nUtil.resolveKey("gui.recipe.setRecipe"), mouseX, mouseY); + } + } + + PlasmaForgeRecipe recipe = (PlasmaForgeRecipe) PlasmaForgeRecipes.INSTANCE.recipeNameMap.get(forge.plasmaModule.recipe); + + if(recipe != null) { + drawCustomInfoStat(mouseX, mouseY, guiLeft + 25, guiTop + 115, 18, 18, mouseX, mouseY, EnumChatFormatting.GREEN + "-> " + EnumChatFormatting.RESET + BobMathUtil.getShortNumber(forge.plasmaEnergySync) + "KyU / " + BobMathUtil.getShortNumber(recipe.ignitionTemp) + "KyU"); + } else { + drawCustomInfoStat(mouseX, mouseY, guiLeft + 25, guiTop + 115, 18, 18, mouseX, mouseY, "0TU / 0TU"); + } + } + + @Override + protected void mouseClicked(int x, int y, int button) { + super.mouseClicked(x, y, button); + + if(this.checkClick(x, y, 7, 80, 18, 18)) GUIScreenRecipeSelector.openSelector(PlasmaForgeRecipes.INSTANCE, forge, forge.plasmaModule.recipe, 0, ItemBlueprints.grabPool(forge.slots[1]), this); + } + + @Override + protected void drawGuiContainerForegroundLayer(int i, int j) { + String name = this.forge.hasCustomInventoryName() ? this.forge.getInventoryName() : I18n.format(this.forge.getInventoryName()); + + this.fontRendererObj.drawString(name, 70 - 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 p = (int) (forge.power * 61 / forge.maxPower); + drawTexturedModalRect(guiLeft + 152, guiTop + 80 - p, 176, 62 - p, 16, p); + + if(forge.plasmaModule.progress > 0) { + int j = (int) Math.ceil(70 * forge.plasmaModule.progress); + drawTexturedModalRect(guiLeft + 62, guiTop + 81, 176, 62, j, 16); + } + + PlasmaForgeRecipe recipe = (PlasmaForgeRecipe) PlasmaForgeRecipes.INSTANCE.recipeNameMap.get(forge.plasmaModule.recipe); + + /// LEFT LED + if(forge.didProcess) { + drawTexturedModalRect(guiLeft + 51, guiTop + 76, 195, 0, 3, 6); + } else if(recipe != null) { + drawTexturedModalRect(guiLeft + 51, guiTop + 76, 192, 0, 3, 6); + } + + /// RIGHT LED + if(forge.didProcess) { + drawTexturedModalRect(guiLeft + 56, guiTop + 76, 195, 0, 3, 6); + } else if(recipe != null && forge.power >= recipe.power) { + drawTexturedModalRect(guiLeft + 56, guiTop + 76, 192, 0, 3, 6); + } + + double inputGauge = recipe == null ? 0 : Math.min(((double) forge.plasmaEnergySync / (double) recipe.ignitionTemp), 1.5) / 1.5D; + double boosterGauge = 0; + + // input energy + GaugeUtil.drawSmoothGauge(guiLeft + 34, guiTop + 124, this.zLevel, inputGauge, 5, 2, 1, 0xA00000); + // output genergy + GaugeUtil.drawSmoothGauge(guiLeft + 70, guiTop + 124, this.zLevel, boosterGauge, 5, 2, 1, 0xA00000); + + this.renderItem(recipe != null ? recipe.getIcon() : TEMPLATE_FOLDER, 8, 81); + + if(recipe != null && recipe.inputItem != null) { + for(int i = 0; i < recipe.inputItem.length; i++) { + Slot slot = (Slot) this.inventorySlots.inventorySlots.get(forge.plasmaModule.inputSlots[i]); + if(!slot.getHasStack()) this.renderItem(recipe.inputItem[i].extractForCyclingDisplay(20), slot.xDisplayPosition, slot.yDisplayPosition, 10F); + } + + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + OpenGlHelper.glBlendFunc(770, 771, 1, 0); + GL11.glColor4f(1F, 1F, 1F, 0.5F); + GL11.glEnable(GL11.GL_BLEND); + this.zLevel = 300F; + for(int i = 0; i < recipe.inputItem.length; i++) { + Slot slot = (Slot) this.inventorySlots.inventorySlots.get(forge.plasmaModule.inputSlots[i]); + if(!slot.getHasStack()) drawTexturedModalRect(guiLeft + slot.xDisplayPosition, guiTop + slot.yDisplayPosition, slot.xDisplayPosition, slot.yDisplayPosition, 16, 16); + } + this.zLevel = 0F; + GL11.glColor4f(1F, 1F, 1F, 1F); + GL11.glDisable(GL11.GL_BLEND); + } + + forge.inputTank.renderTank(guiLeft + 80, guiTop + 70, this.zLevel, 16, 52); + } +} diff --git a/src/main/java/com/hbm/inventory/gui/GUIScreenTemplateFolder.java b/src/main/java/com/hbm/inventory/gui/GUIScreenTemplateFolder.java index bd0ff47be..5b7de34d2 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIScreenTemplateFolder.java +++ b/src/main/java/com/hbm/inventory/gui/GUIScreenTemplateFolder.java @@ -12,9 +12,6 @@ import org.lwjgl.opengl.GL12; import com.hbm.inventory.recipes.CrucibleRecipes; import com.hbm.items.ModItems; -import com.hbm.items.machine.ItemCassette; -import com.hbm.items.machine.ItemStamp; -import com.hbm.items.machine.ItemStamp.StampType; import com.hbm.lib.RefStrings; import com.hbm.main.MainRegistry; import com.hbm.packet.PacketDispatcher; diff --git a/src/main/java/com/hbm/inventory/material/Mats.java b/src/main/java/com/hbm/inventory/material/Mats.java index 55b910e8f..d7316156a 100644 --- a/src/main/java/com/hbm/inventory/material/Mats.java +++ b/src/main/java/com/hbm/inventory/material/Mats.java @@ -140,7 +140,7 @@ public class Mats { public static final NTMMaterial MAT_ALLOY = makeSmeltable(_AS + 2, ALLOY, 0xFF8330, 0x700000, 0xFF7318).setAutogen(WIRE, DUST, DENSEWIRE, PLATE, CASTPLATE, BLOCK).m(); public static final NTMMaterial MAT_DURA = makeSmeltable(_AS + 3, DURA, 0x82A59C, 0x06281E, 0x42665C).setAutogen(BOLT, DUST, PLATE, CASTPLATE, PIPE, BLOCK, LIGHTBARREL, HEAVYBARREL, LIGHTRECEIVER, HEAVYRECEIVER, GRIP).m(); public static final NTMMaterial MAT_DESH = makeSmeltable(_AS + 12, DESH, 0xFF6D6D, 0x720000, 0xF22929).setAutogen(DUST, CASTPLATE, BLOCK, LIGHTBARREL, HEAVYBARREL, LIGHTRECEIVER, STOCK, GRIP).m(); - public static final NTMMaterial MAT_STAR = makeSmeltable(_AS + 5, STAR, 0xCCCCEA, 0x11111A, 0xA5A5D3).setAutogen(DUST, DENSEWIRE, BLOCK).m(); + public static final NTMMaterial MAT_STAR = makeSmeltable(_AS + 5, STAR, 0xCCCCEA, 0x11111A, 0xA5A5D3).setAutogen(DUST, DENSEWIRE, CASTPLATE, BLOCK).m(); public static final NTMMaterial MAT_FERRO = makeSmeltable(_AS + 7, FERRO, 0xB7B7C9, 0x101022, 0x6B6B8B).setAutogen(CASTPLATE, HEAVYBARREL, HEAVYRECEIVER).m(); public static final NTMMaterial MAT_TCALLOY = makeSmeltable(_AS + 6, TCALLOY, 0xD4D6D6, 0x323D3D, 0x9CA6A6).setAutogen(DUST, CASTPLATE, WELDEDPLATE, LIGHTBARREL, HEAVYBARREL, LIGHTRECEIVER, HEAVYRECEIVER).m(); public static final NTMMaterial MAT_CDALLOY = makeSmeltable(_AS + 13, CDALLOY, 0xF7DF8F, 0x604308, 0xFBD368).setAutogen(CASTPLATE, WELDEDPLATE, LIGHTBARREL, HEAVYBARREL, LIGHTRECEIVER, HEAVYRECEIVER).m(); diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblyMachineRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblyMachineRecipes.java index 75550e704..b9b0c4b0a 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblyMachineRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblyMachineRecipes.java @@ -8,7 +8,6 @@ import static com.hbm.inventory.OreDictManager.*; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.generic.BlockCap.EnumCapBlock; -import com.hbm.blocks.machine.BlockICFLaserComponent.EnumICFPart; import com.hbm.config.GeneralConfig; import com.hbm.inventory.FluidStack; import com.hbm.inventory.OreDictManager; @@ -83,10 +82,6 @@ public class AssemblyMachineRecipes extends GenericRecipes { .inputItems(new OreDictStack(DESH.ingot(), 4), new OreDictStack(ANY_PLASTIC.dust(), 2), new OreDictStack(DURA.ingot(), 1))); this.register(new GenericRecipe("ass.platebismuth").setup(200, 100).outputItems(new ItemStack(ModItems.plate_bismuth, 1)) .inputItems(new ComparableStack(ModItems.nugget_bismuth, 2), new OreDictStack(U238.billet(), 2), new OreDictStack(NB.dust(), 1))); - this.register(new GenericRecipe("ass.plateeuphemium").setup(600, 100).outputItems(new ItemStack(ModItems.plate_euphemium, 1)) - .inputItems(new OreDictStack(EUPH.ingot(), 4), new OreDictStack(AT.dust(), 3), new OreDictStack(BI.dust(), 1), new OreDictStack(VOLCANIC.gem(), 1), new OreDictStack(OSMIRIDIUM.ingot()))); - this.register(new GenericRecipe("ass.platednt").setup(600, 100).outputItems(new ItemStack(ModItems.plate_dineutronium, 4)) - .inputItems(new OreDictStack(DNT.ingot(), 4), new ComparableStack(ModItems.powder_spark_mix, 2), new OreDictStack(DESH.ingot(), 1))); // expensive parts this.register(new GenericRecipe("ass.exsteelplating").setup(200, 400).outputItems(new ItemStack(ModItems.item_expensive, 1, EnumExpensiveType.STEEL_PLATING.ordinal())) @@ -424,32 +419,6 @@ public class AssemblyMachineRecipes extends GenericRecipes { new ComparableStack(ModItems.circuit, 16, EnumCircuitType.CHIP_QUANTUM)) .inputFluids(new FluidStack(Fluids.PERFLUOROMETHYL_COLD, 8_000)) .outputFluids(new FluidStack(Fluids.PERFLUOROMETHYL, 8_000))); - - this.register(new GenericRecipe("ass.fensusan").setup(1_200, 100).outputItems(new ItemStack(ModBlocks.machine_battery_redd, 1)) - .inputItems(new ComparableStack(ModItems.ingot_electronium, 64), - new ComparableStack(ModItems.battery_pack, 1, EnumBatteryPack.BATTERY_QUANTUM), - new OreDictStack(OSMIRIDIUM.plateWelded(), 64), - new OreDictStack(OSMIRIDIUM.plateWelded(), 64), - new OreDictStack(ANY_BISMOIDBRONZE.plateCast(), 64), - new OreDictStack(CMB.plateCast(), 32), - new OreDictStack(MAGTUNG.wireDense(), 32), - new ComparableStack(ModItems.plate_dineutronium, 64), - new ComparableStack(ModItems.powder_magic, 64), - new ComparableStack(ModItems.ingot_u238m2), - new ComparableStack(ModItems.ingot_cft, 64), - new ComparableStack(ModItems.ingot_cft, 64)) - .inputItemsEx(new ComparableStack(ModItems.ingot_electronium, 64), - new ComparableStack(ModItems.battery_pack, 1, EnumBatteryPack.BATTERY_QUANTUM), - new ComparableStack(ModItems.item_expensive, 64, EnumExpensiveType.BRONZE_TUBES), - new ComparableStack(ModItems.item_expensive, 64, EnumExpensiveType.FERRO_PLATING), - new OreDictStack(OSMIRIDIUM.plateWelded(), 64), - new OreDictStack(OSMIRIDIUM.plateWelded(), 64), - new OreDictStack(OSMIRIDIUM.plateWelded(), 64), - new OreDictStack(ANY_BISMOIDBRONZE.plateCast(), 64), - new OreDictStack(CMB.plateCast(), 64), - new ComparableStack(ModItems.ingot_u238m2), - new ComparableStack(ModItems.ingot_cft, 64), - new ComparableStack(ModItems.ingot_cft, 64))); // fluid tanks this.register(new GenericRecipe("ass.tank").setup(200, 100).outputItems(new ItemStack(ModBlocks.machine_fluidtank, 1)) @@ -603,55 +572,6 @@ public class AssemblyMachineRecipes extends GenericRecipes { .inputItemsEx(new ComparableStack(ModItems.item_expensive, 6, EnumExpensiveType.LEAD_PLATING), new OreDictStack(ANY_RESISTANTALLOY.plateWelded())) .setPools528(GenericRecipes.POOL_PREFIX_528 + "tcalloy")); - // ICF - this.register(new GenericRecipe("ass.icfcell").setup(200, 100).outputItems(new ItemStack(ModBlocks.icf_laser_component, 1, EnumICFPart.CELL.ordinal())) - .inputItems(new ComparableStack(ModItems.ingot_cft, 2), new OreDictStack(ANY_BISMOIDBRONZE.plateCast(), 4), new ComparableStack(ModBlocks.glass_quartz, 16)) - .inputItemsEx(new ComparableStack(ModItems.item_expensive, 2, EnumExpensiveType.BRONZE_TUBES), new ComparableStack(ModItems.ingot_cft, 8), new ComparableStack(ModBlocks.glass_quartz, 16)) - .setPools528(GenericRecipes.POOL_PREFIX_528 + "chlorophyte")); - this.register(new GenericRecipe("ass.icfemitter").setup(200, 100).outputItems(new ItemStack(ModBlocks.icf_laser_component, 1, EnumICFPart.EMITTER.ordinal())) - .inputItems(new OreDictStack(W.plateWelded(), 4), new OreDictStack(MAGTUNG.wireDense(), 16)) - .inputItemsEx(new OreDictStack(W.plateWelded(), 8), new OreDictStack(MAGTUNG.wireDense(), 16)) - .inputFluids(new FluidStack(Fluids.XENON, 16_000)) - .setPools528(GenericRecipes.POOL_PREFIX_528 + "chlorophyte")); - this.register(new GenericRecipe("ass.icfcapacitor").setup(200, 100).outputItems(new ItemStack(ModBlocks.icf_laser_component, 1, EnumICFPart.CAPACITOR.ordinal())) - .inputItems(new OreDictStack(ANY_RESISTANTALLOY.plateWelded(), 1), new OreDictStack(ND.wireDense(), 16), new OreDictStack(SBD.wireDense(), 2)) - .inputItemsEx(new ComparableStack(ModItems.item_expensive, 3, EnumExpensiveType.FERRO_PLATING), new OreDictStack(ND.wireDense(), 16), new OreDictStack(SBD.wireDense(), 2)) - .setPools528(GenericRecipes.POOL_PREFIX_528 + "chlorophyte")); - this.register(new GenericRecipe("ass.icfturbo").setup(200, 100).outputItems(new ItemStack(ModBlocks.icf_laser_component, 1, EnumICFPart.TURBO.ordinal())) - .inputItems(new OreDictStack(ANY_RESISTANTALLOY.plateWelded(), 2), new OreDictStack(DNT.wireDense(), 4), new OreDictStack(SBD.wireDense(), 4)) - .inputItemsEx(new OreDictStack(ANY_RESISTANTALLOY.plateWelded(), 8), new OreDictStack(DNT.wireDense(), 8), new OreDictStack(SBD.wireDense(), 4)) - .setPools528(GenericRecipes.POOL_PREFIX_528 + "chlorophyte")); - this.register(new GenericRecipe("ass.icfcasing").setup(200, 100).outputItems(new ItemStack(ModBlocks.icf_laser_component, 1, EnumICFPart.CASING.ordinal())) - .inputItems(new OreDictStack(ANY_BISMOIDBRONZE.plateCast(), 4), new OreDictStack(BIGMT.plateCast(), 4), new OreDictStack(ANY_HARDPLASTIC.ingot(), 16)) - .inputItemsEx(new ComparableStack(ModItems.item_expensive, 4, EnumExpensiveType.BRONZE_TUBES), new OreDictStack(BIGMT.plateCast(), 4), new OreDictStack(ANY_HARDPLASTIC.ingot(), 16)) - .setPools528(GenericRecipes.POOL_PREFIX_528 + "chlorophyte")); - this.register(new GenericRecipe("ass.icfport").setup(200, 100).outputItems(new ItemStack(ModBlocks.icf_laser_component, 1, EnumICFPart.PORT.ordinal())) - .inputItems(new OreDictStack(ANY_BISMOIDBRONZE.plateCast(), 4), new OreDictStack(ANY_HARDPLASTIC.ingot(), 16), new OreDictStack(ND.wireDense(), 16)) - .inputItemsEx(new ComparableStack(ModItems.item_expensive, 4, EnumExpensiveType.BRONZE_TUBES), new OreDictStack(ANY_HARDPLASTIC.ingot(), 16), new OreDictStack(ND.wireDense(), 16)) - .setPools528(GenericRecipes.POOL_PREFIX_528 + "chlorophyte")); - this.register(new GenericRecipe("ass.icfcontroller").setup(200, 100).outputItems(new ItemStack(ModBlocks.icf_controller, 1)) - .inputItems(new ComparableStack(ModItems.ingot_cft, 16), new OreDictStack(ANY_BISMOIDBRONZE.plateCast(), 4), new OreDictStack(ANY_HARDPLASTIC.ingot(), 16), new ComparableStack(ModItems.circuit, 16, EnumCircuitType.BISMOID)) - .inputItemsEx(new ComparableStack(ModItems.item_expensive, 4, EnumExpensiveType.BRONZE_TUBES), new ComparableStack(ModItems.ingot_cft, 16), new OreDictStack(ANY_HARDPLASTIC.ingot(), 16), new ComparableStack(ModItems.circuit, 32, EnumCircuitType.BISMOID), new ComparableStack(ModItems.item_expensive, 4, EnumExpensiveType.COMPUTER)) - .setPools528(GenericRecipes.POOL_PREFIX_528 + "chlorophyte")); - this.register(new GenericRecipe("ass.icfscaffold").setup(200, 100).outputItems(new ItemStack(ModBlocks.icf_component, 1, 0)) - .inputItems(new OreDictStack(STEEL.plateWelded(), 4), new OreDictStack(TI.plateWelded(), 2)) - .inputItemsEx(new ComparableStack(ModItems.item_expensive, 8, EnumExpensiveType.STEEL_PLATING)) - .setPools528(GenericRecipes.POOL_PREFIX_528 + "chlorophyte")); - this.register(new GenericRecipe("ass.icfvessel").setup(200, 100).outputItems(new ItemStack(ModBlocks.icf_component, 1, 1)) - .inputItems(new ComparableStack(ModItems.ingot_cft, 1), new OreDictStack(CMB.plateCast(), 1), new OreDictStack(W.plateWelded(), 2)) - .setPools528(GenericRecipes.POOL_PREFIX_528 + "chlorophyte")); - this.register(new GenericRecipe("ass.icfstructural").setup(200, 100).outputItems(new ItemStack(ModBlocks.icf_component, 1, 3)) - .inputItems(new OreDictStack(STEEL.plateWelded(), 2), new OreDictStack(CU.plateWelded(), 2), new OreDictStack(ANY_BISMOIDBRONZE.plateCast(), 1)) - .inputItemsEx(new ComparableStack(ModItems.item_expensive, 1, EnumExpensiveType.BRONZE_TUBES), new OreDictStack(STEEL.plateWelded(), 8)) - .setPools528(GenericRecipes.POOL_PREFIX_528 + "chlorophyte")); - this.register(new GenericRecipe("ass.icfcore").setup(1_200, 100).outputItems(new ItemStack(ModBlocks.struct_icf_core, 1)) - .inputItems(new OreDictStack(CMB.plateWelded(), 16), new OreDictStack(ANY_RESISTANTALLOY.plateWelded(), 16), new OreDictStack(ANY_BISMOIDBRONZE.plateCast(), 16), new OreDictStack(SBD.wireDense(), 32), new ComparableStack(ModItems.circuit, 32, EnumCircuitType.BISMOID), new ComparableStack(ModItems.circuit, 16, EnumCircuitType.QUANTUM)) - .inputItemsEx(new ComparableStack(ModItems.item_expensive, 16, EnumExpensiveType.BRONZE_TUBES), new OreDictStack(CMB.plateWelded(), 16), new OreDictStack(SBD.wireDense(), 32), new ComparableStack(ModItems.circuit, 32, EnumCircuitType.QUANTUM), new ComparableStack(ModItems.item_expensive, 16, EnumExpensiveType.COMPUTER)) - .setPools528(GenericRecipes.POOL_PREFIX_528 + "chlorophyte")); - this.register(new GenericRecipe("ass.icfpress").setup(200, 100).outputItems(new ItemStack(ModBlocks.machine_icf_press, 1)) - .inputItems(new OreDictStack(GOLD.plateCast(), 8), new ComparableStack(ModItems.motor, 4), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.BISMOID)) - .setPools528(GenericRecipes.POOL_PREFIX_528 + "chlorophyte")); - // upgrades if(no528) { this.register(new GenericRecipe("ass.overdrive1").setup(200, 100).outputItems(new ItemStack(ModItems.upgrade_overdrive_1, 1)) @@ -982,22 +902,6 @@ public class AssemblyMachineRecipes extends GenericRecipes { .inputItems(new ComparableStack(ModItems.seg_15, 1), new OreDictStack(WEAPONSTEEL.plate(), 32), new OreDictStack(OreDictManager.getReflector(), 16), new ComparableStack(ModItems.powder_magic, 8), new ComparableStack(ModItems.egg_balefire_shard, 4), new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 16), new ComparableStack(ModItems.circuit, 2, EnumCircuitType.CONTROLLER)) .setPools528(GenericRecipes.POOL_PREFIX_528 + "controller")); - // weapons - this.register(new GenericRecipe("ass.schrabhammer").setup(6_000, 100).outputItems(new ItemStack(ModItems.schrabidium_hammer, 1)) - .inputItems( - new OreDictStack(SA326.block(), 35), - new ComparableStack(ModItems.billet_yharonite, 64), - new ComparableStack(ModItems.billet_yharonite, 64), - new ComparableStack(ModItems.coin_ufo, 1), - new ComparableStack(ModItems.fragment_meteorite, 64), - new ComparableStack(ModItems.fragment_meteorite, 64), - new ComparableStack(ModItems.fragment_meteorite, 64), - new ComparableStack(ModItems.fragment_meteorite, 64), - new ComparableStack(ModItems.fragment_meteorite, 64), - new ComparableStack(ModItems.fragment_meteorite, 64), - new ComparableStack(ModItems.fragment_meteorite, 64), - new ComparableStack(ModItems.fragment_meteorite, 64))); - // ammo this.register(new GenericRecipe("ass.50bmgsm").setup(100, 100).outputItems(new ItemStack(ModItems.ammo_standard, 6, EnumAmmo.BMG50_SM.ordinal())) .inputItems(new ComparableStack(ModItems.casing, 1, EnumCasingType.LARGE_STEEL), new OreDictStack(ANY_SMOKELESS.dust(), 6), new OreDictStack(STAR.ingot(), 3)) @@ -1102,30 +1006,6 @@ public class AssemblyMachineRecipes extends GenericRecipes { new ComparableStack(ModItems.thruster_small, 1), new ComparableStack(ModItems.photo_panel, 12), new ComparableStack(ModItems.battery_pack, 1, EnumBatteryPack.BATTERY_LITHIUM))); - this.register(new GenericRecipe("ass.gerald").setup(6_000, 100).outputItems(new ItemStack(ModItems.sat_gerald, 1)) - .inputItems(new OreDictStack(SBD.plateCast(), 64), - new OreDictStack(SBD.plateCast(), 64), - new OreDictStack(BSCCO.wireDense(), 64), - new OreDictStack(BSCCO.wireDense(), 64), - new ComparableStack(ModBlocks.det_nuke, 64), - new ComparableStack(ModItems.part_generic, 64, EnumPartType.HDE), - new ComparableStack(ModItems.part_generic, 64, EnumPartType.HDE), - new ComparableStack(ModItems.part_generic, 64, EnumPartType.HDE), - new ComparableStack(ModItems.part_generic, 64, EnumPartType.HDE), - new ComparableStack(ModItems.circuit, 64, EnumCircuitType.CONTROLLER_QUANTUM), - new ComparableStack(ModItems.coin_ufo, 1)) - .inputItemsEx(new OreDictStack(SBD.plateCast(), 64), - new OreDictStack(BSCCO.wireDense(), 64), - new ComparableStack(ModBlocks.det_nuke, 64), - new ComparableStack(ModItems.item_expensive, 64, EnumExpensiveType.BRONZE_TUBES), - new ComparableStack(ModItems.item_expensive, 64, EnumExpensiveType.BRONZE_TUBES), - new ComparableStack(ModItems.item_expensive, 64, EnumExpensiveType.BRONZE_TUBES), - new ComparableStack(ModItems.part_generic, 64, EnumPartType.HDE), - new ComparableStack(ModItems.part_generic, 64, EnumPartType.HDE), - new ComparableStack(ModItems.part_generic, 64, EnumPartType.HDE), - new ComparableStack(ModItems.circuit, 64, EnumCircuitType.CONTROLLER_QUANTUM), - new ComparableStack(ModItems.item_expensive, 64, EnumExpensiveType.COMPUTER), - new ComparableStack(ModItems.coin_ufo, 1)).setPools(GenericRecipes.POOL_PREFIX_DISCOVER + "gerald")); this.register(new GenericRecipe("ass.emptypackage").setup(40, 100).outputItems(new ItemStack(ModItems.fluid_pack_empty, 1)) .inputItems(new OreDictStack(TI.plate(), 4), new OreDictStack(ANY_PLASTIC.ingot(), 2))); diff --git a/src/main/java/com/hbm/inventory/recipes/PlasmaForgeRecipe.java b/src/main/java/com/hbm/inventory/recipes/PlasmaForgeRecipe.java new file mode 100644 index 000000000..2abf30ca5 --- /dev/null +++ b/src/main/java/com/hbm/inventory/recipes/PlasmaForgeRecipe.java @@ -0,0 +1,33 @@ +package com.hbm.inventory.recipes; + +import java.util.ArrayList; +import java.util.List; + +import com.hbm.inventory.recipes.loader.GenericRecipe; +import com.hbm.util.BobMathUtil; +import com.hbm.util.i18n.I18nUtil; + +import net.minecraft.util.EnumChatFormatting; + +public class PlasmaForgeRecipe extends GenericRecipe { + + // minimum plasma energy to perform the recipe + public long ignitionTemp; + + public PlasmaForgeRecipe(String name) { super(name); } + + public PlasmaForgeRecipe setInputEnergy(long ignitionTemp) { this.ignitionTemp = ignitionTemp; return this; } + + public List print() { + List list = new ArrayList(); + list.add(EnumChatFormatting.YELLOW + this.getLocalizedName()); + + duration(list); + power(list); + list.add(EnumChatFormatting.LIGHT_PURPLE + I18nUtil.resolveKey("gui.recipe.fusionIn") + ": " + BobMathUtil.getShortNumber(ignitionTemp) + "TU/t"); + input(list); + output(list); + + return list; + } +} diff --git a/src/main/java/com/hbm/inventory/recipes/PlasmaForgeRecipes.java b/src/main/java/com/hbm/inventory/recipes/PlasmaForgeRecipes.java index c6634c69a..d3ca36566 100644 --- a/src/main/java/com/hbm/inventory/recipes/PlasmaForgeRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/PlasmaForgeRecipes.java @@ -1,28 +1,34 @@ package com.hbm.inventory.recipes; -import static com.hbm.inventory.OreDictManager.BSCCO; -import static com.hbm.inventory.OreDictManager.SBD; +import static com.hbm.inventory.OreDictManager.*; +import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; import java.util.List; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.stream.JsonWriter; import com.hbm.blocks.ModBlocks; +import com.hbm.blocks.machine.BlockICFLaserComponent.EnumICFPart; import com.hbm.inventory.FluidStack; import com.hbm.inventory.RecipesCommon.AStack; import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.RecipesCommon.OreDictStack; +import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.recipes.loader.GenericRecipe; import com.hbm.inventory.recipes.loader.GenericRecipes; import com.hbm.items.ModItems; import com.hbm.items.ItemEnums.EnumExpensiveType; import com.hbm.items.ItemGenericPart.EnumPartType; import com.hbm.items.machine.ItemFluidIcon; +import com.hbm.items.machine.ItemBatteryPack.EnumBatteryPack; import com.hbm.items.machine.ItemCircuit.EnumCircuitType; import net.minecraft.item.ItemStack; -public class PlasmaForgeRecipes extends GenericRecipes { +public class PlasmaForgeRecipes extends GenericRecipes { public static final PlasmaForgeRecipes INSTANCE = new PlasmaForgeRecipes(); @@ -32,12 +38,109 @@ public class PlasmaForgeRecipes extends GenericRecipes { @Override public int outputFluidLimit() { return 0; } @Override public String getFileName() { return "hbmPlasmaForge.json"; } - @Override public GenericRecipe instantiateRecipe(String name) { return new GenericRecipe(name); } + @Override public PlasmaForgeRecipe instantiateRecipe(String name) { return new PlasmaForgeRecipe(name); } @Override public void registerDefaults() { + + // Plates + this.register((PlasmaForgeRecipe) new PlasmaForgeRecipe("plsm.plateeuphemium").setInputEnergy(1_000_000).setup(600, 10_000_000).outputItems(new ItemStack(ModItems.plate_euphemium, 1)) + .inputItems(new OreDictStack(EUPH.ingot(), 4), new OreDictStack(AT.dust(), 3), new OreDictStack(BI.dust(), 1), new OreDictStack(VOLCANIC.gem(), 1), new OreDictStack(OSMIRIDIUM.ingot()))); + this.register((PlasmaForgeRecipe) new PlasmaForgeRecipe("plsm.platednt").setInputEnergy(1_000_000).setup(600, 10_000_000).outputItems(new ItemStack(ModItems.plate_dineutronium, 4)) + .inputItems(new OreDictStack(DNT.ingot(), 4), new ComparableStack(ModItems.powder_spark_mix, 2), new OreDictStack(DESH.ingot(), 1))); - this.register(new GenericRecipe("plsm.gerald").setup(6_000, 100).outputItems(new ItemStack(ModItems.sat_gerald, 1)) + // ICF + this.register((PlasmaForgeRecipe) new PlasmaForgeRecipe("plsm.icfcell").setInputEnergy(1_000_000).setup(200, 10_000_000).outputItems(new ItemStack(ModBlocks.icf_laser_component, 1, EnumICFPart.CELL.ordinal())) + .inputItems(new ComparableStack(ModItems.ingot_cft, 2), new OreDictStack(ANY_BISMOIDBRONZE.plateCast(), 4), new ComparableStack(ModBlocks.glass_quartz, 16)) + .inputItemsEx(new ComparableStack(ModItems.item_expensive, 2, EnumExpensiveType.BRONZE_TUBES), new ComparableStack(ModItems.ingot_cft, 8), new ComparableStack(ModBlocks.glass_quartz, 16)) + .setPools528(PlasmaForgeRecipes.POOL_PREFIX_528 + "chlorophyte")); + this.register((PlasmaForgeRecipe) new PlasmaForgeRecipe("plsm.icfemitter").setInputEnergy(1_000_000).setup(200, 10_000_000).outputItems(new ItemStack(ModBlocks.icf_laser_component, 1, EnumICFPart.EMITTER.ordinal())) + .inputItems(new OreDictStack(W.plateWelded(), 4), new OreDictStack(MAGTUNG.wireDense(), 16)) + .inputItemsEx(new OreDictStack(W.plateWelded(), 8), new OreDictStack(MAGTUNG.wireDense(), 16)) + .inputFluids(new FluidStack(Fluids.XENON, 16_000)) + .setPools528(PlasmaForgeRecipes.POOL_PREFIX_528 + "chlorophyte")); + this.register((PlasmaForgeRecipe) new PlasmaForgeRecipe("plsm.icfcapacitor").setInputEnergy(1_000_000).setup(200, 10_000_000).outputItems(new ItemStack(ModBlocks.icf_laser_component, 1, EnumICFPart.CAPACITOR.ordinal())) + .inputItems(new OreDictStack(ANY_RESISTANTALLOY.plateWelded(), 1), new OreDictStack(ND.wireDense(), 16), new OreDictStack(SBD.wireDense(), 2)) + .inputItemsEx(new ComparableStack(ModItems.item_expensive, 3, EnumExpensiveType.FERRO_PLATING), new OreDictStack(ND.wireDense(), 16), new OreDictStack(SBD.wireDense(), 2)) + .setPools528(PlasmaForgeRecipes.POOL_PREFIX_528 + "chlorophyte")); + this.register((PlasmaForgeRecipe) new PlasmaForgeRecipe("plsm.icfturbo").setInputEnergy(1_000_000).setup(200, 10_000_000).outputItems(new ItemStack(ModBlocks.icf_laser_component, 1, EnumICFPart.TURBO.ordinal())) + .inputItems(new OreDictStack(ANY_RESISTANTALLOY.plateWelded(), 2), new OreDictStack(DNT.wireDense(), 4), new OreDictStack(SBD.wireDense(), 4)) + .inputItemsEx(new OreDictStack(ANY_RESISTANTALLOY.plateWelded(), 8), new OreDictStack(DNT.wireDense(), 8), new OreDictStack(SBD.wireDense(), 4)) + .setPools528(PlasmaForgeRecipes.POOL_PREFIX_528 + "chlorophyte")); + this.register((PlasmaForgeRecipe) new PlasmaForgeRecipe("plsm.icfcasing").setInputEnergy(1_000_000).setup(200, 10_000_000).outputItems(new ItemStack(ModBlocks.icf_laser_component, 1, EnumICFPart.CASING.ordinal())) + .inputItems(new OreDictStack(ANY_BISMOIDBRONZE.plateCast(), 4), new OreDictStack(BIGMT.plateCast(), 4), new OreDictStack(ANY_HARDPLASTIC.ingot(), 16)) + .inputItemsEx(new ComparableStack(ModItems.item_expensive, 4, EnumExpensiveType.BRONZE_TUBES), new OreDictStack(BIGMT.plateCast(), 4), new OreDictStack(ANY_HARDPLASTIC.ingot(), 16)) + .setPools528(PlasmaForgeRecipes.POOL_PREFIX_528 + "chlorophyte")); + this.register((PlasmaForgeRecipe) new PlasmaForgeRecipe("plsm.icfport").setInputEnergy(1_000_000).setup(200, 10_000_000).outputItems(new ItemStack(ModBlocks.icf_laser_component, 1, EnumICFPart.PORT.ordinal())) + .inputItems(new OreDictStack(ANY_BISMOIDBRONZE.plateCast(), 4), new OreDictStack(ANY_HARDPLASTIC.ingot(), 16), new OreDictStack(ND.wireDense(), 16)) + .inputItemsEx(new ComparableStack(ModItems.item_expensive, 4, EnumExpensiveType.BRONZE_TUBES), new OreDictStack(ANY_HARDPLASTIC.ingot(), 16), new OreDictStack(ND.wireDense(), 16)) + .setPools528(PlasmaForgeRecipes.POOL_PREFIX_528 + "chlorophyte")); + this.register((PlasmaForgeRecipe) new PlasmaForgeRecipe("plsm.icfcontroller").setInputEnergy(1_000_000).setup(200, 10_000_000).outputItems(new ItemStack(ModBlocks.icf_controller, 1)) + .inputItems(new ComparableStack(ModItems.ingot_cft, 16), new OreDictStack(ANY_BISMOIDBRONZE.plateCast(), 4), new OreDictStack(ANY_HARDPLASTIC.ingot(), 16), new ComparableStack(ModItems.circuit, 16, EnumCircuitType.BISMOID)) + .inputItemsEx(new ComparableStack(ModItems.item_expensive, 4, EnumExpensiveType.BRONZE_TUBES), new ComparableStack(ModItems.ingot_cft, 16), new OreDictStack(ANY_HARDPLASTIC.ingot(), 16), new ComparableStack(ModItems.circuit, 32, EnumCircuitType.BISMOID), new ComparableStack(ModItems.item_expensive, 4, EnumExpensiveType.COMPUTER)) + .setPools528(PlasmaForgeRecipes.POOL_PREFIX_528 + "chlorophyte")); + this.register((PlasmaForgeRecipe) new PlasmaForgeRecipe("plsm.icfscaffold").setInputEnergy(1_000_000).setup(200, 10_000_000).outputItems(new ItemStack(ModBlocks.icf_component, 1, 0)) + .inputItems(new OreDictStack(STEEL.plateWelded(), 4), new OreDictStack(TI.plateWelded(), 2)) + .inputItemsEx(new ComparableStack(ModItems.item_expensive, 8, EnumExpensiveType.STEEL_PLATING)) + .setPools528(PlasmaForgeRecipes.POOL_PREFIX_528 + "chlorophyte")); + this.register((PlasmaForgeRecipe) new PlasmaForgeRecipe("plsm.icfvessel").setInputEnergy(1_000_000).setup(200, 10_000_000).outputItems(new ItemStack(ModBlocks.icf_component, 1, 1)) + .inputItems(new ComparableStack(ModItems.ingot_cft, 1), new OreDictStack(CMB.plateCast(), 1), new OreDictStack(W.plateWelded(), 2)) + .setPools528(PlasmaForgeRecipes.POOL_PREFIX_528 + "chlorophyte")); + this.register((PlasmaForgeRecipe) new PlasmaForgeRecipe("plsm.icfstructural").setInputEnergy(1_000_000).setup(200, 10_000_000).outputItems(new ItemStack(ModBlocks.icf_component, 1, 3)) + .inputItems(new OreDictStack(STEEL.plateWelded(), 2), new OreDictStack(CU.plateWelded(), 2), new OreDictStack(ANY_BISMOIDBRONZE.plateCast(), 1)) + .inputItemsEx(new ComparableStack(ModItems.item_expensive, 1, EnumExpensiveType.BRONZE_TUBES), new OreDictStack(STEEL.plateWelded(), 8)) + .setPools528(PlasmaForgeRecipes.POOL_PREFIX_528 + "chlorophyte")); + this.register((PlasmaForgeRecipe) new PlasmaForgeRecipe("plsm.icfcore").setInputEnergy(1_000_000).setup(1_200, 10_000_000).outputItems(new ItemStack(ModBlocks.struct_icf_core, 1)) + .inputItems(new OreDictStack(CMB.plateWelded(), 16), new OreDictStack(ANY_RESISTANTALLOY.plateWelded(), 16), new OreDictStack(ANY_BISMOIDBRONZE.plateCast(), 16), new OreDictStack(SBD.wireDense(), 32), new ComparableStack(ModItems.circuit, 32, EnumCircuitType.BISMOID), new ComparableStack(ModItems.circuit, 16, EnumCircuitType.QUANTUM)) + .inputItemsEx(new ComparableStack(ModItems.item_expensive, 16, EnumExpensiveType.BRONZE_TUBES), new OreDictStack(CMB.plateWelded(), 16), new OreDictStack(SBD.wireDense(), 32), new ComparableStack(ModItems.circuit, 32, EnumCircuitType.QUANTUM), new ComparableStack(ModItems.item_expensive, 16, EnumExpensiveType.COMPUTER)) + .setPools528(PlasmaForgeRecipes.POOL_PREFIX_528 + "chlorophyte")); + this.register((PlasmaForgeRecipe) new PlasmaForgeRecipe("plsm.icfpress").setInputEnergy(1_000_000).setup(200, 10_000_000).outputItems(new ItemStack(ModBlocks.machine_icf_press, 1)) + .inputItems(new OreDictStack(GOLD.plateCast(), 8), new ComparableStack(ModItems.motor, 4), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.BISMOID)) + .setPools528(PlasmaForgeRecipes.POOL_PREFIX_528 + "chlorophyte")); + + // weapons + this.register((PlasmaForgeRecipe) new PlasmaForgeRecipe("plsm.schrabhammer").setInputEnergy(25_000_000).setup(6_000, 10_000_000).outputItems(new ItemStack(ModItems.schrabidium_hammer, 1)) + .inputItems( + new OreDictStack(SA326.block(), 35), + new ComparableStack(ModItems.billet_yharonite, 64), + new ComparableStack(ModItems.billet_yharonite, 64), + new ComparableStack(ModItems.coin_ufo, 1), + new ComparableStack(ModItems.fragment_meteorite, 64), + new ComparableStack(ModItems.fragment_meteorite, 64), + new ComparableStack(ModItems.fragment_meteorite, 64), + new ComparableStack(ModItems.fragment_meteorite, 64), + new ComparableStack(ModItems.fragment_meteorite, 64), + new ComparableStack(ModItems.fragment_meteorite, 64), + new ComparableStack(ModItems.fragment_meteorite, 64), + new ComparableStack(ModItems.fragment_meteorite, 64))); + + this.register((PlasmaForgeRecipe) new PlasmaForgeRecipe("ass.fensusan").setInputEnergy(50_000_000).setup(1_200, 50_000_000).outputItems(new ItemStack(ModBlocks.machine_battery_redd, 1)) + .inputItems(new ComparableStack(ModItems.ingot_electronium, 64), + new ComparableStack(ModItems.battery_pack, 1, EnumBatteryPack.BATTERY_QUANTUM), + new OreDictStack(OSMIRIDIUM.plateWelded(), 64), + new OreDictStack(OSMIRIDIUM.plateWelded(), 64), + new OreDictStack(ANY_BISMOIDBRONZE.plateCast(), 64), + new OreDictStack(CMB.plateCast(), 32), + new OreDictStack(MAGTUNG.wireDense(), 32), + new ComparableStack(ModItems.plate_dineutronium, 64), + new ComparableStack(ModItems.powder_magic, 64), + new ComparableStack(ModItems.ingot_u238m2), + new ComparableStack(ModItems.ingot_cft, 64), + new ComparableStack(ModItems.ingot_cft, 64)) + .inputItemsEx(new ComparableStack(ModItems.ingot_electronium, 64), + new ComparableStack(ModItems.battery_pack, 1, EnumBatteryPack.BATTERY_QUANTUM), + new ComparableStack(ModItems.item_expensive, 64, EnumExpensiveType.BRONZE_TUBES), + new ComparableStack(ModItems.item_expensive, 64, EnumExpensiveType.FERRO_PLATING), + new OreDictStack(OSMIRIDIUM.plateWelded(), 64), + new OreDictStack(OSMIRIDIUM.plateWelded(), 64), + new OreDictStack(OSMIRIDIUM.plateWelded(), 64), + new OreDictStack(ANY_BISMOIDBRONZE.plateCast(), 64), + new OreDictStack(CMB.plateCast(), 64), + new ComparableStack(ModItems.ingot_u238m2), + new ComparableStack(ModItems.ingot_cft, 64), + new ComparableStack(ModItems.ingot_cft, 64))); + + this.register((PlasmaForgeRecipe) new PlasmaForgeRecipe("plsm.gerald").setInputEnergy(25_000_000).setup(6_000, 50_000_000).outputItems(new ItemStack(ModItems.sat_gerald, 1)) .inputItems(new OreDictStack(SBD.plateCast(), 64), new OreDictStack(SBD.plateCast(), 64), new OreDictStack(BSCCO.wireDense(), 64), @@ -60,7 +163,30 @@ public class PlasmaForgeRecipes extends GenericRecipes { new ComparableStack(ModItems.part_generic, 64, EnumPartType.HDE), new ComparableStack(ModItems.circuit, 64, EnumCircuitType.CONTROLLER_QUANTUM), new ComparableStack(ModItems.item_expensive, 64, EnumExpensiveType.COMPUTER), - new ComparableStack(ModItems.coin_ufo, 1)).setPools(GenericRecipes.POOL_PREFIX_DISCOVER + "gerald")); + new ComparableStack(ModItems.coin_ufo, 1)).setPools(PlasmaForgeRecipes.POOL_PREFIX_DISCOVER + "gerald")); + + // really, really boring fucking temp recipes + this.register((PlasmaForgeRecipe) new PlasmaForgeRecipe("plsm.dfccore").setInputEnergy(50_000_000).setup(1_200, 100_000_000).outputItems(new ItemStack(ModBlocks.dfc_core)).inputFluids(new FluidStack(Fluids.STELLAR_FLUX, 12_000)) + .inputItems(new OreDictStack(OSMIRIDIUM.plateWelded(), 16), new OreDictStack(DNT.wireDense(), 16), new ComparableStack(ModItems.circuit, 12, EnumCircuitType.CONTROLLER_QUANTUM), new ComparableStack(ModItems.singularity_spark), new ComparableStack(ModItems.powder_chlorophyte, 64))); + this.register((PlasmaForgeRecipe) new PlasmaForgeRecipe("plsm.dfcemitter").setInputEnergy(50_000_000).setup(600, 10_000_000).outputItems(new ItemStack(ModBlocks.dfc_emitter)).inputFluids(new FluidStack(Fluids.STELLAR_FLUX, 4_000)) + .inputItems(new OreDictStack(OSMIRIDIUM.plateWelded(), 16), new OreDictStack(STAR.wireDense(), 16), new ComparableStack(ModItems.circuit, 8, EnumCircuitType.CONTROLLER_QUANTUM))); + this.register((PlasmaForgeRecipe) new PlasmaForgeRecipe("plsm.dfcreceiver").setInputEnergy(50_000_000).setup(600, 10_000_000).outputItems(new ItemStack(ModBlocks.dfc_receiver)).inputFluids(new FluidStack(Fluids.STELLAR_FLUX, 4_000)) + .inputItems(new OreDictStack(OSMIRIDIUM.plateWelded(), 16), new OreDictStack(STAR.plateCast(), 16), new ComparableStack(ModItems.circuit, 8, EnumCircuitType.CONTROLLER_QUANTUM))); + this.register((PlasmaForgeRecipe) new PlasmaForgeRecipe("plsm.dfcinjector").setInputEnergy(50_000_000).setup(600, 10_000_000).outputItems(new ItemStack(ModBlocks.dfc_injector)).inputFluids(new FluidStack(Fluids.STELLAR_FLUX, 4_000)) + .inputItems(new OreDictStack(OSMIRIDIUM.plateWelded(), 16), new OreDictStack(BIGMT.plateCast(), 16), new ComparableStack(ModItems.circuit, 4, EnumCircuitType.CONTROLLER_ADVANCED))); + this.register((PlasmaForgeRecipe) new PlasmaForgeRecipe("plsm.dfcstabilizer").setInputEnergy(50_000_000).setup(600, 10_000_000).outputItems(new ItemStack(ModBlocks.dfc_stabilizer)).inputFluids(new FluidStack(Fluids.STELLAR_FLUX, 4_000)) + .inputItems(new OreDictStack(OSMIRIDIUM.plateWelded(), 16), new OreDictStack(SBD.wireDense(), 16), new ComparableStack(ModItems.circuit, 8, EnumCircuitType.CONTROLLER_QUANTUM))); + } + + @Override + public void readExtraData(JsonElement element, PlasmaForgeRecipe recipe) { + JsonObject obj = (JsonObject) element; + recipe.ignitionTemp = obj.get("ignitionTemp").getAsLong(); + } + + @Override + public void writeExtraData(PlasmaForgeRecipe recipe, JsonWriter writer) throws IOException { + writer.name("ignitionTemp").value(recipe.ignitionTemp); } public static HashMap getRecipes() { diff --git a/src/main/java/com/hbm/inventory/recipes/loader/SerializableRecipe.java b/src/main/java/com/hbm/inventory/recipes/loader/SerializableRecipe.java index 083cb871d..c2e44f065 100644 --- a/src/main/java/com/hbm/inventory/recipes/loader/SerializableRecipe.java +++ b/src/main/java/com/hbm/inventory/recipes/loader/SerializableRecipe.java @@ -94,6 +94,7 @@ public abstract class SerializableRecipe { recipeHandlers.add(PUREXRecipes.INSTANCE); recipeHandlers.add(FusionRecipes.INSTANCE); recipeHandlers.add(PrecAssRecipes.INSTANCE); + recipeHandlers.add(PlasmaForgeRecipes.INSTANCE); recipeHandlers.add(new MatDistribution()); recipeHandlers.add(new CustomMachineRecipes()); diff --git a/src/main/java/com/hbm/items/machine/ItemCassette.java b/src/main/java/com/hbm/items/machine/ItemCassette.java index 12667e1cb..95bbfe5ef 100644 --- a/src/main/java/com/hbm/items/machine/ItemCassette.java +++ b/src/main/java/com/hbm/items/machine/ItemCassette.java @@ -2,9 +2,6 @@ package com.hbm.items.machine; import java.util.List; -import com.hbm.items.ModItems; -import com.hbm.util.i18n.I18nUtil; - import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.renderer.texture.IIconRegister; @@ -12,7 +9,6 @@ import net.minecraft.creativetab.CreativeTabs; 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; import net.minecraft.util.ResourceLocation; @@ -97,34 +93,27 @@ public class ItemCassette extends Item { SOUND; }; - public ItemCassette() - { - this.setHasSubtypes(true); - this.setMaxDamage(0); - } + public ItemCassette() { + this.setHasSubtypes(true); + this.setMaxDamage(0); + } - @Override + @Override @SideOnly(Side.CLIENT) - public void getSubItems(Item item, CreativeTabs tabs, List list) - { - for (int i = 1; i < TrackType.values().length; ++i) - { - list.add(new ItemStack(item, 1, i)); - } - } + public void getSubItems(Item item, CreativeTabs tabs, List list) { + for(int i = 1; i < TrackType.values().length; ++i) { + list.add(new ItemStack(item, 1, i)); + } + } @Override - public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) - { - - if(!(stack.getItem() instanceof ItemCassette)) - return; + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) { + if(!(stack.getItem() instanceof ItemCassette)) return; - - list.add("Siren sound cassette:"); - list.add(" Name: " + TrackType.getEnum(stack.getItemDamage()).getTrackTitle()); - list.add(" Type: " + TrackType.getEnum(stack.getItemDamage()).getType().name()); - list.add(" Volume: " + TrackType.getEnum(stack.getItemDamage()).getVolume()); + list.add("Siren sound cassette:"); + list.add(" Name: " + TrackType.getEnum(stack.getItemDamage()).getTrackTitle()); + list.add(" Type: " + TrackType.getEnum(stack.getItemDamage()).getType().name()); + list.add(" Volume: " + TrackType.getEnum(stack.getItemDamage()).getVolume()); } public static TrackType getType(ItemStack stack) { @@ -134,47 +123,31 @@ public class ItemCassette extends Item { return TrackType.NULL; } - @Override + @Override @SideOnly(Side.CLIENT) - public boolean requiresMultipleRenderPasses() - { - return true; - } + public boolean requiresMultipleRenderPasses() { + return true; + } - @Override + @Override @SideOnly(Side.CLIENT) - public void registerIcons(IIconRegister p_94581_1_) - { - super.registerIcons(p_94581_1_); + public void registerIcons(IIconRegister p_94581_1_) { + super.registerIcons(p_94581_1_); + this.overlayIcon = p_94581_1_.registerIcon("hbm:cassette_overlay"); + } - this.overlayIcon = p_94581_1_.registerIcon("hbm:cassette_overlay"); - } - - @Override + @Override @SideOnly(Side.CLIENT) - public IIcon getIconFromDamageForRenderPass(int p_77618_1_, int p_77618_2_) - { - return p_77618_2_ == 1 ? this.overlayIcon : super.getIconFromDamageForRenderPass(p_77618_1_, p_77618_2_); - } + public IIcon getIconFromDamageForRenderPass(int meta, int pass) { + return pass == 1 ? this.overlayIcon : super.getIconFromDamageForRenderPass(meta, pass); + } - @Override + @Override @SideOnly(Side.CLIENT) - public int getColorFromItemStack(ItemStack stack, int p_82790_2_) - { - if (p_82790_2_ == 0) - { - return 16777215; - } - else - { - int j = TrackType.getEnum(stack.getItemDamage()).getColor(); - - if (j < 0) - { - j = 16777215; - } - - return j; - } - } + public int getColorFromItemStack(ItemStack stack, int pass) { + if(pass == 0) return 16777215; + int j = TrackType.getEnum(stack.getItemDamage()).getColor(); + if(j < 0) j = 16777215; + return j; + } } diff --git a/src/main/java/com/hbm/items/machine/ItemStamp.java b/src/main/java/com/hbm/items/machine/ItemStamp.java index ee6372fc2..96a0a6157 100644 --- a/src/main/java/com/hbm/items/machine/ItemStamp.java +++ b/src/main/java/com/hbm/items/machine/ItemStamp.java @@ -4,7 +4,6 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; -import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryFolly.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryFolly.java index d136236ee..738cdf335 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryFolly.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryFolly.java @@ -36,6 +36,7 @@ import com.hbm.util.DamageResistanceHandler.DamageClass; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; @@ -128,9 +129,11 @@ public class XFactoryFolly { }; public static BiFunction LAMBDA_CAN_FIRE = (stack, ctx) -> { - if(!ItemGunBaseNT.getIsAiming(stack)) return false; - if(ItemGunBaseNT.getLastAnim(stack, ctx.configIndex) != GunAnimation.SPINUP) return false; - if(ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex) < 100) return false; + if(ctx.entity instanceof EntityPlayer) { + if(!ItemGunBaseNT.getIsAiming(stack)) return false; + if(ItemGunBaseNT.getLastAnim(stack, ctx.configIndex) != GunAnimation.SPINUP) return false; + if(ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex) < 100) return false; + } return ctx.config.getReceivers(stack)[0].getMagazine(stack).getAmount(stack, ctx.inventory) > 0; }; diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index ec8a8a774..9c237af34 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -725,11 +725,6 @@ public class CraftingManager { addShapelessAuto(new ItemStack(ModItems.ams_catalyst_euphemium, 1), new Object[] { ModItems.ams_catalyst_blank, ModItems.rune_dagaz, ModItems.rune_dagaz, ModItems.rune_thurisaz, ModItems.rune_thurisaz, EUPH.dust(), EUPH.dust(), EUPH.dust(), EUPH.dust() }); addShapelessAuto(new ItemStack(ModItems.ams_catalyst_schrabidium, 1), new Object[] { ModItems.ams_catalyst_blank, ModItems.rune_dagaz, ModItems.rune_hagalaz, ModItems.rune_thurisaz, ModItems.rune_thurisaz, SA326.dust(), SA326.dust(), SA326.dust(), SA326.dust() }); addShapelessAuto(new ItemStack(ModItems.ams_catalyst_dineutronium, 1), new Object[] { ModItems.ams_catalyst_blank, ModItems.rune_hagalaz, ModItems.rune_hagalaz, ModItems.rune_thurisaz, ModItems.rune_thurisaz, DNT.dust(), DNT.dust(), DNT.dust(), DNT.dust() }); - addRecipeAuto(new ItemStack(ModBlocks.dfc_core, 1), new Object[] { "DLD", "LML", "DLD", 'D', ModItems.ingot_bismuth, 'L', DNT.block(), 'M', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BISMOID) }); - addRecipeAuto(new ItemStack(ModBlocks.dfc_emitter, 1), new Object[] { "SDS", "TXL", "SDS", 'S', OSMIRIDIUM.plateWelded(), 'D', ModItems.plate_desh, 'T', new ItemStack(ModItems.battery_pack, 1, EnumBatteryPack.BATTERY_QUANTUM.ordinal()), 'X', ModItems.crystal_xen, 'L', ModItems.sat_head_laser }); - addRecipeAuto(new ItemStack(ModBlocks.dfc_receiver, 1), new Object[] { "SDS", "TXL", "SDS", 'S', OSMIRIDIUM.plateWelded(), 'D', ModItems.plate_desh, 'T', new ItemStack(ModItems.battery_pack, 1, EnumBatteryPack.BATTERY_QUANTUM.ordinal()), 'X', ModBlocks.block_dineutronium, 'L', STEEL.shell() }); - addRecipeAuto(new ItemStack(ModBlocks.dfc_injector, 1), new Object[] { "SDS", "TXL", "SDS", 'S', OSMIRIDIUM.plateWelded(), 'D', CMB.plate(), 'T', ModBlocks.machine_fluidtank, 'X', ModItems.motor, 'L', STEEL.pipe() }); - addRecipeAuto(new ItemStack(ModBlocks.dfc_stabilizer, 1), new Object[] { "SDS", "TXL", "SDS", 'S', OSMIRIDIUM.plateWelded(), 'D', ModItems.plate_desh, 'T', ModItems.singularity_spark, 'X', ModBlocks.hadron_coil_alloy, 'L', ModItems.crystal_xen }); addRecipeAuto(new ItemStack(ModBlocks.barrel_plastic, 1), new Object[] { "IPI", "I I", "IPI", 'I', ModItems.plate_polymer, 'P', AL.plate() }); addRecipeAuto(new ItemStack(ModBlocks.barrel_steel, 1), new Object[] { "IPI", "I I", "IPI", 'I', STEEL.plate(), 'P', STEEL.ingot() }); addRecipeAuto(new ItemStack(ModBlocks.barrel_tcalloy, 1), new Object[] { "IPI", "I I", "IPI", 'I', "ingotTcAlloy", 'P', TI.plate() }); diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index b9c8304ea..1a8c39eef 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -258,7 +258,6 @@ public class MainRegistry { polaroidID = rand.nextInt(18) + 1; } - ShadyUtil.test(); loadConfig(PreEvent); HbmPotion.init(); diff --git a/src/main/java/com/hbm/main/NEIRegistry.java b/src/main/java/com/hbm/main/NEIRegistry.java index 755dda1fd..5374c19bd 100644 --- a/src/main/java/com/hbm/main/NEIRegistry.java +++ b/src/main/java/com/hbm/main/NEIRegistry.java @@ -42,6 +42,7 @@ public class NEIRegistry { handlers.add(new CrystallizerRecipeHandler()); handlers.add(new BookRecipeHandler()); handlers.add(new FusionRecipeHandler()); + handlers.add(new PlasmaForgeRecipeHandler()); handlers.add(new SILEXRecipeHandler()); handlers.add(new FuelPoolHandler()); handlers.add(new RBMKRodDisassemblyHandler()); diff --git a/src/main/java/com/hbm/render/tileentity/RenderFusionPlasmaForge.java b/src/main/java/com/hbm/render/tileentity/RenderFusionPlasmaForge.java index 070c2df85..2377311af 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderFusionPlasmaForge.java +++ b/src/main/java/com/hbm/render/tileentity/RenderFusionPlasmaForge.java @@ -6,6 +6,9 @@ import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ModBlocks; import com.hbm.main.ResourceManager; import com.hbm.render.item.ItemRenderBase; +import com.hbm.tileentity.machine.fusion.TileEntityFusionPlasmaForge; +import com.hbm.util.BobMathUtil; +import com.hbm.util.Clock; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; import net.minecraft.item.Item; @@ -30,6 +33,8 @@ public class RenderFusionPlasmaForge extends TileEntitySpecialRenderer implement case 5: GL11.glRotatef(0, 0F, 1F, 0F); break; } + TileEntityFusionPlasmaForge forge = (TileEntityFusionPlasmaForge) tile; + GL11.glShadeModel(GL11.GL_SMOOTH); bindTexture(ResourceManager.fusion_plasma_forge_tex); ResourceManager.fusion_plasma_forge.renderPart("Body"); @@ -85,11 +90,64 @@ public class RenderFusionPlasmaForge extends TileEntitySpecialRenderer implement GL11.glPopMatrix(); GL11.glPopMatrix(); - GL11.glDisable(GL11.GL_TEXTURE_2D); - GL11.glColor3f(0F, 0F, 0F); - ResourceManager.fusion_plasma_forge.renderPart("Plasma"); + if(forge.plasmaEnergySync <= 0) { + GL11.glColor3f(0F, 0F, 0F); + GL11.glDisable(GL11.GL_TEXTURE_2D); + ResourceManager.fusion_plasma_forge.renderPart("Plasma"); + GL11.glEnable(GL11.GL_TEXTURE_2D); + GL11.glColor3f(1F, 1F, 1F); + } else { + RenderArcFurnace.fullbright(true); + long time = Clock.get_ms() + forge.timeOffset; + float alpha = 0.5F + (float) (Math.sin(time / 500D) * 0.25F); + double mainOsc = BobMathUtil.sps(time / 750D) % 1D; + double glowOsc = Math.sin(time / 1000D) % 1D; + double glowExtra = time / 10000D % 1D; + + GL11.glColor3f(forge.plasmaRed * alpha, forge.plasmaGreen * alpha, forge.plasmaBlue * alpha); + GL11.glMatrixMode(GL11.GL_TEXTURE); + GL11.glLoadIdentity(); + bindTexture(ResourceManager.fusion_plasma_tex); + GL11.glTranslated(0, mainOsc, 0); + ResourceManager.fusion_plasma_forge.renderPart("Plasma"); + GL11.glMatrixMode(GL11.GL_TEXTURE); + GL11.glLoadIdentity(); + GL11.glMatrixMode(GL11.GL_MODELVIEW); + + GL11.glDisable(GL11.GL_ALPHA_TEST); + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE); + GL11.glDepthMask(false); + + GL11.glColor3f(forge.plasmaRed * 2, forge.plasmaGreen * 2, forge.plasmaBlue * 2); + + GL11.glMatrixMode(GL11.GL_TEXTURE); + GL11.glLoadIdentity(); + bindTexture(ResourceManager.fusion_plasma_glow_tex); + GL11.glTranslated(0, glowOsc + glowExtra, 0); + ResourceManager.fusion_plasma_forge.renderPart("Plasma"); + GL11.glMatrixMode(GL11.GL_TEXTURE); + GL11.glLoadIdentity(); + GL11.glMatrixMode(GL11.GL_MODELVIEW); + + glowOsc = Math.sin(time / 600D + 2) % 1D; + glowExtra = time / 5000D % 1D; + GL11.glMatrixMode(GL11.GL_TEXTURE); + GL11.glLoadIdentity(); + bindTexture(ResourceManager.fusion_plasma_glow_tex); + GL11.glTranslated(0, glowOsc + glowExtra, 0); + ResourceManager.fusion_plasma_forge.renderPart("Plasma"); + GL11.glMatrixMode(GL11.GL_TEXTURE); + GL11.glLoadIdentity(); + GL11.glMatrixMode(GL11.GL_MODELVIEW); + + GL11.glEnable(GL11.GL_ALPHA_TEST); + GL11.glDisable(GL11.GL_BLEND); + GL11.glDepthMask(true); + + RenderArcFurnace.fullbright(false); + } GL11.glColor3f(1F, 1F, 1F); - GL11.glEnable(GL11.GL_TEXTURE_2D); GL11.glShadeModel(GL11.GL_FLAT); diff --git a/src/main/java/com/hbm/tileentity/machine/fusion/IFusionPowerReceiver.java b/src/main/java/com/hbm/tileentity/machine/fusion/IFusionPowerReceiver.java index 77fbd0984..c4ad53ddb 100644 --- a/src/main/java/com/hbm/tileentity/machine/fusion/IFusionPowerReceiver.java +++ b/src/main/java/com/hbm/tileentity/machine/fusion/IFusionPowerReceiver.java @@ -12,5 +12,5 @@ public interface IFusionPowerReceiver { * fusionPower is the per-port output adjusted for the amount of connected receivers (i.e. when boilers share output energy) * neutronPower is a fixed value provided by the recipe */ - public void receiveFusionPower(long fusionPower, double neutronPower); + public void receiveFusionPower(long fusionPower, double neutronPower, float r, float g, float b); } diff --git a/src/main/java/com/hbm/tileentity/machine/fusion/TileEntityFusionBoiler.java b/src/main/java/com/hbm/tileentity/machine/fusion/TileEntityFusionBoiler.java index 5ebfe811f..666491b54 100644 --- a/src/main/java/com/hbm/tileentity/machine/fusion/TileEntityFusionBoiler.java +++ b/src/main/java/com/hbm/tileentity/machine/fusion/TileEntityFusionBoiler.java @@ -87,7 +87,7 @@ public class TileEntityFusionBoiler extends TileEntityLoadedBase implements IFlu @Override public boolean receivesFusionPower() { return true; } @Override - public void receiveFusionPower(long fusionPower, double neutronPower) { + public void receiveFusionPower(long fusionPower, double neutronPower, float r, float g, float b) { this.plasmaEnergy = fusionPower; int waterCycles = Math.min(tanks[0].getFill(), tanks[1].getMaxFill() - tanks[1].getFill()); diff --git a/src/main/java/com/hbm/tileentity/machine/fusion/TileEntityFusionBreeder.java b/src/main/java/com/hbm/tileentity/machine/fusion/TileEntityFusionBreeder.java index a60383a78..ae304271c 100644 --- a/src/main/java/com/hbm/tileentity/machine/fusion/TileEntityFusionBreeder.java +++ b/src/main/java/com/hbm/tileentity/machine/fusion/TileEntityFusionBreeder.java @@ -267,7 +267,7 @@ public class TileEntityFusionBreeder extends TileEntityMachineBase implements IF } @Override public boolean receivesFusionPower() { return false; } - @Override public void receiveFusionPower(long fusionPower, double neutronPower) { this.neutronEnergy = neutronPower; doProgress(); } + @Override public void receiveFusionPower(long fusionPower, double neutronPower, float r, float g, float b) { this.neutronEnergy = neutronPower; doProgress(); } @Override public FluidTank[] getReceivingTanks() { return new FluidTank[] {tanks[0]}; } @Override public FluidTank[] getSendingTanks() { return new FluidTank[] {tanks[1]}; } diff --git a/src/main/java/com/hbm/tileentity/machine/fusion/TileEntityFusionCoupler.java b/src/main/java/com/hbm/tileentity/machine/fusion/TileEntityFusionCoupler.java index 5dac7ba5f..09df9187c 100644 --- a/src/main/java/com/hbm/tileentity/machine/fusion/TileEntityFusionCoupler.java +++ b/src/main/java/com/hbm/tileentity/machine/fusion/TileEntityFusionCoupler.java @@ -62,7 +62,7 @@ public class TileEntityFusionCoupler extends TileEntityLoadedBase implements IFu @Override public boolean receivesFusionPower() { return true; } @Override - public void receiveFusionPower(long fusionPower, double neutronPower) { + public void receiveFusionPower(long fusionPower, double neutronPower, float r, float g, float b) { // more copy pasted crap code ! ! ! if(klystronNode != null && klystronNode.net != null) { diff --git a/src/main/java/com/hbm/tileentity/machine/fusion/TileEntityFusionMHDT.java b/src/main/java/com/hbm/tileentity/machine/fusion/TileEntityFusionMHDT.java index fd210a7a5..7ba197f05 100644 --- a/src/main/java/com/hbm/tileentity/machine/fusion/TileEntityFusionMHDT.java +++ b/src/main/java/com/hbm/tileentity/machine/fusion/TileEntityFusionMHDT.java @@ -159,7 +159,7 @@ public class TileEntityFusionMHDT extends TileEntityLoadedBase implements IEnerg } @Override public boolean receivesFusionPower() { return true; } - @Override public void receiveFusionPower(long fusionPower, double neutronPower) { this.plasmaEnergy = fusionPower; } + @Override public void receiveFusionPower(long fusionPower, double neutronPower, float r, float g, float b) { this.plasmaEnergy = fusionPower; } @Override public void serialize(ByteBuf buf) { diff --git a/src/main/java/com/hbm/tileentity/machine/fusion/TileEntityFusionPlasmaForge.java b/src/main/java/com/hbm/tileentity/machine/fusion/TileEntityFusionPlasmaForge.java index 36e103dd1..221e5d55b 100644 --- a/src/main/java/com/hbm/tileentity/machine/fusion/TileEntityFusionPlasmaForge.java +++ b/src/main/java/com/hbm/tileentity/machine/fusion/TileEntityFusionPlasmaForge.java @@ -1,35 +1,57 @@ package com.hbm.tileentity.machine.fusion; +import java.util.Map.Entry; + import com.hbm.interfaces.IControlReceiver; +import com.hbm.inventory.container.ContainerMachinePlasmaForge; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; +import com.hbm.inventory.gui.GUIMachinePlasmaForge; +import com.hbm.inventory.recipes.PlasmaForgeRecipe; import com.hbm.inventory.recipes.PlasmaForgeRecipes; -import com.hbm.inventory.recipes.loader.GenericRecipe; import com.hbm.items.ModItems; import com.hbm.lib.Library; import com.hbm.module.machine.ModuleMachinePlasma; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.uninos.GenNode; +import com.hbm.uninos.INetworkProvider; +import com.hbm.uninos.UniNodespace; +import com.hbm.uninos.networkproviders.PlasmaNetworkProvider; import com.hbm.util.BobMathUtil; +import com.hbm.util.fauxpointtwelve.BlockPos; import com.hbm.util.fauxpointtwelve.DirPos; import api.hbm.energymk2.IEnergyReceiverMK2; import api.hbm.fluidmk2.IFluidStandardReceiverMK2; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityFusionPlasmaForge extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidStandardReceiverMK2, IControlReceiver, IGUIProvider { +public class TileEntityFusionPlasmaForge extends TileEntityMachineBase implements IFusionPowerReceiver, IEnergyReceiverMK2, IFluidStandardReceiverMK2, IControlReceiver, IGUIProvider { public FluidTank inputTank; public long power; public long maxPower = 10_000_000; + public boolean didProcess; + + public float plasmaRed; + public float plasmaGreen; + public float plasmaBlue; + public long plasmaEnergy; + public long plasmaEnergySync; + protected GenNode receiverNode; + protected GenNode providerNode; + + public int timeOffset = -1; public ModuleMachinePlasma plasmaModule; @@ -45,6 +67,14 @@ public class TileEntityFusionPlasmaForge extends TileEntityMachineBase implement public String getName() { return "container.machinePlasmaForge"; } + + @Override public boolean receivesFusionPower() { return true; } + @Override public void receiveFusionPower(long fusionPower, double neutronPower, float r, float g, float b) { + this.plasmaEnergy = fusionPower; + this.plasmaRed = r; + this.plasmaGreen = g; + this.plasmaBlue = b; + } @Override public void updateEntity() { @@ -53,7 +83,17 @@ public class TileEntityFusionPlasmaForge extends TileEntityMachineBase implement if(!worldObj.isRemote) { - GenericRecipe recipe = PlasmaForgeRecipes.INSTANCE.recipeNameMap.get(plasmaModule.recipe); + this.plasmaEnergySync = this.plasmaEnergy; + this.plasmaEnergy = 0; + + ForgeDirection rot = ForgeDirection.getOrientation(this.getBlockMetadata() - 10).getRotation(ForgeDirection.UP); + if(receiverNode == null || receiverNode.expired) receiverNode = this.createNode(PlasmaNetworkProvider.THE_PROVIDER, rot); + if(providerNode == null || providerNode.expired) providerNode = this.createNode(PlasmaNetworkProvider.THE_PROVIDER, rot.getOpposite()); + + if(receiverNode != null && receiverNode.hasValidNet()) receiverNode.net.addReceiver(this); + if(providerNode != null && providerNode.hasValidNet()) providerNode.net.addProvider(this); // technically unused, but good to have when we do something else with the plasma nets + + PlasmaForgeRecipe recipe = (PlasmaForgeRecipe) PlasmaForgeRecipes.INSTANCE.recipeNameMap.get(plasmaModule.recipe); if(recipe != null) this.maxPower = recipe.power * 100; this.maxPower = BobMathUtil.max(this.power, this.maxPower, 100_000); @@ -63,15 +103,112 @@ public class TileEntityFusionPlasmaForge extends TileEntityMachineBase implement this.trySubscribe(worldObj, pos); if(inputTank.getTankType() != Fluids.NONE) this.trySubscribe(inputTank.getTankType(), worldObj, pos); } + + double speed = 1D; + double pow = 1D; + + boolean ignition = recipe != null ? recipe.ignitionTemp <= this.plasmaEnergySync : true; + + this.plasmaModule.update(speed, pow, ignition, slots[1]); + this.didProcess = this.plasmaModule.didProcess; + if(this.plasmaModule.markDirty) this.markDirty(); + + if(providerNode != null && providerNode.hasValidNet()) { + + for(Object o : providerNode.net.receiverEntries.entrySet()) { + Entry entry = (Entry) o; + + if(entry.getKey() instanceof IFusionPowerReceiver) { + long powerReceived = (long) Math.ceil(this.plasmaEnergySync * 0.75); + ((IFusionPowerReceiver) entry.getKey()).receiveFusionPower(powerReceived, 0, plasmaRed, plasmaGreen, plasmaBlue); + } + } + } + + this.networkPackNT(100); + } else { + + if(timeOffset == -1) this.timeOffset = worldObj.rand.nextInt(30_000); } } + + public GenNode createNode(INetworkProvider provider, ForgeDirection dir) { + GenNode node = UniNodespace.getNode(worldObj, xCoord + dir.offsetX * 5, yCoord + 2, zCoord + dir.offsetZ * 5, provider); + if(node != null) return node; + + node = new GenNode(provider, + new BlockPos(xCoord + dir.offsetX * 5, yCoord + 2, zCoord + dir.offsetZ * 5)) + .setConnections(new DirPos(xCoord + dir.offsetX * 6, yCoord + 2, zCoord + dir.offsetZ * 6, dir)); + + UniNodespace.createNode(worldObj, node); + + return node; + } public DirPos[] getConPos() { + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - 10); + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + return new DirPos[] { - + new DirPos(xCoord + dir.offsetX * 6 - rot.offsetX * 2, yCoord, zCoord + dir.offsetZ * 6 - rot.offsetZ * 2, dir), + new DirPos(xCoord + dir.offsetX * 6 - rot.offsetX * 1, yCoord, zCoord + dir.offsetZ * 6 - rot.offsetZ * 1, dir), + new DirPos(xCoord + dir.offsetX * 6 + rot.offsetX * 0, yCoord, zCoord + dir.offsetZ * 6 + rot.offsetZ * 0, dir), + new DirPos(xCoord + dir.offsetX * 6 + rot.offsetX * 1, yCoord, zCoord + dir.offsetZ * 6 + rot.offsetZ * 1, dir), + new DirPos(xCoord + dir.offsetX * 6 + rot.offsetX * 2, yCoord, zCoord + dir.offsetZ * 6 + rot.offsetZ * 2, dir), + new DirPos(xCoord - dir.offsetX * 6 - rot.offsetX * 2, yCoord, zCoord - dir.offsetZ * 6 - rot.offsetZ * 2, dir.getOpposite()), + new DirPos(xCoord - dir.offsetX * 6 - rot.offsetX * 1, yCoord, zCoord - dir.offsetZ * 6 - rot.offsetZ * 1, dir.getOpposite()), + new DirPos(xCoord - dir.offsetX * 6 + rot.offsetX * 0, yCoord, zCoord - dir.offsetZ * 6 + rot.offsetZ * 0, dir.getOpposite()), + new DirPos(xCoord - dir.offsetX * 6 + rot.offsetX * 1, yCoord, zCoord - dir.offsetZ * 6 + rot.offsetZ * 1, dir.getOpposite()), + new DirPos(xCoord - dir.offsetX * 6 + rot.offsetX * 2, yCoord, zCoord - dir.offsetZ * 6 + rot.offsetZ * 2, dir.getOpposite()), }; } + @Override + public void serialize(ByteBuf buf) { + super.serialize(buf); + this.inputTank.serialize(buf); + buf.writeFloat(plasmaRed); + buf.writeFloat(plasmaGreen); + buf.writeFloat(plasmaBlue); + buf.writeLong(plasmaEnergySync); + buf.writeLong(power); + buf.writeLong(maxPower); + buf.writeBoolean(didProcess); + this.plasmaModule.serialize(buf); + } + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + this.inputTank.deserialize(buf); + this.plasmaRed = buf.readFloat(); + this.plasmaGreen = buf.readFloat(); + this.plasmaBlue = buf.readFloat(); + this.plasmaEnergySync = buf.readLong(); + this.power = buf.readLong(); + this.maxPower = buf.readLong(); + this.didProcess = buf.readBoolean(); + this.plasmaModule.deserialize(buf); + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + this.inputTank.readFromNBT(nbt, "i"); + this.power = nbt.getLong("power"); + this.maxPower = nbt.getLong("maxPower"); + this.plasmaModule.readFromNBT(nbt); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + this.inputTank.writeToNBT(nbt, "i"); + nbt.setLong("power", power); + nbt.setLong("maxPower", maxPower); + this.plasmaModule.writeToNBT(nbt); + } + @Override public boolean isItemValidForSlot(int slot, ItemStack stack) { if(slot == 0) return true; // battery @@ -102,7 +239,14 @@ public class TileEntityFusionPlasmaForge extends TileEntityMachineBase implement @Override public void receiveControl(NBTTagCompound data) { - + if(data.hasKey("index") && data.hasKey("selection")) { + int index = data.getInteger("index"); + String selection = data.getString("selection"); + if(index == 0) { + this.plasmaModule.recipe = selection; + this.markChanged(); + } + } } AxisAlignedBB bb = null; @@ -119,13 +263,6 @@ public class TileEntityFusionPlasmaForge extends TileEntityMachineBase implement return 65536.0D; } - @Override - public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { - return null; - } - - @Override - public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { - return null; - } + @Override public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { return new ContainerMachinePlasmaForge(player.inventory, this); } + @Override @SideOnly(Side.CLIENT) public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIMachinePlasmaForge(player.inventory, this); } } diff --git a/src/main/java/com/hbm/tileentity/machine/fusion/TileEntityFusionTorus.java b/src/main/java/com/hbm/tileentity/machine/fusion/TileEntityFusionTorus.java index f1ce5c86f..bee54c9d2 100644 --- a/src/main/java/com/hbm/tileentity/machine/fusion/TileEntityFusionTorus.java +++ b/src/main/java/com/hbm/tileentity/machine/fusion/TileEntityFusionTorus.java @@ -169,6 +169,9 @@ public class TileEntityFusionTorus extends TileEntityCooledBase implements IGUIP boolean ignition = recipe != null ? recipe.ignitionTemp <= this.klystronEnergy : true; + float r = 0F; + float g = 0F; + float b = 0F; this.plasmaEnergy = 0; this.fuelConsumption = 0; this.fusionModule.preUpdate(factor, collectors * 0.5D); @@ -178,6 +181,9 @@ public class TileEntityFusionTorus extends TileEntityCooledBase implements IGUIP if(didProcess && recipe != null) { this.plasmaEnergy = (long) Math.ceil(recipe.outputTemp * factor); this.fuelConsumption = factor; + r = recipe.r; + g = recipe.g; + b = recipe.b; } double outputIntensity = this.getOuputIntensity(receiverCount); @@ -192,7 +198,7 @@ public class TileEntityFusionTorus extends TileEntityCooledBase implements IGUIP if(entry.getKey() instanceof IFusionPowerReceiver) { long powerReceived = (long) Math.ceil(this.plasmaEnergy * outputIntensity); - ((IFusionPowerReceiver) entry.getKey()).receiveFusionPower(powerReceived, outputFlux); + ((IFusionPowerReceiver) entry.getKey()).receiveFusionPower(powerReceived, outputFlux, r, g, b); } } } 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 3c4c2a232..37bae47ea 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java @@ -106,7 +106,7 @@ public class TileEntityRBMKRod extends TileEntityRBMKSlottedBase implements IRBM public void invalidate() { super.invalidate(); - if(slots[0] != null && slots[0].getItem() instanceof ItemRBMKRod && ItemRBMKRod.getHullHeat(slots[0]) >= 150) { + if(slots[0] != null && slots[0].getItem() instanceof ItemRBMKRod && ItemRBMKRod.getHullHeat(slots[0]) >= 150 && !RBMKDials.getMeltdownsDisabled(worldObj)) { this.meltdown(); } } diff --git a/src/main/java/com/hbm/util/ShadyUtil.java b/src/main/java/com/hbm/util/ShadyUtil.java index 7f6d3351f..b40c9a783 100644 --- a/src/main/java/com/hbm/util/ShadyUtil.java +++ b/src/main/java/com/hbm/util/ShadyUtil.java @@ -1,11 +1,7 @@ package com.hbm.util; import com.google.common.collect.Sets; -import com.hbm.config.GeneralConfig; -import com.hbm.main.MainRegistry; -import cpw.mods.fml.relauncher.ReflectionHelper; -import java.lang.reflect.Field; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.util.Base64; @@ -60,18 +56,6 @@ public class ShadyUtil { hashes.add("31da6223a100ed348ceb3254ceab67c9cc102cb2a04ac24de0df3ef3479b1036"); } - public static final int c = 0x3d; - public static String initializer = "Ur bp7mN-@UFZKXBx9N[/>M'k\\7\\9m3b"; - public static String signature = "dYPq\\YzrNpfn[ZDxdk7PS2jhTY72cZT7SoH|\\WL3dIznfC"; - public static String mask = "E#?V,%l!nb4 ik_wJ@(&k4o>Wq"; - public static String checksum = "dpXt\\Xnr\\Yzm"; - public static String testCase = "dYPq\\YzrNm3FUH;P[ZTq"; - public static String testValue = "WGm?"; - public static String smTest1 = "hgwS"; - public static String smTest2 = "8Sfw"; - public static String smTest3 = "j11D"; - public static String smTest4 = "s783"; - public static Set contributors = Sets.newHashSet(new String[] { "06ab7c03-55ce-43f8-9d3c-2850e3c652de", //mustang_rudolf "5bf069bc-5b46-4179-aafe-35c0a07dee8b", //JMF781 @@ -79,18 +63,10 @@ public class ShadyUtil { }); // simple cryptographic utils - public static String encode(String msg) { return Base64.getEncoder().encodeToString(msg.getBytes()); } - public static String decode(String msg) { return new String(Base64.getDecoder().decode(msg)); } + @Deprecated public static String encode(String msg) { return Base64.getEncoder().encodeToString(msg.getBytes()); } + @Deprecated public static String decode(String msg) { return new String(Base64.getDecoder().decode(msg)); } - public static String offset(String msg, int o) { - byte[] bytes = msg.getBytes(); - for(int i = 0; i < bytes.length; i++) { - bytes[i] += o; - } - return new String(bytes); - } - - /** Encryptor for the h-cat answer strings */ + /** complete fucking shit */ public static String smoosh(String s1, String s2, String s3, String s4) { Random rand = new Random(); @@ -132,23 +108,4 @@ public class ShadyUtil { } catch(NoSuchAlgorithmException e) { } return ""; } - - public static void test() { - if(!GeneralConfig.enableDebugMode) return; //only run in debug mode - - //unit test for smooshing - MainRegistry.logger.debug(smoosh(smTest1, smTest2, smTest3, smTest4)); - - try { - Class test = Class.forName(decode(offset(signature, -2))); - Field field = ReflectionHelper.findField(test, decode(offset(checksum, -2))); - if(field != null) { - System.out.println("TEST SECTION START"); - //Class toLoad = Class.forName(decode(offset(testCase, -2))); - //Field toRead = ReflectionHelper.findField(toLoad, decode(offset(testValue, -2))); - //ModEventHandler.reference = toRead; - System.out.println("TEST SECTION END"); - } - } catch(Throwable e) { } - } } diff --git a/src/main/resources/assets/hbm/models/fusion/plasma_forge.obj b/src/main/resources/assets/hbm/models/fusion/plasma_forge.obj index d8a5266ab..162c3f1b1 100644 --- a/src/main/resources/assets/hbm/models/fusion/plasma_forge.obj +++ b/src/main/resources/assets/hbm/models/fusion/plasma_forge.obj @@ -25,30 +25,30 @@ v -2.599089 2.234835 -4.001753 v -4.096874 2.500000 -2.654005 v -4.001754 2.765165 -2.599088 v -4.001754 2.234835 -2.599088 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 -vt 0.000000 0.000000 +vt 0.070718 0.766313 +vt 0.908645 0.554870 +vt 0.920484 0.766313 +vt 0.908645 0.977757 +vt 0.920484 0.766312 +vt 0.082557 0.554869 +vt 0.908646 0.554869 +vt 0.082557 0.977757 +vt 0.908646 0.977757 +vt 0.070718 0.766313 +vt 0.908646 0.554869 +vt 0.920484 0.766313 +vt 0.082557 0.977757 +vt 0.908645 0.977757 +vt 0.920484 0.766311 +vt 0.082557 0.554868 +vt 0.908646 0.554868 +vt 0.082557 0.977756 +vt 0.908645 0.977757 +vt 0.082557 0.554869 +vt 0.082557 0.977757 +vt 0.070718 0.766313 +vt 0.082557 0.554869 +vt 0.070718 0.766312 vn -0.7071 0.0000 0.7071 vn -0.6565 0.3715 0.6565 vn -0.6565 -0.3715 0.6565 @@ -4611,6 +4611,22 @@ v 4.500000 4.500000 0.750000 v 4.500000 4.500000 -0.750000 v 4.500000 4.000000 0.750000 v 4.500000 4.000000 -0.750000 +v -2.053766 2.164284 4.386663 +v -0.453951 2.164284 4.815332 +v -2.069242 2.308641 4.444420 +v -0.469427 2.308640 4.873089 +v 0.414718 2.164284 4.825844 +v 2.014533 2.164284 4.397176 +v 0.430194 2.308641 4.883601 +v 2.030009 2.308640 4.454933 +v 2.053766 2.164284 -4.386663 +v 0.453951 2.164284 -4.815332 +v 2.069242 2.308641 -4.444420 +v 0.469427 2.308640 -4.873089 +v -0.414718 2.164284 -4.825844 +v -2.014533 2.164284 -4.397176 +v -0.430194 2.308641 -4.883601 +v -2.030009 2.308640 -4.454933 vt 0.929204 0.461538 vt 0.911504 0.418803 vt 0.929204 0.410256 @@ -6723,6 +6739,18 @@ vt 0.345133 0.888889 vt 0.327434 0.888889 vt 0.362832 0.888889 vt 0.345133 0.786325 +vt 0.221239 0.910256 +vt 0.103982 0.931624 +vt 0.103982 0.910256 +vt 0.221239 0.910256 +vt 0.103982 0.931624 +vt 0.103982 0.910256 +vt 0.221239 0.888889 +vt 0.103982 0.910256 +vt 0.103982 0.888889 +vt 0.221239 0.888889 +vt 0.103982 0.910256 +vt 0.103982 0.888889 vt 0.911504 0.452991 vt 0.911504 0.367521 vt 0.911504 0.316239 @@ -7111,6 +7139,10 @@ vt 0.818584 0.521368 vt 0.278761 0.957265 vt 0.008850 0.888889 vt 0.362832 0.786325 +vt 0.221239 0.931624 +vt 0.221239 0.931624 +vt 0.221239 0.910256 +vt 0.221239 0.910256 vt 0.902655 0.521368 vt 0.902655 0.264957 vt 0.902655 0.111111 @@ -7447,6 +7479,10 @@ vn -0.5086 -0.6947 -0.5086 vn -0.5086 0.6947 -0.5086 vn 0.7071 -0.7071 0.0000 vn -0.7071 -0.7071 0.0000 +vn -0.2391 -0.3827 0.8924 +vn 0.2391 -0.3827 0.8924 +vn 0.2391 -0.3827 -0.8924 +vn -0.2391 -0.3827 -0.8924 vn 0.5086 -0.6948 0.5086 vn 0.5086 0.6948 0.5086 vn -0.5086 -0.6948 -0.5086 @@ -8572,42 +8608,46 @@ f 2313/3238/197 2311/3235/197 2309/3237/197 f 2315/3239/155 2314/3240/155 2313/3238/155 f 2318/3241/198 2310/3236/198 2312/3242/198 f 2320/3243/156 2317/3244/156 2318/3241/156 -f 684/1133/155 706/3245/155 705/1134/155 -f 705/1136/155 704/3246/155 685/1137/155 -f 704/1138/155 703/3247/155 686/1139/155 -f 703/1140/155 702/3248/155 687/1141/155 -f 702/1142/155 701/3249/155 688/1143/155 -f 701/1144/155 700/3250/155 689/1145/155 -f 700/1146/155 699/3251/155 690/1147/155 -f 699/1148/155 698/3252/155 691/1149/155 -f 691/1149/155 698/3253/155 697/1150/155 -f 692/1152/155 697/3254/155 696/1153/155 -f 693/1154/155 696/3255/155 695/1155/155 -f 695/1157/155 706/3256/155 684/1133/155 -f 677/1158/156 725/3257/156 724/1159/156 -f 676/1160/156 724/3258/156 723/1161/156 -f 675/1162/156 723/3259/156 722/1163/156 -f 674/1164/156 722/3260/156 721/1165/156 -f 673/1166/156 721/3261/156 720/1167/156 -f 672/1168/156 720/3262/156 719/1169/156 -f 671/1170/156 719/3263/156 730/1171/156 +f 2322/3245/199 2323/3246/199 2321/3247/199 +f 2326/3248/200 2327/3249/200 2325/3250/200 +f 2330/3251/201 2331/3252/201 2329/3253/201 +f 2334/3254/202 2335/3255/202 2333/3256/202 +f 684/1133/155 706/3257/155 705/1134/155 +f 705/1136/155 704/3258/155 685/1137/155 +f 704/1138/155 703/3259/155 686/1139/155 +f 703/1140/155 702/3260/155 687/1141/155 +f 702/1142/155 701/3261/155 688/1143/155 +f 701/1144/155 700/3262/155 689/1145/155 +f 700/1146/155 699/3263/155 690/1147/155 +f 699/1148/155 698/3264/155 691/1149/155 +f 691/1149/155 698/3265/155 697/1150/155 +f 692/1152/155 697/3266/155 696/1153/155 +f 693/1154/155 696/3267/155 695/1155/155 +f 695/1157/155 706/3268/155 684/1133/155 +f 677/1158/156 725/3269/156 724/1159/156 +f 676/1160/156 724/3270/156 723/1161/156 +f 675/1162/156 723/3271/156 722/1163/156 +f 674/1164/156 722/3272/156 721/1165/156 +f 673/1166/156 721/3273/156 720/1167/156 +f 672/1168/156 720/3274/156 719/1169/156 +f 671/1170/156 719/3275/156 730/1171/156 f 681/1173/156 682/1172/156 730/1174/156 f 680/1176/156 681/1173/156 729/1177/156 -f 679/1179/156 680/3264/156 728/1180/156 -f 679/1179/156 727/3265/156 726/1182/156 -f 678/1183/156 726/3266/156 725/1184/156 -f 748/1185/156 749/3267/156 761/1186/156 -f 748/1188/156 760/3268/156 759/1189/156 -f 747/1191/156 759/3269/156 758/1192/156 -f 745/1194/156 746/3270/156 758/1195/156 -f 745/1197/156 757/3271/156 755/1198/156 -f 744/1200/156 743/3272/156 755/1201/156 -f 744/1203/156 756/3273/156 766/1204/156 -f 754/1206/156 766/3274/156 765/1207/156 -f 753/1209/156 765/3275/156 764/1210/156 -f 751/1212/156 752/3276/156 764/1213/156 -f 751/1215/156 763/3277/156 762/1216/156 -f 750/1218/156 762/3278/156 761/1219/156 +f 679/1179/156 680/3276/156 728/1180/156 +f 679/1179/156 727/3277/156 726/1182/156 +f 678/1183/156 726/3278/156 725/1184/156 +f 748/1185/156 749/3279/156 761/1186/156 +f 748/1188/156 760/3280/156 759/1189/156 +f 747/1191/156 759/3281/156 758/1192/156 +f 745/1194/156 746/3282/156 758/1195/156 +f 745/1197/156 757/3283/156 755/1198/156 +f 744/1200/156 743/3284/156 755/1201/156 +f 744/1203/156 756/3285/156 766/1204/156 +f 754/1206/156 766/3286/156 765/1207/156 +f 753/1209/156 765/3287/156 764/1210/156 +f 751/1212/156 752/3288/156 764/1213/156 +f 751/1215/156 763/3289/156 762/1216/156 +f 750/1218/156 762/3290/156 761/1219/156 f 768/1257/157 769/1261/157 771/1258/157 f 775/1260/158 771/1258/158 769/1261/158 f 770/1259/155 771/1258/155 775/1263/155 @@ -8618,81 +8658,81 @@ f 783/1272/158 779/1270/158 777/1273/158 f 778/1271/155 779/1270/155 783/1275/155 f 780/1277/159 776/1269/159 778/1271/159 f 781/1279/156 777/1273/156 776/1269/156 -f 801/1317/155 789/3279/155 790/1318/155 -f 800/1320/155 788/3280/155 789/1321/155 -f 800/1323/155 799/3281/155 787/1324/155 -f 798/1326/155 786/3282/155 787/1327/155 -f 797/1329/155 785/3283/155 786/1330/155 -f 807/1332/155 795/3284/155 785/1333/155 -f 807/1335/155 808/3285/155 796/1336/155 -f 806/1338/155 794/3286/155 796/1339/155 -f 806/1341/155 805/3287/155 793/1342/155 -f 804/1344/155 792/3288/155 793/1345/155 -f 803/1347/155 791/3289/155 792/1348/155 -f 803/1350/155 802/3290/155 790/1351/155 -f 873/1353/155 825/3291/155 826/1354/155 -f 872/1356/155 824/3292/155 825/1357/155 -f 872/1356/155 871/3293/155 823/1358/155 +f 801/1317/155 789/3291/155 790/1318/155 +f 800/1320/155 788/3292/155 789/1321/155 +f 800/1323/155 799/3293/155 787/1324/155 +f 798/1326/155 786/3294/155 787/1327/155 +f 797/1329/155 785/3295/155 786/1330/155 +f 807/1332/155 795/3296/155 785/1333/155 +f 807/1335/155 808/3297/155 796/1336/155 +f 806/1338/155 794/3298/155 796/1339/155 +f 806/1341/155 805/3299/155 793/1342/155 +f 804/1344/155 792/3300/155 793/1345/155 +f 803/1347/155 791/3301/155 792/1348/155 +f 803/1350/155 802/3302/155 790/1351/155 +f 873/1353/155 825/3303/155 826/1354/155 +f 872/1356/155 824/3304/155 825/1357/155 +f 872/1356/155 871/3305/155 823/1358/155 f 871/1360/155 870/1363/155 822/1361/155 f 870/1363/155 869/1368/155 821/1364/155 -f 880/1366/155 832/3294/155 821/1367/155 -f 879/1369/155 831/3295/155 832/1370/155 -f 878/1371/155 830/3296/155 831/1372/155 -f 877/1373/155 829/3297/155 830/1374/155 -f 876/1375/155 828/3298/155 829/1376/155 -f 875/1377/155 827/3299/155 828/1378/155 -f 874/1355/155 826/3300/155 827/1379/155 -f 856/1380/156 845/3301/156 867/1381/156 -f 858/1383/156 855/3302/156 856/1384/156 -f 859/1385/156 854/3303/156 855/1386/156 -f 860/1387/156 853/3304/156 854/1388/156 -f 852/1390/156 853/3305/156 860/1387/156 -f 851/1392/156 852/3306/156 861/1391/156 -f 850/1394/156 851/3307/156 862/1393/156 -f 849/1396/156 850/3308/156 863/1395/156 -f 848/1398/156 849/3309/156 864/1397/156 -f 847/1400/156 848/3310/156 865/1399/156 -f 846/1402/156 847/3311/156 866/1401/156 -f 867/1381/156 845/3312/156 846/1404/156 +f 880/1366/155 832/3306/155 821/1367/155 +f 879/1369/155 831/3307/155 832/1370/155 +f 878/1371/155 830/3308/155 831/1372/155 +f 877/1373/155 829/3309/155 830/1374/155 +f 876/1375/155 828/3310/155 829/1376/155 +f 875/1377/155 827/3311/155 828/1378/155 +f 874/1355/155 826/3312/155 827/1379/155 +f 856/1380/156 845/3313/156 867/1381/156 +f 858/1383/156 855/3314/156 856/1384/156 +f 859/1385/156 854/3315/156 855/1386/156 +f 860/1387/156 853/3316/156 854/1388/156 +f 852/1390/156 853/3317/156 860/1387/156 +f 851/1392/156 852/3318/156 861/1391/156 +f 850/1394/156 851/3319/156 862/1393/156 +f 849/1396/156 850/3320/156 863/1395/156 +f 848/1398/156 849/3321/156 864/1397/156 +f 847/1400/156 848/3322/156 865/1399/156 +f 846/1402/156 847/3323/156 866/1401/156 +f 867/1381/156 845/3324/156 846/1404/156 f 888/1405/159 885/1420/159 883/1406/159 -f 882/1408/160 889/3313/160 894/1409/160 -f 896/1411/161 892/3314/161 881/1412/161 +f 882/1408/160 889/3325/160 894/1409/160 +f 896/1411/161 892/3326/161 881/1412/161 f 890/1414/155 895/1424/155 894/1415/155 -f 896/1417/156 893/3315/156 891/1418/156 +f 896/1417/156 893/3327/156 891/1418/156 f 882/1408/158 887/1410/158 886/1413/158 -f 885/1420/162 895/3316/162 890/1421/162 +f 885/1420/162 895/3328/162 890/1421/162 f 888/1405/163 884/1407/163 891/1422/163 f 895/1424/157 885/1420/157 888/1405/157 -f 888/1405/157 893/3315/157 896/1417/157 +f 888/1405/157 893/3327/157 896/1417/157 f 896/1417/157 886/1413/157 887/1410/157 f 887/1410/157 894/1415/157 895/1424/157 f 895/1424/157 888/1405/157 896/1417/157 -f 889/1427/164 882/3317/164 881/3318/164 -f 881/3318/164 892/3319/164 891/1425/164 -f 891/1425/164 884/3320/164 883/1426/164 -f 883/1426/164 890/3321/164 889/1427/164 -f 889/1427/164 881/3318/164 891/1425/164 +f 889/1427/164 882/3329/164 881/3330/164 +f 881/3330/164 892/3331/164 891/1425/164 +f 891/1425/164 884/3332/164 883/1426/164 +f 883/1426/164 890/3333/164 889/1427/164 +f 889/1427/164 881/3330/164 891/1425/164 f 899/1428/159 903/1437/159 904/1429/159 f 900/1431/155 904/1429/155 902/1432/155 f 902/1432/158 901/1439/158 897/1434/158 f 897/1436/156 901/1439/156 903/1437/156 f 904/1429/157 903/1437/157 901/1439/157 -f 916/1440/155 924/3322/155 923/1441/155 -f 914/1443/155 925/3323/155 924/1444/155 -f 918/1442/155 923/3324/155 922/1445/155 -f 920/1446/155 922/3325/155 921/1447/155 -f 906/1449/155 921/3326/155 928/1450/155 -f 908/1451/155 928/3327/155 927/1452/155 -f 910/1453/155 927/3328/155 926/1454/155 -f 912/1455/155 926/3329/155 925/1456/155 -f 932/1457/156 933/3330/156 913/1458/156 -f 931/1460/156 932/3331/156 915/1459/156 -f 930/1462/156 931/3332/156 917/1461/156 -f 929/1464/156 930/3333/156 919/1463/156 -f 936/1466/156 929/3334/156 905/1467/156 -f 935/1469/156 936/3335/156 907/1468/156 -f 934/1471/156 935/3336/156 909/1470/156 -f 933/1473/156 934/3337/156 911/1472/156 +f 916/1440/155 924/3334/155 923/1441/155 +f 914/1443/155 925/3335/155 924/1444/155 +f 918/1442/155 923/3336/155 922/1445/155 +f 920/1446/155 922/3337/155 921/1447/155 +f 906/1449/155 921/3338/155 928/1450/155 +f 908/1451/155 928/3339/155 927/1452/155 +f 910/1453/155 927/3340/155 926/1454/155 +f 912/1455/155 926/3341/155 925/1456/155 +f 932/1457/156 933/3342/156 913/1458/156 +f 931/1460/156 932/3343/156 915/1459/156 +f 930/1462/156 931/3344/156 917/1461/156 +f 929/1464/156 930/3345/156 919/1463/156 +f 936/1466/156 929/3346/156 905/1467/156 +f 935/1469/156 936/3347/156 907/1468/156 +f 934/1471/156 935/3348/156 909/1470/156 +f 933/1473/156 934/3349/156 911/1472/156 f 939/1474/159 943/1483/159 944/1475/159 f 940/1477/155 944/1475/155 942/1478/155 f 942/1478/158 941/1485/158 937/1480/158 @@ -8700,104 +8740,104 @@ f 937/1482/156 941/1485/156 943/1483/156 f 944/1475/157 943/1483/157 941/1485/157 f 950/1486/165 946/1495/165 947/1487/165 f 951/1489/166 948/1496/166 945/1490/166 -f 953/1494/155 952/3338/155 950/1492/155 -f 952/3338/155 945/1490/155 950/1492/155 +f 953/1494/155 952/3350/155 950/1492/155 +f 952/3350/155 945/1490/155 950/1492/155 f 945/1490/155 946/1495/155 950/1492/155 f 946/1495/157 945/1490/157 948/1496/157 f 1072/1497/165 1068/1619/165 1069/1498/165 -f 1075/1502/155 1074/3339/155 1072/1500/155 -f 1074/3339/155 1067/1508/155 1072/1500/155 +f 1075/1502/155 1074/3351/155 1072/1500/155 +f 1074/3351/155 1067/1508/155 1072/1500/155 f 1067/1508/155 1068/1619/155 1072/1500/155 f 954/1503/159 951/1489/159 952/1491/159 f 955/1505/158 950/1486/158 949/1488/158 f 1073/1507/166 1070/1620/166 1067/1508/166 -f 984/1510/167 985/3340/167 977/1511/167 -f 983/1513/167 984/3341/167 978/1512/167 -f 982/1515/167 983/3342/167 979/1514/167 -f 973/1517/167 981/3343/167 982/1518/167 -f 988/1519/167 981/3344/167 973/1520/167 -f 987/1522/167 988/3345/167 974/1521/167 -f 986/1524/167 987/3346/167 975/1523/167 -f 977/1511/167 985/3347/167 986/1526/167 -f 1000/1527/168 1008/3348/168 1007/1528/168 -f 1000/1527/168 998/3349/168 1009/1530/168 +f 984/1510/167 985/3352/167 977/1511/167 +f 983/1513/167 984/3353/167 978/1512/167 +f 982/1515/167 983/3354/167 979/1514/167 +f 973/1517/167 981/3355/167 982/1518/167 +f 988/1519/167 981/3356/167 973/1520/167 +f 987/1522/167 988/3357/167 974/1521/167 +f 986/1524/167 987/3358/167 975/1523/167 +f 977/1511/167 985/3359/167 986/1526/167 +f 1000/1527/168 1008/3360/168 1007/1528/168 +f 1000/1527/168 998/3361/168 1009/1530/168 f 1004/1532/168 1002/1529/168 1007/1533/168 f 990/1535/168 1004/1532/168 1006/1536/168 -f 990/1535/168 1005/3350/168 1012/1538/168 -f 992/1539/168 1012/3351/168 1011/1540/168 -f 994/1541/168 1011/3352/168 1010/1542/168 -f 996/1543/168 1010/3353/168 1009/1544/168 -f 1015/1546/169 1016/3354/169 997/1547/169 -f 1014/1549/169 1015/3355/169 999/1548/169 -f 1003/1551/169 1013/3356/169 1014/1552/169 -f 1019/1555/169 1749/3357/169 1748/3358/169 -f 1748/3358/169 989/1553/169 1019/1555/169 -f 1751/3359/170 1750/3360/170 1052/1558/170 -f 1750/3360/170 1037/1556/170 1052/1558/170 -f 993/1559/169 1018/3361/169 1019/1560/169 -f 1017/1561/169 1018/3362/169 993/1559/169 -f 997/1563/169 1016/3363/169 1017/1564/169 -f 1025/1565/171 1031/3364/171 1030/1566/171 +f 990/1535/168 1005/3362/168 1012/1538/168 +f 992/1539/168 1012/3363/168 1011/1540/168 +f 994/1541/168 1011/3364/168 1010/1542/168 +f 996/1543/168 1010/3365/168 1009/1544/168 +f 1015/1546/169 1016/3366/169 997/1547/169 +f 1014/1549/169 1015/3367/169 999/1548/169 +f 1003/1551/169 1013/3368/169 1014/1552/169 +f 1019/1555/169 1749/3369/169 1748/3370/169 +f 1748/3370/169 989/1553/169 1019/1555/169 +f 1751/3371/170 1750/3372/170 1052/1558/170 +f 1750/3372/170 1037/1556/170 1052/1558/170 +f 993/1559/169 1018/3373/169 1019/1560/169 +f 1017/1561/169 1018/3374/169 993/1559/169 +f 997/1563/169 1016/3375/169 1017/1564/169 +f 1025/1565/171 1031/3376/171 1030/1566/171 f 1025/1565/171 1024/1583/171 1032/1568/171 f 1027/1570/171 1026/1567/171 1030/1571/171 -f 1027/1570/171 1029/3365/171 1028/1573/171 -f 1020/1575/171 1028/3366/171 1035/1576/171 -f 1021/1577/171 1035/3367/171 1034/1578/171 -f 1022/1579/171 1034/3368/171 1033/1580/171 -f 1023/1581/171 1033/3369/171 1032/1582/171 -f 1047/1584/170 1054/3370/170 1053/1585/170 -f 1047/1584/170 1045/3371/170 1055/1587/170 -f 1049/1586/170 1053/3372/170 1052/1589/170 -f 1039/3373/170 1037/1556/170 1058/1592/170 +f 1027/1570/171 1029/3377/171 1028/1573/171 +f 1020/1575/171 1028/3378/171 1035/1576/171 +f 1021/1577/171 1035/3379/171 1034/1578/171 +f 1022/1579/171 1034/3380/171 1033/1580/171 +f 1023/1581/171 1033/3381/171 1032/1582/171 +f 1047/1584/170 1054/3382/170 1053/1585/170 +f 1047/1584/170 1045/3383/170 1055/1587/170 +f 1049/1586/170 1053/3384/170 1052/1589/170 +f 1039/3385/170 1037/1556/170 1058/1592/170 f 1037/1556/170 1750/1590/170 1058/1592/170 -f 1041/1593/170 1039/3373/170 1058/1594/170 +f 1041/1593/170 1039/3385/170 1058/1594/170 f 1043/1596/170 1041/1593/170 1057/1597/170 -f 1043/1596/170 1056/3374/170 1055/1599/170 -f 1062/1601/172 1063/3375/172 1044/1602/172 -f 1061/1604/172 1062/3376/172 1046/1603/172 -f 1060/1606/172 1061/3377/172 1048/1605/172 -f 1036/1608/172 1059/3378/172 1060/1609/172 -f 1066/1610/172 1059/3379/172 1036/1608/172 -f 1040/1612/172 1065/3380/172 1066/1613/172 -f 1042/1614/172 1064/3381/172 1065/1615/172 -f 1063/1616/172 1064/3382/172 1042/1614/172 -f 951/1618/156 954/3383/156 956/3384/156 -f 956/3384/156 949/3385/156 951/1618/156 -f 949/3385/156 947/1487/156 951/1618/156 +f 1043/1596/170 1056/3386/170 1055/1599/170 +f 1062/1601/172 1063/3387/172 1044/1602/172 +f 1061/1604/172 1062/3388/172 1046/1603/172 +f 1060/1606/172 1061/3389/172 1048/1605/172 +f 1036/1608/172 1059/3390/172 1060/1609/172 +f 1066/1610/172 1059/3391/172 1036/1608/172 +f 1040/1612/172 1065/3392/172 1066/1613/172 +f 1042/1614/172 1064/3393/172 1065/1615/172 +f 1063/1616/172 1064/3394/172 1042/1614/172 +f 951/1618/156 954/3395/156 956/3396/156 +f 956/3396/156 949/3397/156 951/1618/156 +f 949/3397/156 947/1487/156 951/1618/156 f 1068/1619/157 1067/1508/157 1070/1620/157 f 1076/1621/159 1073/1507/159 1074/1509/159 f 1077/1623/158 1072/1497/158 1071/1499/158 -f 1073/1625/156 1076/3386/156 1078/3387/156 -f 1078/3387/156 1071/3388/156 1073/1625/156 -f 1071/3388/156 1069/1498/156 1073/1625/156 +f 1073/1625/156 1076/3398/156 1078/3399/156 +f 1078/3399/156 1071/3400/156 1073/1625/156 +f 1071/3400/156 1069/1498/156 1073/1625/156 f 1080/1626/158 1082/1629/158 1081/1627/158 f 1082/1629/157 1090/1643/157 1087/1630/157 f 1080/1626/155 1089/1641/155 1090/1631/155 f 1081/1627/156 1087/1638/156 1088/1632/156 -f 1086/1633/157 1094/3389/157 1091/1634/157 -f 1088/1636/164 1089/3390/164 1080/1626/164 +f 1086/1633/157 1094/3401/157 1091/1634/157 +f 1088/1636/164 1089/3402/164 1080/1626/164 f 1083/1637/159 1088/1632/159 1087/1638/159 f 1086/1640/159 1090/1631/159 1089/1641/159 f 1085/1635/159 1087/1630/159 1090/1643/159 -f 1084/1644/159 1089/3390/159 1088/1636/159 -f 1085/1639/156 1091/3391/156 1092/1646/156 -f 1083/1645/164 1092/3392/164 1093/1647/164 -f 1084/1642/155 1093/3393/155 1094/1648/155 +f 1084/1644/159 1089/3402/159 1088/1636/159 +f 1085/1639/156 1091/3403/156 1092/1646/156 +f 1083/1645/164 1092/3404/164 1093/1647/164 +f 1084/1642/155 1093/3405/155 1094/1648/155 f 1096/1649/159 1098/1652/159 1097/1650/159 f 1098/1652/157 1106/1666/157 1103/1653/157 f 1096/1649/156 1105/1664/156 1106/1654/156 f 1097/1650/155 1103/1661/155 1104/1655/155 f 1101/1656/157 1102/1667/157 1110/1657/157 -f 1104/1659/164 1105/3394/164 1096/1649/164 +f 1104/1659/164 1105/3406/164 1096/1649/164 f 1099/1660/158 1104/1655/158 1103/1661/158 f 1102/1663/158 1106/1654/158 1105/1664/158 f 1101/1656/158 1103/1653/158 1106/1666/158 -f 1100/1668/158 1105/3394/158 1104/1659/158 -f 1101/1662/155 1107/3395/155 1108/1670/155 -f 1099/1669/164 1108/3396/164 1109/1671/164 -f 1100/1665/156 1109/3397/156 1110/1672/156 -f 1956/1673/173 1960/3398/173 1959/1674/173 -f 1115/1676/174 1119/3399/174 1122/1677/174 +f 1100/1668/158 1105/3406/158 1104/1659/158 +f 1101/1662/155 1107/3407/155 1108/1670/155 +f 1099/1669/164 1108/3408/164 1109/1671/164 +f 1100/1665/156 1109/3409/156 1110/1672/156 +f 1956/1673/173 1960/3410/173 1959/1674/173 +f 1115/1676/174 1119/3411/174 1122/1677/174 f 1113/1679/159 1115/1676/159 1118/1678/159 f 1112/1681/158 1117/1684/158 1116/1682/158 f 1114/1680/155 1118/1678/155 1117/1684/155 @@ -8810,21 +8850,21 @@ f 1123/1693/156 1128/1692/156 1127/1691/156 f 1125/1695/159 1127/1691/159 1130/1696/159 f 1124/1698/158 1129/1690/158 1128/1692/158 f 1126/1700/155 1130/1696/155 1129/1690/155 -f 1138/1702/165 1142/3400/165 1136/1703/165 -f 1136/1703/157 1142/3400/157 1141/1705/157 +f 1138/1702/165 1142/3412/165 1136/1703/165 +f 1136/1703/157 1142/3412/157 1141/1705/157 f 1137/1707/158 1138/1702/158 1132/1704/158 f 1135/1706/166 1141/1705/166 1140/1709/166 -f 1140/1709/159 1139/3401/159 1133/1711/159 +f 1140/1709/159 1139/3413/159 1133/1711/159 f 1149/1712/157 1150/1718/157 1147/1713/157 f 1143/1715/156 1148/1714/156 1147/1713/156 f 1145/1717/159 1147/1713/159 1150/1718/159 f 1144/1720/158 1149/1712/158 1148/1714/158 f 1146/1722/155 1150/1718/155 1149/1712/155 -f 1153/1724/159 1154/3402/159 1160/1725/159 +f 1153/1724/159 1154/3414/159 1160/1725/159 f 1158/1727/166 1152/1732/166 1153/1724/166 f 1156/1728/158 1155/1733/158 1161/1729/158 -f 1157/1731/157 1151/3403/157 1152/1732/157 -f 1155/1733/165 1151/3403/165 1157/1731/165 +f 1157/1731/157 1151/3415/157 1152/1732/157 +f 1155/1733/165 1151/3415/165 1157/1731/165 f 1169/1734/157 1170/1740/157 1167/1735/157 f 1163/1737/158 1168/1736/158 1167/1735/158 f 1165/1739/175 1167/1735/175 1170/1740/175 @@ -8832,15 +8872,15 @@ f 1164/1742/155 1169/1734/155 1168/1736/155 f 1177/1744/157 1178/1748/157 1175/1745/157 f 1173/1747/175 1175/1745/175 1178/1748/175 f 1172/1750/155 1177/1744/155 1176/1746/155 -f 1172/1752/159 1174/3404/159 1178/1748/159 +f 1172/1752/159 1174/3416/159 1178/1748/159 f 1185/1753/155 1186/1761/155 1180/1754/155 f 1189/1756/176 1188/1759/176 1182/1757/176 -f 1188/1759/175 1187/3405/175 1181/1760/175 -f 1186/1761/173 1190/3406/173 1184/1762/173 -f 1184/1762/157 1190/3406/157 1189/1756/157 +f 1188/1759/175 1187/3417/175 1181/1760/175 +f 1186/1761/173 1190/3418/173 1184/1762/173 +f 1184/1762/157 1190/3418/157 1189/1756/157 f 1191/1763/157 1192/1771/157 1198/1764/157 f 1195/1766/173 1191/1763/173 1197/1765/173 -f 1193/1768/175 1194/3407/175 1200/1769/175 +f 1193/1768/175 1194/3419/175 1200/1769/175 f 1192/1771/176 1193/1768/176 1199/1770/176 f 1196/1772/155 1195/1766/155 1201/1767/155 f 1209/1774/157 1210/1780/157 1207/1775/157 @@ -8853,16 +8893,16 @@ f 1211/1789/155 1216/1788/155 1215/1787/155 f 1213/1791/158 1215/1787/158 1218/1792/158 f 1212/1794/159 1217/1786/159 1216/1788/159 f 1214/1796/156 1218/1792/156 1217/1786/156 -f 1226/1798/166 1230/3408/166 1224/1799/166 -f 1224/1799/157 1230/3408/157 1229/1801/157 +f 1226/1798/166 1230/3420/166 1224/1799/166 +f 1224/1799/157 1230/3420/157 1229/1801/157 f 1225/1803/159 1226/1798/159 1220/1800/159 f 1223/1802/165 1229/1801/165 1228/1805/165 -f 1228/1805/158 1227/3409/158 1221/1807/158 -f 1233/1808/158 1234/3410/158 1240/1809/158 +f 1228/1805/158 1227/3421/158 1221/1807/158 +f 1233/1808/158 1234/3422/158 1240/1809/158 f 1238/1811/165 1232/1816/165 1233/1808/165 f 1236/1812/159 1235/1817/159 1241/1813/159 -f 1237/1815/157 1231/3411/157 1232/1816/157 -f 1235/1817/166 1231/3411/166 1237/1815/166 +f 1237/1815/157 1231/3423/157 1232/1816/157 +f 1235/1817/166 1231/3423/166 1237/1815/166 f 1249/1818/157 1250/1824/157 1247/1819/157 f 1243/1821/159 1248/1820/159 1247/1819/159 f 1245/1823/177 1247/1819/177 1250/1824/177 @@ -8871,21 +8911,21 @@ f 1256/1828/157 1257/1839/157 1258/1829/157 f 1265/1831/156 1266/1845/156 1260/1832/156 f 1253/1834/177 1255/1830/177 1258/1829/177 f 1252/1836/156 1257/1839/156 1256/1828/156 -f 1252/1838/158 1254/3412/158 1258/1829/158 +f 1252/1838/158 1254/3424/158 1258/1829/158 f 1269/1840/173 1268/1843/173 1262/1841/173 -f 1268/1843/177 1267/3413/177 1261/1844/177 +f 1268/1843/177 1267/3425/177 1261/1844/177 f 1266/1845/176 1270/1847/176 1264/1846/176 f 1270/1847/157 1269/1840/157 1263/1842/157 f 1271/1848/157 1272/1856/157 1278/1849/157 f 1275/1851/176 1271/1848/176 1277/1850/176 -f 1273/1853/177 1274/3414/177 1280/1854/177 +f 1273/1853/177 1274/3426/177 1280/1854/177 f 1272/1856/173 1273/1853/173 1279/1855/173 f 1276/1857/156 1275/1851/156 1281/1852/156 f 1295/1859/157 1327/1863/157 1326/1860/157 f 1296/1862/157 1328/1865/157 1327/1863/157 f 1297/1864/157 1329/1867/157 1328/1865/157 f 1298/1866/157 1330/1869/157 1329/1867/157 -f 1299/1868/157 1331/3415/157 1330/1869/157 +f 1299/1868/157 1331/3427/157 1330/1869/157 f 1300/1870/157 1332/1874/157 1331/1871/157 f 1301/1873/157 1333/1876/157 1332/1874/157 f 1301/1873/157 1302/1877/157 1334/1875/157 @@ -8893,7 +8933,7 @@ f 1302/1877/157 1303/1879/157 1335/1878/157 f 1303/1879/157 1304/1881/157 1336/1880/157 f 1304/1881/157 1305/1883/157 1337/1882/157 f 1305/1883/157 1306/1886/157 1338/1884/157 -f 1307/1885/157 1339/3416/157 1338/1884/157 +f 1307/1885/157 1339/3428/157 1338/1884/157 f 1307/1887/157 1308/1890/157 1340/1888/157 f 1308/1890/157 1309/1893/157 1341/1891/157 f 1310/1892/157 1342/1895/157 1341/1891/157 @@ -8901,7 +8941,7 @@ f 1310/1892/157 1311/1896/157 1343/1894/157 f 1311/1896/157 1312/1899/157 1344/1897/157 f 1313/1898/157 1345/1901/157 1344/1897/157 f 1314/1900/157 1346/1903/157 1345/1901/157 -f 1283/1902/157 1315/3417/157 1346/1903/157 +f 1283/1902/157 1315/3429/157 1346/1903/157 f 1284/1904/157 1316/1908/157 1315/1905/157 f 1285/1907/157 1317/1910/157 1316/1908/157 f 1286/1909/157 1318/1912/157 1317/1910/157 @@ -8909,7 +8949,7 @@ f 1287/1911/157 1319/1914/157 1318/1912/157 f 1288/1913/157 1320/1916/157 1319/1914/157 f 1289/1915/157 1321/1918/157 1320/1916/157 f 1290/1917/157 1322/1920/157 1321/1918/157 -f 1291/1919/157 1323/3418/157 1322/1920/157 +f 1291/1919/157 1323/3430/157 1322/1920/157 f 1291/1921/157 1292/1925/157 1324/1922/157 f 1293/1924/157 1325/1926/157 1324/1922/157 f 1294/1861/157 1326/1860/157 1325/1926/157 @@ -8917,23 +8957,23 @@ f 1390/1927/164 1391/1930/164 1359/1928/164 f 1391/1930/164 1392/1932/164 1360/1931/164 f 1392/1932/164 1393/1934/164 1361/1933/164 f 1393/1934/164 1394/1936/164 1362/1935/164 -f 1394/1936/164 1395/3419/164 1363/1937/164 +f 1394/1936/164 1395/3431/164 1363/1937/164 f 1395/1938/164 1396/1941/164 1364/1939/164 -f 1396/1941/164 1397/3420/164 1365/1942/164 -f 1365/1942/164 1397/3420/164 1398/1943/164 +f 1396/1941/164 1397/3432/164 1365/1942/164 +f 1365/1942/164 1397/3432/164 1398/1943/164 f 1366/1944/164 1398/1943/164 1399/1945/164 f 1367/1946/164 1399/1945/164 1400/1947/164 f 1368/1948/164 1400/1947/164 1401/1949/164 f 1369/1950/164 1401/1949/164 1402/1951/164 -f 1402/1951/164 1403/3421/164 1371/1953/164 -f 1371/1954/164 1403/3422/164 1404/1955/164 +f 1402/1951/164 1403/3433/164 1371/1953/164 +f 1371/1954/164 1403/3434/164 1404/1955/164 f 1372/1956/164 1404/1955/164 1405/1957/164 f 1373/1958/164 1405/1957/164 1406/1959/164 f 1374/1960/164 1406/1959/164 1407/1961/164 f 1375/1962/164 1407/1961/164 1408/1963/164 f 1408/1963/164 1409/1966/164 1377/1965/164 f 1409/1966/164 1410/1968/164 1378/1967/164 -f 1410/1968/164 1380/3423/164 1348/1969/164 +f 1410/1968/164 1380/3435/164 1348/1969/164 f 1380/1970/164 1379/1973/164 1347/1971/164 f 1379/1973/164 1381/1975/164 1349/1974/164 f 1381/1975/164 1382/1977/164 1350/1976/164 @@ -8941,57 +8981,57 @@ f 1382/1977/164 1383/1979/164 1351/1978/164 f 1383/1979/164 1384/1981/164 1352/1980/164 f 1384/1981/164 1385/1983/164 1353/1982/164 f 1385/1983/164 1386/1985/164 1354/1984/164 -f 1386/1985/164 1387/3424/164 1355/1986/164 -f 1355/1987/164 1387/3425/164 1388/1988/164 +f 1386/1985/164 1387/3436/164 1355/1986/164 +f 1355/1987/164 1387/3437/164 1388/1988/164 f 1388/1988/164 1389/1991/164 1357/1990/164 f 1389/1991/164 1390/1927/164 1358/1929/164 f 1417/1992/157 1418/1998/157 1414/1993/157 -f 1416/1995/164 1415/3426/164 1411/1996/164 +f 1416/1995/164 1415/3438/164 1411/1996/164 f 1418/1998/155 1416/1995/155 1412/1997/155 f 1415/1999/156 1417/1992/156 1413/1994/156 f 1425/2001/157 1426/2007/157 1422/2002/157 -f 1424/2004/164 1423/3427/164 1419/2005/164 +f 1424/2004/164 1423/3439/164 1419/2005/164 f 1426/2007/156 1424/2004/156 1420/2006/156 f 1423/2008/155 1425/2001/155 1421/2003/155 -f 1429/2010/157 1433/3428/157 1434/2011/157 -f 1432/2013/164 1431/3429/164 1427/2014/164 +f 1429/2010/157 1433/3440/157 1434/2011/157 +f 1432/2013/164 1431/3441/164 1427/2014/164 f 1434/2011/178 1432/2013/178 1428/2015/178 -f 1431/2016/167 1433/3428/167 1429/2010/167 -f 1437/2018/157 1441/3430/157 1442/2019/157 -f 1440/2021/164 1439/3431/164 1435/2022/164 +f 1431/2016/167 1433/3440/167 1429/2010/167 +f 1437/2018/157 1441/3442/157 1442/2019/157 +f 1440/2021/164 1439/3443/164 1435/2022/164 f 1442/2019/167 1440/2021/167 1436/2023/167 -f 1439/2024/178 1441/3430/178 1437/2018/178 +f 1439/2024/178 1441/3442/178 1437/2018/178 f 1449/2026/157 1450/2032/157 1446/2027/157 -f 1448/2029/164 1447/3432/164 1443/2030/164 +f 1448/2029/164 1447/3444/164 1443/2030/164 f 1450/2032/171 1448/2029/171 1444/2031/171 f 1447/2033/179 1449/2026/179 1445/2028/179 -f 1453/2035/157 1457/3433/157 1458/2036/157 -f 1456/2038/164 1455/3434/164 1451/2039/164 +f 1453/2035/157 1457/3445/157 1458/2036/157 +f 1456/2038/164 1455/3446/164 1451/2039/164 f 1458/2036/179 1456/2038/179 1452/2040/179 -f 1455/2041/171 1457/3433/171 1453/2035/171 +f 1455/2041/171 1457/3445/171 1453/2035/171 f 1465/2043/157 1466/2049/157 1462/2044/157 -f 1464/2046/164 1463/3435/164 1459/2047/164 +f 1464/2046/164 1463/3447/164 1459/2047/164 f 1466/2049/168 1464/2046/168 1460/2048/168 f 1463/2050/169 1465/2043/169 1461/2045/169 -f 1469/2052/157 1473/3436/157 1474/2053/157 -f 1472/2055/164 1471/3437/164 1467/2056/164 +f 1469/2052/157 1473/3448/157 1474/2053/157 +f 1472/2055/164 1471/3449/164 1467/2056/164 f 1474/2053/169 1472/2055/169 1468/2057/169 -f 1471/2058/168 1473/3436/168 1469/2052/168 +f 1471/2058/168 1473/3448/168 1469/2052/168 f 1481/2060/157 1482/2066/157 1478/2061/157 -f 1476/2063/164 1480/3438/164 1479/2064/164 -f 1482/2066/170 1480/3438/170 1476/2063/170 +f 1476/2063/164 1480/3450/164 1479/2064/164 +f 1482/2066/170 1480/3450/170 1476/2063/170 f 1479/2067/172 1481/2060/172 1477/2062/172 -f 1485/2069/157 1489/3439/157 1490/2070/157 -f 1488/2072/164 1487/3440/164 1483/2073/164 +f 1485/2069/157 1489/3451/157 1490/2070/157 +f 1488/2072/164 1487/3452/164 1483/2073/164 f 1490/2070/172 1488/2072/172 1484/2074/172 -f 1487/2075/170 1489/3439/170 1485/2069/170 +f 1487/2075/170 1489/3451/170 1485/2069/170 f 1494/2077/157 1498/2083/157 1497/2078/157 -f 1491/2080/164 1495/3441/164 1496/2081/164 +f 1491/2080/164 1495/3453/164 1496/2081/164 f 1492/2082/155 1496/2081/155 1498/2083/155 f 1493/2079/156 1497/2078/156 1495/2084/156 f 1502/2086/157 1506/2093/157 1505/2087/157 f 1499/2089/164 1503/2094/164 1504/2090/164 -f 1500/2092/159 1504/3442/159 1506/2093/159 +f 1500/2092/159 1504/3454/159 1506/2093/159 f 1501/2088/158 1505/2087/158 1503/2094/158 f 1509/2095/164 1510/2102/164 1508/2096/164 f 1514/2098/155 1538/2145/155 1537/2099/155 @@ -9003,32 +9043,32 @@ f 1511/2106/157 1515/2105/157 1516/2107/157 f 1512/2109/157 1516/2103/157 1517/2110/157 f 1513/2100/157 1517/2104/157 1518/2112/157 f 1514/2113/157 1518/2101/157 1515/2114/157 -f 1519/2116/158 1539/3443/158 1542/2117/158 +f 1519/2116/158 1539/3455/158 1542/2117/158 f 1512/2108/156 1536/2139/156 1535/2119/156 f 1511/2115/159 1535/2147/159 1538/2120/159 f 1513/2111/158 1537/2142/158 1536/2121/158 -f 1530/2122/173 1534/3444/173 1533/2123/173 +f 1530/2122/173 1534/3456/173 1533/2123/173 f 1524/2125/158 1529/2124/158 1528/2126/158 f 1526/2128/155 1530/2122/155 1529/2124/155 f 1523/2127/156 1528/2126/156 1527/2129/156 f 1525/2131/159 1527/2136/159 1530/2122/159 -f 1533/2132/157 1534/3445/157 1531/2133/157 -f 1528/2126/176 1532/3446/176 1531/2135/176 -f 1527/2136/166 1531/3447/166 1534/2137/166 +f 1533/2132/157 1534/3457/157 1531/2133/157 +f 1528/2126/176 1532/3458/176 1531/2135/176 +f 1527/2136/166 1531/3459/166 1534/2137/166 f 1529/2124/165 1533/2132/165 1532/2134/165 f 1519/2138/157 1535/2119/157 1536/2139/157 f 1520/2141/157 1536/2121/157 1537/2142/157 f 1521/2144/157 1537/2099/157 1538/2145/157 f 1522/2118/157 1538/2120/157 1535/2147/157 -f 1541/2148/157 1542/3448/157 1539/2149/157 +f 1541/2148/157 1542/3460/157 1539/2149/157 f 1521/2143/159 1541/2148/159 1540/2150/159 -f 1522/2146/156 1542/3449/156 1541/2151/156 -f 1520/2140/155 1540/3450/155 1539/2152/155 +f 1522/2146/156 1542/3461/156 1541/2151/156 +f 1520/2140/155 1540/3462/155 1539/2152/155 f 1544/2153/157 1546/2160/157 1545/2154/157 f 1545/2154/176 1548/2157/176 1547/2156/176 -f 1548/2157/156 1550/3451/156 1549/2158/156 +f 1548/2157/156 1550/3463/156 1549/2158/156 f 1544/2153/173 1551/2161/173 1552/2159/173 -f 1551/2161/155 1553/3452/155 1554/2162/155 +f 1551/2161/155 1553/3464/155 1554/2162/155 f 1598/2163/168 1599/2207/168 1600/2164/168 f 1574/2166/159 1575/2178/159 1576/2167/159 f 1602/2169/169 1597/2223/169 1596/2170/169 @@ -9041,7 +9081,7 @@ f 1561/2183/164 1576/2182/164 1577/2174/164 f 1559/2184/164 1577/2174/164 1572/2173/164 f 1561/2185/159 1569/2188/159 1567/2186/159 f 1559/2177/155 1570/2176/155 1569/2188/155 -f 1557/2189/156 1567/3453/156 1568/2190/156 +f 1557/2189/156 1567/3465/156 1568/2190/156 f 1563/2191/156 1571/2197/156 1572/2192/156 f 1564/2193/156 1572/2192/156 1573/2194/156 f 1556/2195/156 1573/2194/156 1574/2166/156 @@ -9058,7 +9098,7 @@ f 1583/2213/164 1585/2211/164 1600/2212/164 f 1583/2213/164 1601/2171/164 1596/2170/164 f 1585/2214/168 1593/2217/168 1591/2215/168 f 1583/2206/178 1594/2205/178 1593/2217/178 -f 1581/2218/167 1591/3454/167 1592/2219/167 +f 1581/2218/167 1591/3466/167 1592/2219/167 f 1587/2220/167 1595/2226/167 1596/2221/167 f 1588/2222/167 1596/2221/167 1597/2223/167 f 1580/2224/167 1597/2223/167 1598/2163/167 @@ -9077,7 +9117,7 @@ f 1609/2245/164 1624/2246/164 1625/2238/164 f 1607/2247/164 1625/2238/164 1620/2237/164 f 1609/2249/170 1617/2252/170 1615/2250/170 f 1607/2241/171 1618/2240/171 1617/2252/171 -f 1605/2253/179 1615/3455/179 1616/2254/179 +f 1605/2253/179 1615/3467/179 1616/2254/179 f 1611/2255/179 1619/2261/179 1620/2256/179 f 1612/2257/179 1620/2256/179 1621/2258/179 f 1606/2260/179 1604/2259/179 1621/2258/179 @@ -9096,7 +9136,7 @@ f 1633/2282/164 1648/2281/164 1649/2273/164 f 1631/2283/164 1649/2273/164 1644/2272/164 f 1633/2284/178 1641/2287/178 1639/2285/178 f 1631/2276/169 1642/2275/169 1641/2287/169 -f 1629/2288/168 1639/3456/168 1640/2289/168 +f 1629/2288/168 1639/3468/168 1640/2289/168 f 1636/2290/168 1635/2296/168 1643/2291/168 f 1636/2290/168 1644/2292/168 1645/2293/168 f 1628/2294/168 1645/2293/168 1646/2268/168 @@ -9115,7 +9155,7 @@ f 1657/2315/164 1672/2316/164 1673/2308/164 f 1655/2317/164 1673/2308/164 1668/2307/164 f 1657/2319/171 1665/2322/171 1663/2320/171 f 1655/2311/172 1666/2310/172 1665/2322/172 -f 1653/2323/170 1663/3457/170 1664/2324/170 +f 1653/2323/170 1663/3469/170 1664/2324/170 f 1660/2325/170 1659/2331/170 1667/2326/170 f 1660/2325/170 1668/2327/170 1669/2328/170 f 1652/2329/170 1669/2328/170 1670/2303/170 @@ -9124,29 +9164,29 @@ f 1661/2332/172 1672/2335/172 1671/2312/172 f 1661/2332/172 1662/2337/172 1673/2334/172 f 1658/2333/172 1671/2312/172 1674/2306/172 f 1656/2336/172 1674/2306/172 1673/2334/172 -f 1614/2338/164 1613/3458/164 1677/2339/164 +f 1614/2338/164 1613/3470/164 1677/2339/164 f 1610/2341/180 1676/2345/180 1677/2342/180 f 1608/2344/157 1675/2346/157 1676/2345/157 f 1614/2338/181 1678/2340/181 1675/2346/181 -f 1589/2347/164 1611/3459/164 1612/2348/164 +f 1589/2347/164 1611/3471/164 1612/2348/164 f 1586/2350/163 1606/2354/163 1611/2351/163 f 1584/2353/157 1604/2355/157 1606/2354/157 f 1590/2349/160 1612/2348/160 1604/2355/160 -f 1565/2356/164 1587/3460/164 1588/2357/164 +f 1565/2356/164 1587/3472/164 1588/2357/164 f 1562/2359/182 1582/2363/182 1587/2360/182 f 1562/2359/157 1560/2364/157 1580/2362/157 f 1566/2358/183 1588/2357/183 1580/2362/183 f 1564/2365/164 1662/2373/164 1661/2366/164 -f 1661/2368/184 1658/3461/184 1558/2369/184 -f 1558/2369/157 1658/3461/157 1656/2371/157 +f 1661/2368/184 1658/3473/184 1558/2369/184 +f 1558/2369/157 1658/3473/157 1656/2371/157 f 1556/2372/185 1656/2371/185 1662/2373/185 -f 1637/2374/164 1659/3462/164 1660/2375/164 +f 1637/2374/164 1659/3474/164 1660/2375/164 f 1634/2377/162 1654/2381/162 1659/2378/162 f 1634/2377/157 1632/2382/157 1652/2380/157 f 1638/2376/161 1660/2375/161 1652/2380/161 f 1635/2383/164 1636/2391/164 1682/2384/164 -f 1681/2386/186 1680/3463/186 1630/2387/186 -f 1630/2387/157 1680/3463/157 1679/2389/157 +f 1681/2386/186 1680/3475/186 1630/2387/186 +f 1630/2387/157 1680/3475/157 1679/2389/157 f 1628/2390/187 1679/2389/187 1682/2384/187 f 1698/2392/157 1696/2412/157 1692/2393/157 f 1689/2395/157 1690/2399/157 1687/2396/157 @@ -9154,25 +9194,25 @@ f 1685/2398/159 1687/2396/159 1690/2399/159 f 1684/2401/158 1689/2395/158 1688/2397/158 f 1686/2403/155 1690/2399/155 1689/2395/155 f 1683/2405/156 1688/2397/156 1687/2396/156 -f 1695/2407/164 1697/3464/164 1693/2408/164 +f 1695/2407/164 1697/3476/164 1693/2408/164 f 1697/2410/162 1698/2392/162 1694/2394/162 f 1696/2412/161 1695/2407/161 1691/2409/161 -f 1710/2413/157 1714/3465/157 1712/2414/157 +f 1710/2413/157 1714/3477/157 1712/2414/157 f 1705/2416/157 1706/2420/157 1703/2417/157 f 1701/2419/158 1703/2417/158 1706/2420/158 f 1700/2422/159 1705/2416/159 1704/2418/159 f 1702/2424/156 1706/2420/156 1705/2416/156 f 1699/2426/155 1704/2418/155 1703/2417/155 -f 1707/2428/164 1711/3466/164 1713/2429/164 -f 1713/2431/161 1714/3465/161 1710/2413/161 -f 1712/2414/162 1711/3466/162 1707/2428/162 +f 1707/2428/164 1711/3478/164 1713/2429/164 +f 1713/2431/161 1714/3477/161 1710/2413/161 +f 1712/2414/162 1711/3478/162 1707/2428/162 f 1730/2433/157 1728/2453/157 1724/2434/157 f 1721/2436/157 1722/2440/157 1719/2437/157 f 1717/2439/156 1719/2437/156 1722/2440/156 f 1716/2442/155 1721/2436/155 1720/2438/155 f 1718/2444/159 1722/2440/159 1721/2436/159 f 1715/2446/158 1720/2438/158 1719/2437/158 -f 1727/2448/164 1729/3467/164 1725/2449/164 +f 1727/2448/164 1729/3479/164 1725/2449/164 f 1729/2451/163 1730/2433/163 1726/2435/163 f 1728/2453/160 1727/2448/160 1723/2450/160 f 1746/2454/157 1744/2474/157 1740/2455/157 @@ -9181,248 +9221,248 @@ f 1733/2460/155 1735/2458/155 1738/2461/155 f 1732/2463/156 1737/2457/156 1736/2459/156 f 1734/2465/158 1738/2461/158 1737/2457/158 f 1731/2467/159 1736/2459/159 1735/2458/159 -f 1739/2469/164 1743/3468/164 1745/2470/164 +f 1739/2469/164 1743/3480/164 1745/2470/164 f 1745/2472/160 1746/2454/160 1742/2456/160 -f 1744/2474/163 1743/3468/163 1739/2469/163 -f 1052/2475/188 1013/3469/188 1747/2476/188 -f 1058/2478/189 1752/3470/189 1749/2479/189 -f 1748/2482/169 1747/3471/169 1013/2481/169 +f 1744/2474/163 1743/3480/163 1739/2469/163 +f 1052/2475/188 1013/3481/188 1747/2476/188 +f 1058/2478/189 1752/3482/189 1749/2479/189 +f 1748/2482/169 1747/3483/169 1013/2481/169 f 1013/2481/169 1003/1551/169 989/1553/169 -f 1763/2483/178 1764/3472/178 1757/2484/178 -f 1762/2486/178 1763/3473/178 1758/2485/178 -f 1760/2488/178 1761/3474/178 1762/2489/178 -f 1767/2492/178 1785/3475/178 1784/3476/178 -f 1784/3476/178 1753/2490/178 1767/2492/178 -f 1787/3477/179 1786/3478/179 1776/2495/179 -f 1786/3478/179 1768/2493/179 1776/2495/179 -f 1755/2496/178 1766/3479/178 1767/2497/178 -f 1756/2498/178 1765/3480/178 1766/2499/178 -f 1764/2500/178 1765/3481/178 1756/2498/178 -f 1773/2502/179 1778/3482/179 1777/2503/179 -f 1773/2502/179 1772/3483/179 1779/2505/179 -f 1774/2504/179 1777/3484/179 1776/2507/179 -f 1769/3485/179 1768/2493/179 1782/2510/179 +f 1763/2483/178 1764/3484/178 1757/2484/178 +f 1762/2486/178 1763/3485/178 1758/2485/178 +f 1760/2488/178 1761/3486/178 1762/2489/178 +f 1767/2492/178 1785/3487/178 1784/3488/178 +f 1784/3488/178 1753/2490/178 1767/2492/178 +f 1787/3489/179 1786/3490/179 1776/2495/179 +f 1786/3490/179 1768/2493/179 1776/2495/179 +f 1755/2496/178 1766/3491/178 1767/2497/178 +f 1756/2498/178 1765/3492/178 1766/2499/178 +f 1764/2500/178 1765/3493/178 1756/2498/178 +f 1773/2502/179 1778/3494/179 1777/2503/179 +f 1773/2502/179 1772/3495/179 1779/2505/179 +f 1774/2504/179 1777/3496/179 1776/2507/179 +f 1769/3497/179 1768/2493/179 1782/2510/179 f 1768/2493/179 1786/2508/179 1782/2510/179 -f 1770/2511/179 1769/3485/179 1782/2512/179 +f 1770/2511/179 1769/3497/179 1782/2512/179 f 1771/2514/179 1770/2511/179 1781/2515/179 -f 1771/2514/179 1780/3486/179 1779/2517/179 -f 1761/2519/199 1783/3487/199 1787/2520/199 -f 1788/2522/200 1785/3488/200 1767/2523/200 -f 1784/2526/178 1783/3489/178 1761/2525/178 +f 1771/2514/179 1780/3498/179 1779/2517/179 +f 1761/2519/203 1783/3499/203 1787/2520/203 +f 1788/2522/204 1785/3500/204 1767/2523/204 +f 1784/2526/178 1783/3501/178 1761/2525/178 f 1761/2525/178 1760/2488/178 1753/2490/178 f 1790/2527/158 1792/2530/158 1791/2528/158 f 1792/2530/157 1800/2544/157 1797/2531/157 f 1790/2527/155 1799/2542/155 1800/2532/155 f 1791/2528/156 1797/2539/156 1798/2533/156 -f 1796/2534/157 1804/3490/157 1801/2535/157 -f 1798/2537/164 1799/3491/164 1790/2527/164 +f 1796/2534/157 1804/3502/157 1801/2535/157 +f 1798/2537/164 1799/3503/164 1790/2527/164 f 1793/2538/159 1798/2533/159 1797/2539/159 f 1796/2541/159 1800/2532/159 1799/2542/159 f 1795/2536/159 1797/2531/159 1800/2544/159 -f 1794/2545/159 1799/3491/159 1798/2537/159 -f 1795/2540/156 1801/3492/156 1802/2547/156 -f 1793/2546/164 1802/3493/164 1803/2548/164 -f 1794/2543/155 1803/3494/155 1804/2549/155 +f 1794/2545/159 1799/3503/159 1798/2537/159 +f 1795/2540/156 1801/3504/156 1802/2547/156 +f 1793/2546/164 1802/3505/164 1803/2548/164 +f 1794/2543/155 1803/3506/155 1804/2549/155 f 1806/2550/159 1808/2553/159 1807/2551/159 f 1808/2553/157 1816/2567/157 1813/2554/157 f 1806/2550/156 1815/2565/156 1816/2555/156 f 1807/2551/155 1813/2562/155 1814/2556/155 f 1811/2557/157 1812/2568/157 1820/2558/157 -f 1814/2560/164 1815/3495/164 1806/2550/164 +f 1814/2560/164 1815/3507/164 1806/2550/164 f 1809/2561/158 1814/2556/158 1813/2562/158 f 1812/2564/158 1816/2555/158 1815/2565/158 f 1811/2557/158 1813/2554/158 1816/2567/158 -f 1810/2569/158 1815/3495/158 1814/2560/158 -f 1811/2563/155 1817/3496/155 1818/2571/155 -f 1809/2570/164 1818/3497/164 1819/2572/164 -f 1810/2566/156 1819/3498/156 1820/2573/156 +f 1810/2569/158 1815/3507/158 1814/2560/158 +f 1811/2563/155 1817/3508/155 1818/2571/155 +f 1809/2570/164 1818/3509/164 1819/2572/164 +f 1810/2566/156 1819/3510/156 1820/2573/156 f 1822/2574/158 1824/2577/158 1823/2575/158 f 1824/2577/157 1832/2591/157 1829/2578/157 f 1822/2574/155 1831/2589/155 1832/2579/155 f 1823/2575/156 1829/2586/156 1830/2580/156 -f 1828/2581/157 1836/3499/157 1833/2582/157 -f 1830/2584/164 1831/3500/164 1822/2574/164 +f 1828/2581/157 1836/3511/157 1833/2582/157 +f 1830/2584/164 1831/3512/164 1822/2574/164 f 1825/2585/159 1830/2580/159 1829/2586/159 f 1828/2588/159 1832/2579/159 1831/2589/159 f 1827/2583/159 1829/2578/159 1832/2591/159 -f 1826/2592/159 1831/3500/159 1830/2584/159 -f 1827/2587/156 1833/3501/156 1834/2594/156 -f 1825/2593/164 1834/3502/164 1835/2595/164 -f 1826/2590/155 1835/3503/155 1836/2596/155 +f 1826/2592/159 1831/3512/159 1830/2584/159 +f 1827/2587/156 1833/3513/156 1834/2594/156 +f 1825/2593/164 1834/3514/164 1835/2595/164 +f 1826/2590/155 1835/3515/155 1836/2596/155 f 1838/2597/159 1840/2600/159 1839/2598/159 f 1840/2600/157 1848/2614/157 1845/2601/157 f 1838/2597/156 1847/2612/156 1848/2602/156 f 1839/2598/155 1845/2609/155 1846/2603/155 f 1843/2604/157 1844/2615/157 1852/2605/157 -f 1846/2607/164 1847/3504/164 1838/2597/164 +f 1846/2607/164 1847/3516/164 1838/2597/164 f 1841/2608/158 1846/2603/158 1845/2609/158 f 1844/2611/158 1848/2602/158 1847/2612/158 f 1843/2604/158 1845/2601/158 1848/2614/158 -f 1842/2616/158 1847/3504/158 1846/2607/158 -f 1843/2610/155 1849/3505/155 1850/2618/155 -f 1841/2617/164 1850/3506/164 1851/2619/164 -f 1842/2613/156 1851/3507/156 1852/2620/156 +f 1842/2616/158 1847/3516/158 1846/2607/158 +f 1843/2610/155 1849/3517/155 1850/2618/155 +f 1841/2617/164 1850/3518/164 1851/2619/164 +f 1842/2613/156 1851/3519/156 1852/2620/156 f 1854/2621/158 1856/2624/158 1855/2622/158 f 1856/2624/157 1864/2638/157 1861/2625/157 f 1854/2621/155 1863/2636/155 1864/2626/155 f 1855/2622/156 1861/2633/156 1862/2627/156 -f 1860/2628/157 1868/3508/157 1865/2629/157 -f 1862/2631/164 1863/3509/164 1854/2621/164 +f 1860/2628/157 1868/3520/157 1865/2629/157 +f 1862/2631/164 1863/3521/164 1854/2621/164 f 1857/2632/159 1862/2627/159 1861/2633/159 f 1860/2635/159 1864/2626/159 1863/2636/159 f 1859/2630/159 1861/2625/159 1864/2638/159 -f 1858/2639/159 1863/3509/159 1862/2631/159 -f 1859/2634/156 1865/3510/156 1866/2641/156 -f 1857/2640/164 1866/3511/164 1867/2642/164 -f 1858/2637/155 1867/3512/155 1868/2643/155 +f 1858/2639/159 1863/3521/159 1862/2631/159 +f 1859/2634/156 1865/3522/156 1866/2641/156 +f 1857/2640/164 1866/3523/164 1867/2642/164 +f 1858/2637/155 1867/3524/155 1868/2643/155 f 1870/2644/159 1872/2647/159 1871/2645/159 f 1872/2647/157 1880/2661/157 1877/2648/157 f 1870/2644/156 1879/2659/156 1880/2649/156 f 1871/2645/155 1877/2656/155 1878/2650/155 f 1875/2651/157 1876/2662/157 1884/2652/157 -f 1878/2654/164 1879/3513/164 1870/2644/164 +f 1878/2654/164 1879/3525/164 1870/2644/164 f 1873/2655/158 1878/2650/158 1877/2656/158 f 1876/2658/158 1880/2649/158 1879/2659/158 f 1875/2651/158 1877/2648/158 1880/2661/158 -f 1874/2663/158 1879/3513/158 1878/2654/158 -f 1875/2657/155 1881/3514/155 1882/2665/155 -f 1873/2664/164 1882/3515/164 1883/2666/164 -f 1874/2660/156 1883/3516/156 1884/2667/156 +f 1874/2663/158 1879/3525/158 1878/2654/158 +f 1875/2657/155 1881/3526/155 1882/2665/155 +f 1873/2664/164 1882/3527/164 1883/2666/164 +f 1874/2660/156 1883/3528/156 1884/2667/156 f 1886/2668/158 1888/2671/158 1887/2669/158 f 1888/2671/157 1896/2685/157 1893/2672/157 f 1886/2668/155 1895/2683/155 1896/2673/155 f 1887/2669/156 1893/2680/156 1894/2674/156 -f 1892/2675/157 1900/3517/157 1897/2676/157 -f 1894/2678/164 1895/3518/164 1886/2668/164 +f 1892/2675/157 1900/3529/157 1897/2676/157 +f 1894/2678/164 1895/3530/164 1886/2668/164 f 1889/2679/159 1894/2674/159 1893/2680/159 f 1892/2682/159 1896/2673/159 1895/2683/159 f 1891/2677/159 1893/2672/159 1896/2685/159 -f 1890/2686/159 1895/3518/159 1894/2678/159 -f 1891/2681/156 1897/3519/156 1898/2688/156 -f 1889/2687/164 1898/3520/164 1899/2689/164 -f 1890/2684/155 1899/3521/155 1900/2690/155 +f 1890/2686/159 1895/3530/159 1894/2678/159 +f 1891/2681/156 1897/3531/156 1898/2688/156 +f 1889/2687/164 1898/3532/164 1899/2689/164 +f 1890/2684/155 1899/3533/155 1900/2690/155 f 1902/2691/159 1904/2694/159 1903/2692/159 f 1904/2694/157 1912/2708/157 1909/2695/157 f 1902/2691/156 1911/2706/156 1912/2696/156 f 1903/2692/155 1909/2703/155 1910/2697/155 f 1907/2698/157 1908/2709/157 1916/2699/157 -f 1910/2701/164 1911/3522/164 1902/2691/164 +f 1910/2701/164 1911/3534/164 1902/2691/164 f 1905/2702/158 1910/2697/158 1909/2703/158 f 1908/2705/158 1912/2696/158 1911/2706/158 f 1907/2698/158 1909/2695/158 1912/2708/158 -f 1906/2710/158 1911/3522/158 1910/2701/158 -f 1907/2704/155 1913/3523/155 1914/2712/155 -f 1905/2711/164 1914/3524/164 1915/2713/164 -f 1906/2707/156 1915/3525/156 1916/2714/156 +f 1906/2710/158 1911/3534/158 1910/2701/158 +f 1907/2704/155 1913/3535/155 1914/2712/155 +f 1905/2711/164 1914/3536/164 1915/2713/164 +f 1906/2707/156 1915/3537/156 1916/2714/156 f 1920/2715/157 1924/2721/157 1923/2716/157 -f 1917/2718/164 1921/3526/164 1922/2719/164 +f 1917/2718/164 1921/3538/164 1922/2719/164 f 1918/2720/155 1922/2719/155 1924/2721/155 f 1919/2717/156 1923/2716/156 1921/2722/156 f 1928/2724/157 1932/2730/157 1931/2725/157 -f 1925/2727/164 1929/3527/164 1930/2728/164 +f 1925/2727/164 1929/3539/164 1930/2728/164 f 1926/2729/155 1930/2728/155 1932/2730/155 f 1927/2726/156 1931/2725/156 1929/2731/156 f 1936/2733/157 1940/2740/157 1939/2734/157 f 1933/2736/164 1937/2741/164 1938/2737/164 -f 1934/2739/159 1938/3528/159 1940/2740/159 +f 1934/2739/159 1938/3540/159 1940/2740/159 f 1935/2735/158 1939/2734/158 1937/2741/158 f 1944/2742/157 1948/2749/157 1947/2743/157 f 1941/2745/164 1945/2750/164 1946/2746/164 -f 1942/2748/159 1946/3529/159 1948/2749/159 +f 1942/2748/159 1946/3541/159 1948/2749/159 f 1943/2744/158 1947/2743/158 1945/2750/158 f 1950/2751/158 1955/1675/158 1954/2752/158 f 1952/2754/155 1956/1673/155 1955/1675/155 f 1949/2753/156 1954/2752/156 1953/2755/156 f 1951/2757/159 1953/2762/159 1956/1673/159 -f 1959/2758/157 1960/3530/157 1957/2759/157 -f 1954/2752/176 1958/3531/176 1957/2761/176 -f 1953/2762/166 1957/3532/166 1960/2763/166 +f 1959/2758/157 1960/3542/157 1957/2759/157 +f 1954/2752/176 1958/3543/176 1957/2761/176 +f 1953/2762/166 1957/3544/166 1960/2763/166 f 1955/1675/165 1959/2758/165 1958/2760/165 -f 1980/2764/173 1984/3533/173 1983/2765/173 -f 1968/2767/173 1972/3534/173 1971/2768/173 +f 1980/2764/173 1984/3545/173 1983/2765/173 +f 1968/2767/173 1972/3546/173 1971/2768/173 f 1962/2770/158 1967/2769/158 1966/2771/158 f 1964/2773/155 1968/2767/155 1967/2769/155 f 1961/2772/156 1966/2771/156 1965/2774/156 f 1963/2776/159 1965/2781/159 1968/2767/159 -f 1971/2777/157 1972/3535/157 1969/2778/157 -f 1966/2771/176 1970/3536/176 1969/2780/176 -f 1965/2781/166 1969/3537/166 1972/2782/166 +f 1971/2777/157 1972/3547/157 1969/2778/157 +f 1966/2771/176 1970/3548/176 1969/2780/176 +f 1965/2781/166 1969/3549/166 1972/2782/166 f 1967/2769/165 1971/2777/165 1970/2779/165 f 1974/2783/158 1979/2766/158 1978/2784/158 f 1976/2786/155 1980/2764/155 1979/2766/155 f 1973/2785/156 1978/2784/156 1977/2787/156 f 1975/2789/159 1977/2794/159 1980/2764/159 -f 1983/2790/157 1984/3538/157 1981/2791/157 -f 1978/2784/176 1982/3539/176 1981/2793/176 -f 1977/2794/166 1981/3540/166 1984/2795/166 +f 1983/2790/157 1984/3550/157 1981/2791/157 +f 1978/2784/176 1982/3551/176 1981/2793/176 +f 1977/2794/166 1981/3552/166 1984/2795/166 f 1979/2766/165 1983/2790/165 1982/2792/165 -f 1996/2796/156 2004/3541/156 2003/2797/156 -f 1994/2799/156 2005/3542/156 2004/2800/156 -f 1998/2798/156 2003/3543/156 2002/2801/156 -f 2000/2802/156 2002/3544/156 2001/2803/156 -f 1986/2805/156 2001/3545/156 2008/2806/156 -f 1988/2807/156 2008/3546/156 2007/2808/156 -f 1990/2809/156 2007/3547/156 2006/2810/156 -f 1992/2811/156 2006/3548/156 2005/2812/156 -f 2012/2813/155 2013/3549/155 1993/2814/155 -f 2011/2816/155 2012/3550/155 1995/2815/155 -f 2010/2818/155 2011/3551/155 1997/2817/155 -f 2009/2820/155 2010/3552/155 1999/2819/155 -f 2016/2822/155 2009/3553/155 1985/2823/155 -f 2015/2825/155 2016/3554/155 1987/2824/155 -f 2014/2827/155 2015/3555/155 1989/2826/155 -f 2013/2829/155 2014/3556/155 1991/2828/155 -f 2044/2830/178 2045/3557/178 2037/2831/178 -f 2043/2833/178 2044/3558/178 2038/2832/178 -f 2040/2835/178 2042/3559/178 2043/2836/178 -f 2041/2837/178 2042/3560/178 2040/2835/178 -f 2048/2839/178 2041/3561/178 2033/2840/178 -f 2047/2842/178 2048/3562/178 2034/2841/178 -f 2046/2844/178 2047/3563/178 2035/2843/178 -f 2037/2831/178 2045/3564/178 2046/2846/178 -f 2060/2847/169 2068/3565/169 2067/2848/169 -f 2060/2847/169 2058/3566/169 2069/2850/169 +f 1996/2796/156 2004/3553/156 2003/2797/156 +f 1994/2799/156 2005/3554/156 2004/2800/156 +f 1998/2798/156 2003/3555/156 2002/2801/156 +f 2000/2802/156 2002/3556/156 2001/2803/156 +f 1986/2805/156 2001/3557/156 2008/2806/156 +f 1988/2807/156 2008/3558/156 2007/2808/156 +f 1990/2809/156 2007/3559/156 2006/2810/156 +f 1992/2811/156 2006/3560/156 2005/2812/156 +f 2012/2813/155 2013/3561/155 1993/2814/155 +f 2011/2816/155 2012/3562/155 1995/2815/155 +f 2010/2818/155 2011/3563/155 1997/2817/155 +f 2009/2820/155 2010/3564/155 1999/2819/155 +f 2016/2822/155 2009/3565/155 1985/2823/155 +f 2015/2825/155 2016/3566/155 1987/2824/155 +f 2014/2827/155 2015/3567/155 1989/2826/155 +f 2013/2829/155 2014/3568/155 1991/2828/155 +f 2044/2830/178 2045/3569/178 2037/2831/178 +f 2043/2833/178 2044/3570/178 2038/2832/178 +f 2040/2835/178 2042/3571/178 2043/2836/178 +f 2041/2837/178 2042/3572/178 2040/2835/178 +f 2048/2839/178 2041/3573/178 2033/2840/178 +f 2047/2842/178 2048/3574/178 2034/2841/178 +f 2046/2844/178 2047/3575/178 2035/2843/178 +f 2037/2831/178 2045/3576/178 2046/2846/178 +f 2060/2847/169 2068/3577/169 2067/2848/169 +f 2060/2847/169 2058/3578/169 2069/2850/169 f 2064/2852/169 2062/2849/169 2067/2853/169 f 2050/2855/169 2064/2852/169 2066/2856/169 -f 2050/2855/169 2065/3567/169 2072/2858/169 -f 2052/2859/169 2072/3568/169 2071/2860/169 +f 2050/2855/169 2065/3579/169 2072/2858/169 +f 2052/2859/169 2072/3580/169 2071/2860/169 f 2056/2862/169 2054/2861/169 2071/2863/169 -f 2056/2862/169 2070/3569/169 2069/2865/169 -f 2075/2867/168 2076/3570/168 2057/2868/168 -f 2074/2870/168 2075/3571/168 2059/2869/168 -f 2063/2872/168 2073/3572/168 2074/2873/168 -f 2079/2876/168 2269/3573/168 2268/3574/168 -f 2268/3574/168 2049/2874/168 2079/2876/168 -f 2271/3575/172 2270/3576/172 2112/2879/172 -f 2270/3576/172 2097/2877/172 2112/2879/172 -f 2078/2880/168 2079/3577/168 2051/2875/168 -f 2055/2882/168 2077/3578/168 2078/2883/168 -f 2057/2884/168 2076/3579/168 2077/2885/168 -f 2085/2886/179 2091/3580/179 2090/2887/179 -f 2084/2889/179 2092/3581/179 2091/2890/179 +f 2056/2862/169 2070/3581/169 2069/2865/169 +f 2075/2867/168 2076/3582/168 2057/2868/168 +f 2074/2870/168 2075/3583/168 2059/2869/168 +f 2063/2872/168 2073/3584/168 2074/2873/168 +f 2079/2876/168 2269/3585/168 2268/3586/168 +f 2268/3586/168 2049/2874/168 2079/2876/168 +f 2271/3587/172 2270/3588/172 2112/2879/172 +f 2270/3588/172 2097/2877/172 2112/2879/172 +f 2078/2880/168 2079/3589/168 2051/2875/168 +f 2055/2882/168 2077/3590/168 2078/2883/168 +f 2057/2884/168 2076/3591/168 2077/2885/168 +f 2085/2886/179 2091/3592/179 2090/2887/179 +f 2084/2889/179 2092/3593/179 2091/2890/179 f 2087/2891/179 2086/2888/179 2090/2892/179 -f 2087/2891/179 2089/3582/179 2088/2894/179 -f 2080/2896/179 2088/3583/179 2095/2897/179 +f 2087/2891/179 2089/3594/179 2088/2894/179 +f 2080/2896/179 2088/3595/179 2095/2897/179 f 2082/2899/179 2081/2898/179 2095/2900/179 -f 2082/2899/179 2094/3584/179 2093/2902/179 -f 2083/2903/179 2093/3585/179 2092/2904/179 -f 2107/2905/172 2114/3586/172 2113/2906/172 -f 2107/2905/172 2105/3587/172 2115/2908/172 -f 2109/2907/172 2113/3588/172 2112/2910/172 +f 2082/2899/179 2094/3596/179 2093/2902/179 +f 2083/2903/179 2093/3597/179 2092/2904/179 +f 2107/2905/172 2114/3598/172 2113/2906/172 +f 2107/2905/172 2105/3599/172 2115/2908/172 +f 2109/2907/172 2113/3600/172 2112/2910/172 f 2099/2914/172 2097/2877/172 2118/2913/172 f 2097/2877/172 2270/2911/172 2118/2913/172 -f 2099/2914/172 2118/3589/172 2117/2915/172 +f 2099/2914/172 2118/3601/172 2117/2915/172 f 2103/2917/172 2101/2916/172 2117/2918/172 -f 2103/2917/172 2116/3590/172 2115/2920/172 -f 2122/2922/170 2123/3591/170 2104/2923/170 -f 2121/2925/170 2122/3592/170 2106/2924/170 -f 2110/2927/170 2120/3593/170 2121/2928/170 -f 2096/2929/170 2119/3594/170 2120/2930/170 -f 2126/2931/170 2119/3595/170 2096/2929/170 -f 2100/2933/170 2125/3596/170 2126/2934/170 -f 2102/2935/170 2124/3597/170 2125/2936/170 -f 2104/2937/170 2123/3598/170 2124/2938/170 -f 2131/2939/192 2135/3599/192 2138/2940/192 +f 2103/2917/172 2116/3602/172 2115/2920/172 +f 2122/2922/170 2123/3603/170 2104/2923/170 +f 2121/2925/170 2122/3604/170 2106/2924/170 +f 2110/2927/170 2120/3605/170 2121/2928/170 +f 2096/2929/170 2119/3606/170 2120/2930/170 +f 2126/2931/170 2119/3607/170 2096/2929/170 +f 2100/2933/170 2125/3608/170 2126/2934/170 +f 2102/2935/170 2124/3609/170 2125/2936/170 +f 2104/2937/170 2123/3610/170 2124/2938/170 +f 2131/2939/192 2135/3611/192 2138/2940/192 f 2129/2942/158 2131/2939/158 2134/2941/158 f 2128/2944/159 2133/2947/159 2132/2945/159 f 2130/2943/156 2134/2941/156 2133/2947/156 @@ -9442,7 +9482,7 @@ f 2145/2973/164 2160/2972/164 2161/2964/164 f 2143/2974/164 2161/2964/164 2156/2963/164 f 2145/2975/158 2153/2978/158 2151/2976/158 f 2143/2967/156 2154/2966/156 2153/2978/156 -f 2141/2979/155 2151/3600/155 2152/2980/155 +f 2141/2979/155 2151/3612/155 2152/2980/155 f 2147/2981/155 2155/2987/155 2156/2982/155 f 2148/2983/155 2156/2982/155 2157/2984/155 f 2140/2985/155 2157/2984/155 2158/2956/155 @@ -9459,7 +9499,7 @@ f 2169/3001/164 2184/3002/164 2185/2961/164 f 2167/3003/164 2185/2961/164 2180/2960/164 f 2169/3004/169 2177/3007/169 2175/3005/169 f 2167/2996/167 2178/2995/167 2177/3007/167 -f 2165/3008/178 2175/3601/178 2176/3009/178 +f 2165/3008/178 2175/3613/178 2176/3009/178 f 2171/3010/178 2179/3016/178 2180/3011/178 f 2172/3012/178 2180/3011/178 2181/3013/178 f 2164/3014/178 2181/3013/178 2182/2953/178 @@ -9478,7 +9518,7 @@ f 2193/3035/164 2208/3036/164 2209/3028/164 f 2191/3037/164 2209/3028/164 2204/3027/164 f 2193/3039/172 2201/3042/172 2199/3040/172 f 2191/3031/179 2202/3030/179 2201/3042/179 -f 2189/3043/171 2199/3602/171 2200/3044/171 +f 2189/3043/171 2199/3614/171 2200/3044/171 f 2195/3045/171 2203/3051/171 2204/3046/171 f 2196/3047/171 2204/3046/171 2205/3048/171 f 2190/3050/171 2188/3049/171 2205/3048/171 @@ -9497,7 +9537,7 @@ f 2217/3072/164 2232/3071/164 2233/3063/164 f 2215/3073/164 2233/3063/164 2228/3062/164 f 2217/3074/167 2225/3077/167 2223/3075/167 f 2215/3066/168 2226/3065/168 2225/3077/168 -f 2213/3078/169 2223/3603/169 2224/3079/169 +f 2213/3078/169 2223/3615/169 2224/3079/169 f 2219/3080/169 2227/3086/169 2228/3081/169 f 2220/3082/169 2228/3081/169 2229/3083/169 f 2212/3084/169 2229/3083/169 2230/3058/169 @@ -9516,7 +9556,7 @@ f 2241/3105/164 2256/3106/164 2257/3098/164 f 2239/3107/164 2257/3098/164 2252/3097/164 f 2241/3109/179 2249/3112/179 2247/3110/179 f 2239/3101/170 2250/3100/170 2249/3112/170 -f 2237/3113/172 2247/3604/172 2248/3114/172 +f 2237/3113/172 2247/3616/172 2248/3114/172 f 2244/3115/172 2243/3121/172 2251/3116/172 f 2244/3115/172 2252/3117/172 2253/3118/172 f 2236/3119/172 2253/3118/172 2254/3093/172 @@ -9525,158 +9565,162 @@ f 2245/3122/170 2256/3125/170 2255/3102/170 f 2245/3122/170 2246/3127/170 2257/3124/170 f 2242/3123/170 2255/3102/170 2258/3096/170 f 2240/3126/170 2258/3096/170 2257/3124/170 -f 2198/3128/164 2197/3605/164 2261/3129/164 +f 2198/3128/164 2197/3617/164 2261/3129/164 f 2194/3131/181 2260/3135/181 2261/3132/181 f 2192/3134/157 2259/3136/157 2260/3135/157 f 2198/3128/180 2262/3130/180 2259/3136/180 -f 2173/3137/164 2195/3606/164 2196/3138/164 +f 2173/3137/164 2195/3618/164 2196/3138/164 f 2170/3140/160 2190/3144/160 2195/3141/160 f 2168/3143/157 2188/3145/157 2190/3144/157 f 2174/3139/163 2196/3138/163 2188/3145/163 -f 2150/3146/164 2149/3607/164 2171/3147/164 +f 2150/3146/164 2149/3619/164 2171/3147/164 f 2146/3149/183 2166/3153/183 2171/3150/183 f 2144/3152/157 2164/3154/157 2166/3153/157 f 2150/3146/182 2172/3148/182 2164/3154/182 f 2147/3155/164 2148/3163/164 2246/3156/164 -f 2245/3158/185 2242/3608/185 2142/3159/185 -f 2142/3159/157 2242/3608/157 2240/3161/157 +f 2245/3158/185 2242/3620/185 2142/3159/185 +f 2142/3159/157 2242/3620/157 2240/3161/157 f 2140/3162/184 2240/3161/184 2246/3156/184 -f 2221/3164/164 2243/3609/164 2244/3165/164 +f 2221/3164/164 2243/3621/164 2244/3165/164 f 2218/3167/161 2238/3171/161 2243/3168/161 f 2216/3170/157 2236/3172/157 2238/3171/157 f 2222/3166/162 2244/3165/162 2236/3172/162 f 2220/3173/164 2266/3181/164 2265/3174/164 -f 2265/3176/187 2264/3610/187 2214/3177/187 -f 2214/3177/157 2264/3610/157 2263/3179/157 +f 2265/3176/187 2264/3622/187 2214/3177/187 +f 2214/3177/157 2264/3622/157 2263/3179/157 f 2212/3180/186 2263/3179/186 2266/3181/186 -f 2112/3182/193 2073/3611/193 2267/3183/193 -f 2118/3185/194 2272/3612/194 2269/3186/194 -f 2268/3189/168 2267/3613/168 2073/3188/168 +f 2112/3182/193 2073/3623/193 2267/3183/193 +f 2118/3185/194 2272/3624/194 2269/3186/194 +f 2268/3189/168 2267/3625/168 2073/3188/168 f 2073/3188/168 2063/2872/168 2049/2874/168 -f 2283/3190/167 2284/3614/167 2277/3191/167 -f 2282/3193/167 2283/3615/167 2278/3192/167 -f 2281/3195/167 2282/3616/167 2279/3194/167 -f 2287/3199/167 2305/3617/167 2304/3618/167 -f 2304/3618/167 2273/3197/167 2287/3199/167 -f 2307/3619/171 2306/3620/171 2296/3202/171 -f 2306/3620/171 2288/3200/171 2296/3202/171 -f 2275/3203/167 2286/3621/167 2287/3204/167 -f 2276/3205/167 2285/3622/167 2286/3206/167 -f 2277/3207/167 2284/3623/167 2285/3208/167 -f 2293/3209/171 2298/3624/171 2297/3210/171 -f 2293/3209/171 2292/3625/171 2299/3212/171 +f 2283/3190/167 2284/3626/167 2277/3191/167 +f 2282/3193/167 2283/3627/167 2278/3192/167 +f 2281/3195/167 2282/3628/167 2279/3194/167 +f 2287/3199/167 2305/3629/167 2304/3630/167 +f 2304/3630/167 2273/3197/167 2287/3199/167 +f 2307/3631/171 2306/3632/171 2296/3202/171 +f 2306/3632/171 2288/3200/171 2296/3202/171 +f 2275/3203/167 2286/3633/167 2287/3204/167 +f 2276/3205/167 2285/3634/167 2286/3206/167 +f 2277/3207/167 2284/3635/167 2285/3208/167 +f 2293/3209/171 2298/3636/171 2297/3210/171 +f 2293/3209/171 2292/3637/171 2299/3212/171 f 2295/3201/171 2294/3211/171 2297/3214/171 -f 2289/3626/171 2288/3200/171 2302/3218/171 +f 2289/3638/171 2288/3200/171 2302/3218/171 f 2288/3200/171 2306/3216/171 2302/3218/171 -f 2290/3219/171 2289/3626/171 2302/3220/171 +f 2290/3219/171 2289/3638/171 2302/3220/171 f 2291/3222/171 2290/3219/171 2301/3223/171 -f 2291/3222/171 2300/3627/171 2299/3225/171 -f 2281/3227/201 2303/3628/201 2307/3228/201 -f 2308/3230/202 2305/3629/202 2287/3231/202 -f 2304/3234/167 2303/3630/167 2281/3233/167 +f 2291/3222/171 2300/3639/171 2299/3225/171 +f 2281/3227/205 2303/3640/205 2307/3228/205 +f 2308/3230/206 2305/3641/206 2287/3231/206 +f 2304/3234/167 2303/3642/167 2281/3233/167 f 2281/3233/167 2280/3196/167 2273/3197/167 f 2311/3235/164 2312/3242/164 2310/3236/164 f 2313/3238/197 2314/3240/197 2311/3235/197 -f 2315/3239/155 2316/3631/155 2314/3240/155 +f 2315/3239/155 2316/3643/155 2314/3240/155 f 2318/3241/198 2317/3244/198 2310/3236/198 -f 2320/3243/156 2319/3632/156 2317/3244/156 +f 2320/3243/156 2319/3644/156 2317/3244/156 +f 2322/3245/199 2324/3645/199 2323/3246/199 +f 2326/3248/200 2328/3646/200 2327/3249/200 +f 2330/3251/201 2332/3647/201 2331/3252/201 +f 2334/3254/202 2336/3648/202 2335/3255/202 s 1 -f 675/1162/203 688/1143/204 676/1160/204 -f 682/1172/205 684/1133/158 671/1170/158 -f 672/1168/206 685/1137/207 673/1166/207 -f 680/3264/164 691/1149/208 692/1151/164 -f 676/1160/204 689/1145/159 677/1158/159 -f 673/1166/207 686/1139/157 674/1164/157 -f 681/1173/209 692/1152/164 693/1154/209 -f 678/1183/210 689/1145/159 690/1147/210 -f 674/1164/157 687/1141/203 675/1162/203 -f 681/1173/209 694/1156/205 682/1172/205 -f 671/1170/158 683/1135/206 672/1168/206 -f 679/1179/208 690/1147/210 691/1149/208 -f 696/3255/209 707/3633/205 695/1155/205 -f 703/1140/157 714/3634/203 702/3248/203 -f 700/1146/159 711/3635/210 699/3251/210 -f 697/3254/164 708/3636/209 696/1153/209 -f 703/3247/157 716/3637/207 715/3638/157 -f 701/1144/204 712/3639/159 700/3250/159 -f 697/1150/164 710/3640/208 709/3641/164 -f 705/1136/206 716/3642/207 704/3246/207 -f 695/1157/205 718/3643/158 706/3256/158 -f 702/1142/203 713/3644/204 701/3249/204 -f 699/1148/210 710/3645/208 698/3252/208 -f 706/3245/158 717/3646/206 705/1134/206 -f 738/1239/210 763/3277/208 739/1240/208 -f 724/3258/205 747/1190/209 723/1161/209 -f 719/3263/159 754/1205/204 730/1171/204 -f 737/1236/159 762/3278/210 738/1237/210 -f 723/3259/209 746/1193/164 722/1163/164 -f 730/1174/204 753/1208/203 729/1175/203 -f 736/1233/204 761/1186/159 737/1234/159 -f 722/3260/164 745/1194/208 721/1165/208 -f 729/1177/203 752/1211/157 728/1178/157 -f 735/1230/203 760/3268/204 736/1231/204 -f 721/3261/208 743/1199/210 720/1167/210 -f 742/1251/205 756/3273/158 731/1252/158 -f 731/1254/158 755/1201/206 732/1255/206 -f 725/3257/158 748/1185/205 724/1159/205 -f 739/1242/208 764/1213/164 740/1243/164 -f 732/1221/206 757/3271/207 733/1222/207 -f 726/3266/206 749/1220/158 725/1184/158 -f 740/1245/164 765/3275/209 741/1246/209 -f 733/1224/207 758/1195/157 734/1225/157 -f 727/3265/207 750/1217/206 726/1182/206 -f 741/1248/209 766/3274/205 742/1249/205 -f 720/3262/210 744/1200/159 719/1169/159 -f 734/1227/157 759/3269/203 735/1228/203 -f 728/1180/157 751/1212/207 727/1181/207 -f 824/1359/203 799/3281/157 800/1323/203 -f 817/1308/157 792/3288/207 816/1309/207 -f 831/3295/205 807/1335/158 832/1370/158 -f 810/1287/208 785/3283/210 809/1288/210 -f 824/3292/203 801/1322/204 825/1357/204 -f 818/1311/203 793/1342/157 817/1312/157 -f 811/1290/164 786/3282/208 810/1291/208 -f 825/3291/204 802/1319/159 826/1354/159 -f 819/1314/204 794/3286/203 818/1315/203 -f 812/1293/209 787/1324/164 811/1294/164 -f 826/3300/159 803/1350/210 827/1379/210 -f 820/1281/159 796/1336/204 819/1282/204 -f 809/1284/210 795/3284/159 820/1285/159 -f 830/3296/209 808/1340/205 831/1372/205 -f 816/1305/207 791/3289/206 815/1306/206 -f 823/1362/157 798/1326/207 799/1328/157 -f 829/3297/164 806/1341/209 830/1374/209 -f 815/1302/206 790/1351/158 814/1303/158 -f 821/1364/206 798/1331/207 822/1365/207 -f 829/1376/164 804/1344/208 805/1346/164 -f 814/1299/158 789/3279/205 813/1300/205 -f 832/3294/158 797/1334/206 821/1367/206 -f 827/3299/210 804/1349/208 828/1378/208 -f 813/1296/205 788/3280/209 812/1297/209 -f 846/1404/204 833/3647/159 834/3648/204 -f 852/1390/205 841/3649/209 853/3305/209 -f 849/1396/207 838/3650/206 850/3308/206 -f 856/1380/210 833/3651/159 845/3301/159 -f 847/3311/203 834/3652/204 835/3653/203 -f 854/1388/164 841/3654/209 842/3655/164 -f 850/1394/206 839/3656/158 851/3307/158 -f 847/1400/203 836/3657/157 848/3310/157 -f 854/3303/164 843/3658/208 855/1386/208 -f 851/1392/158 840/3659/205 852/3306/205 -f 848/1398/157 837/3660/207 849/3309/207 -f 855/3302/208 844/3661/210 856/1384/210 -f 872/1356/209 861/1391/205 860/1387/209 -f 880/1366/159 868/1403/204 879/1369/204 -f 869/1368/210 858/1383/208 857/1382/210 -f 877/1373/157 864/1397/207 876/1375/207 -f 874/1355/158 861/1391/205 873/1353/205 -f 870/1363/208 859/1385/164 858/1383/208 -f 878/1371/203 865/1399/157 877/1373/157 -f 874/1355/158 863/1395/206 862/1393/158 -f 871/3293/164 860/1387/209 859/1389/164 -f 879/1369/204 866/1401/203 878/1371/203 -f 869/1368/210 867/1381/159 880/1366/159 -f 876/1375/207 863/1395/206 875/1377/206 +f 675/1162/207 688/1143/208 676/1160/208 +f 682/1172/209 684/1133/158 671/1170/158 +f 672/1168/210 685/1137/211 673/1166/211 +f 680/3276/164 691/1149/212 692/1151/164 +f 676/1160/208 689/1145/159 677/1158/159 +f 673/1166/211 686/1139/157 674/1164/157 +f 681/1173/213 692/1152/164 693/1154/213 +f 678/1183/214 689/1145/159 690/1147/214 +f 674/1164/157 687/1141/207 675/1162/207 +f 681/1173/213 694/1156/209 682/1172/209 +f 671/1170/158 683/1135/210 672/1168/210 +f 679/1179/212 690/1147/214 691/1149/212 +f 696/3267/213 707/3649/209 695/1155/209 +f 703/1140/157 714/3650/207 702/3260/207 +f 700/1146/159 711/3651/214 699/3263/214 +f 697/3266/164 708/3652/213 696/1153/213 +f 703/3259/157 716/3653/211 715/3654/157 +f 701/1144/208 712/3655/159 700/3262/159 +f 697/1150/164 710/3656/212 709/3657/164 +f 705/1136/210 716/3658/211 704/3258/211 +f 695/1157/209 718/3659/158 706/3268/158 +f 702/1142/207 713/3660/208 701/3261/208 +f 699/1148/214 710/3661/212 698/3264/212 +f 706/3257/158 717/3662/210 705/1134/210 +f 738/1239/214 763/3289/212 739/1240/212 +f 724/3270/209 747/1190/213 723/1161/213 +f 719/3275/159 754/1205/208 730/1171/208 +f 737/1236/159 762/3290/214 738/1237/214 +f 723/3271/213 746/1193/164 722/1163/164 +f 730/1174/208 753/1208/207 729/1175/207 +f 736/1233/208 761/1186/159 737/1234/159 +f 722/3272/164 745/1194/212 721/1165/212 +f 729/1177/207 752/1211/157 728/1178/157 +f 735/1230/207 760/3280/208 736/1231/208 +f 721/3273/212 743/1199/214 720/1167/214 +f 742/1251/209 756/3285/158 731/1252/158 +f 731/1254/158 755/1201/210 732/1255/210 +f 725/3269/158 748/1185/209 724/1159/209 +f 739/1242/212 764/1213/164 740/1243/164 +f 732/1221/210 757/3283/211 733/1222/211 +f 726/3278/210 749/1220/158 725/1184/158 +f 740/1245/164 765/3287/213 741/1246/213 +f 733/1224/211 758/1195/157 734/1225/157 +f 727/3277/211 750/1217/210 726/1182/210 +f 741/1248/213 766/3286/209 742/1249/209 +f 720/3274/214 744/1200/159 719/1169/159 +f 734/1227/157 759/3281/207 735/1228/207 +f 728/1180/157 751/1212/211 727/1181/211 +f 824/1359/207 799/3293/157 800/1323/207 +f 817/1308/157 792/3300/211 816/1309/211 +f 831/3307/209 807/1335/158 832/1370/158 +f 810/1287/212 785/3295/214 809/1288/214 +f 824/3304/207 801/1322/208 825/1357/208 +f 818/1311/207 793/1342/157 817/1312/157 +f 811/1290/164 786/3294/212 810/1291/212 +f 825/3303/208 802/1319/159 826/1354/159 +f 819/1314/208 794/3298/207 818/1315/207 +f 812/1293/213 787/1324/164 811/1294/164 +f 826/3312/159 803/1350/214 827/1379/214 +f 820/1281/159 796/1336/208 819/1282/208 +f 809/1284/214 795/3296/159 820/1285/159 +f 830/3308/213 808/1340/209 831/1372/209 +f 816/1305/211 791/3301/210 815/1306/210 +f 823/1362/157 798/1326/211 799/1328/157 +f 829/3309/164 806/1341/213 830/1374/213 +f 815/1302/210 790/1351/158 814/1303/158 +f 821/1364/210 798/1331/211 822/1365/211 +f 829/1376/164 804/1344/212 805/1346/164 +f 814/1299/158 789/3291/209 813/1300/209 +f 832/3306/158 797/1334/210 821/1367/210 +f 827/3311/214 804/1349/212 828/1378/212 +f 813/1296/209 788/3292/213 812/1297/213 +f 846/1404/208 833/3663/159 834/3664/208 +f 852/1390/209 841/3665/213 853/3317/213 +f 849/1396/211 838/3666/210 850/3320/210 +f 856/1380/214 833/3667/159 845/3313/159 +f 847/3323/207 834/3668/208 835/3669/207 +f 854/1388/164 841/3670/213 842/3671/164 +f 850/1394/210 839/3672/158 851/3319/158 +f 847/1400/207 836/3673/157 848/3322/157 +f 854/3315/164 843/3674/212 855/1386/212 +f 851/1392/158 840/3675/209 852/3318/209 +f 848/1398/157 837/3676/211 849/3321/211 +f 855/3314/212 844/3677/214 856/1384/214 +f 872/1356/213 861/1391/209 860/1387/213 +f 880/1366/159 868/1403/208 879/1369/208 +f 869/1368/214 858/1383/212 857/1382/214 +f 877/1373/157 864/1397/211 876/1375/211 +f 874/1355/158 861/1391/209 873/1353/209 +f 870/1363/212 859/1385/164 858/1383/212 +f 878/1371/207 865/1399/157 877/1373/157 +f 874/1355/158 863/1395/210 862/1393/158 +f 871/3305/164 860/1387/213 859/1389/164 +f 879/1369/208 866/1401/207 878/1371/207 +f 869/1368/214 867/1381/159 880/1366/159 +f 876/1375/211 863/1395/210 875/1377/210 f 906/1449/159 907/1468/174 905/1467/159 f 908/1451/174 909/1470/164 907/1468/174 f 910/1453/164 911/1472/192 909/1470/164 @@ -9685,146 +9729,146 @@ f 914/1443/158 915/1459/165 913/1458/158 f 916/1440/165 917/1461/157 915/1459/165 f 918/1442/157 919/1463/166 917/1461/157 f 920/1446/166 905/1465/159 919/1463/166 -f 990/1535/167 991/1554/211 989/1553/167 -f 992/1539/211 993/1559/164 991/1554/211 -f 994/1541/164 995/1562/212 993/1559/164 -f 996/1543/212 997/1563/178 995/1562/212 -f 997/1547/178 1000/1527/213 999/1548/213 -f 999/1548/213 1002/1529/157 1001/1550/157 -f 1001/1550/157 1004/1532/214 1003/1551/214 -f 1003/1551/214 990/1535/167 989/1553/167 -f 1037/1556/179 1038/1611/215 1036/1608/179 -f 1039/3373/215 1040/1612/164 1038/1611/215 -f 1041/1593/164 1042/1614/216 1040/1612/164 -f 1043/1596/216 1044/1617/171 1042/1614/216 -f 1045/3371/171 1046/1603/217 1044/1602/171 -f 1046/1603/217 1049/1586/157 1048/1605/157 -f 1049/1586/157 1050/1607/218 1048/1605/157 -f 1050/1607/218 1037/1556/179 1036/1608/179 -f 935/3662/219 1064/3663/220 936/3664/220 -f 929/3665/184 1064/3663/220 1063/3666/184 -f 929/3667/184 1062/3668/221 930/3669/221 -f 930/3669/221 1061/3670/222 931/3671/222 -f 931/3671/222 1060/3672/223 932/3673/223 -f 932/3673/223 1059/3674/185 933/3675/185 -f 933/3675/185 1066/3676/224 934/3677/224 -f 934/3677/224 1065/3678/219 935/3662/219 -f 927/3679/225 988/3680/226 987/3681/225 -f 921/3682/182 988/3680/226 928/3683/226 -f 922/3684/227 981/3685/182 921/3686/182 -f 922/3684/227 983/3687/228 982/3688/227 -f 924/3689/229 983/3687/228 923/3690/228 -f 924/3689/229 985/3691/183 984/3692/229 -f 926/3693/230 985/3691/183 925/3694/183 -f 926/3693/230 987/3681/225 986/3695/230 -f 1035/3696/231 957/3697/180 964/3698/231 -f 957/3699/180 1029/3700/232 958/3701/232 -f 1029/3700/232 959/3702/233 958/3701/232 -f 1030/3703/233 960/3704/234 959/3702/233 -f 960/3704/234 1032/3705/181 961/3706/181 -f 1032/3705/181 962/3707/235 961/3706/181 -f 1033/3708/235 963/3709/236 962/3707/235 -f 1034/3710/236 964/3698/231 963/3709/236 -f 1009/3711/186 970/3712/237 969/3713/186 -f 1008/3714/238 969/3715/186 968/3716/238 -f 1007/3717/239 968/3716/238 967/3718/239 -f 1006/3719/240 967/3718/239 966/3720/240 -f 1005/3721/187 966/3720/240 965/3722/187 -f 1012/3723/241 965/3722/187 972/3724/241 -f 971/3725/242 1012/3723/241 972/3724/241 -f 1010/3726/237 971/3725/242 970/3712/237 -f 1016/3727/162 1056/3728/243 1017/3729/243 -f 1054/3730/244 1016/3731/162 1015/3732/244 -f 1014/3733/245 1054/3730/244 1015/3732/244 -f 1052/3734/246 1014/3733/245 1013/3735/246 -f 1018/3736/247 1058/3737/248 1019/3738/248 -f 1056/3728/243 1018/3736/247 1017/3729/243 -f 1333/1876/249 1396/3739/250 1332/1874/250 -f 1306/1886/251 1371/1953/159 1307/1885/159 -f 1334/1875/252 1397/3740/249 1333/1876/249 -f 1307/1887/159 1372/1956/253 1308/1890/253 -f 1335/1878/161 1398/3741/252 1334/1875/252 -f 1308/1890/253 1373/1958/254 1309/1893/254 -f 1336/1880/255 1399/3742/161 1335/1878/161 -f 1309/1893/254 1374/1960/256 1310/1892/256 -f 1283/1906/156 1347/1971/250 1284/1904/250 -f 1337/1882/257 1400/3743/255 1336/1880/255 -f 1310/1892/256 1375/1962/163 1311/1896/163 -f 1284/1904/250 1349/1974/249 1285/1907/249 -f 1338/1884/258 1401/3744/257 1337/1882/257 -f 1311/1896/163 1376/1964/259 1312/1899/259 -f 1285/1907/249 1350/1976/252 1286/1909/252 -f 1339/3416/158 1402/3745/258 1338/1884/258 -f 1312/1899/259 1377/1965/260 1313/1898/260 -f 1286/1909/252 1351/1978/161 1287/1911/161 -f 1340/1888/261 1403/3746/158 1339/1889/158 -f 1313/1898/260 1378/1967/262 1314/1900/262 -f 1287/1911/161 1352/1980/255 1288/1913/255 -f 1341/1891/263 1404/3747/261 1340/1888/261 -f 1314/1900/262 1348/1969/156 1283/1902/156 -f 1288/1913/255 1353/1982/257 1289/1915/257 -f 1342/1895/264 1405/3748/263 1341/1891/263 -f 1316/1908/265 1380/3749/155 1315/1905/155 -f 1289/1915/257 1354/1984/258 1290/1917/258 -f 1343/1894/160 1406/3750/264 1342/1895/264 -f 1317/1910/266 1379/3751/265 1316/1908/265 -f 1290/1917/258 1355/1986/158 1291/1919/158 -f 1344/1897/267 1407/3752/160 1343/1894/160 -f 1318/1912/268 1381/3753/266 1317/1910/266 -f 1291/1921/158 1356/1989/261 1292/1925/261 -f 1345/1901/269 1408/3754/267 1344/1897/267 -f 1319/1914/162 1382/3755/268 1318/1912/268 -f 1292/1925/261 1357/1990/263 1293/1924/263 -f 1346/1903/270 1409/3756/269 1345/1901/269 -f 1320/1916/271 1383/3757/162 1319/1914/162 -f 1293/1924/263 1358/1929/264 1294/1861/264 -f 1315/3417/155 1410/3758/270 1346/1903/270 -f 1321/1918/272 1384/3759/271 1320/1916/271 -f 1294/1861/264 1359/1928/160 1295/1859/160 -f 1322/1920/251 1385/3760/272 1321/1918/272 -f 1295/1859/160 1360/1931/267 1296/1862/267 -f 1323/3418/159 1386/3761/251 1322/1920/251 -f 1296/1862/267 1361/1933/269 1297/1864/269 -f 1324/1922/253 1387/3762/159 1323/1923/159 -f 1297/1864/269 1362/1935/270 1298/1866/270 -f 1325/1926/254 1388/3763/253 1324/1922/253 -f 1298/1866/270 1363/1937/155 1299/1868/155 -f 1326/1860/256 1389/3764/254 1325/1926/254 -f 1299/1872/155 1364/1939/265 1300/1870/265 -f 1327/1863/163 1390/3765/256 1326/1860/256 -f 1300/1870/265 1365/1942/266 1301/1873/266 -f 1328/1865/259 1391/3766/163 1327/1863/163 -f 1301/1873/266 1366/1944/268 1302/1877/268 -f 1329/1867/260 1392/3767/259 1328/1865/259 -f 1302/1877/268 1367/1946/162 1303/1879/162 -f 1330/1869/262 1393/3768/260 1329/1867/260 -f 1303/1879/162 1368/1948/271 1304/1881/271 -f 1331/3415/156 1394/3769/262 1330/1869/262 -f 1304/1881/271 1369/1950/272 1305/1883/272 -f 1332/1874/250 1395/3770/156 1331/1871/156 -f 1305/1883/272 1370/1952/251 1306/1886/251 -f 1764/3771/163 1780/3772/273 1765/3773/273 -f 1778/3774/274 1764/3775/163 1763/3776/274 -f 1762/3777/275 1778/3774/274 1763/3776/274 -f 1761/3778/276 1777/3779/275 1762/3777/275 -f 1766/3780/277 1782/3781/278 1767/3782/278 -f 1780/3772/273 1766/3780/277 1765/3773/273 -f 977/1511/169 1760/2488/279 978/1512/279 -f 1760/2488/279 979/1514/157 978/1512/279 -f 979/1514/157 1758/2485/280 980/1516/280 -f 1758/2485/280 973/1517/168 980/1516/280 -f 1757/2501/168 974/1521/281 973/1520/168 -f 974/1521/281 1755/2496/164 975/1523/164 -f 975/1523/164 1754/2491/282 976/1525/282 -f 976/1525/282 1753/2490/169 977/1511/169 -f 1775/2494/283 1024/1583/172 1025/1565/283 -f 1026/1567/157 1775/2494/283 1025/1565/283 -f 1027/1570/284 1774/2504/157 1026/1567/157 -f 1020/1574/170 1773/2502/284 1027/1570/284 -f 1771/2514/285 1020/1575/170 1021/1577/285 -f 1770/2511/164 1021/1577/285 1022/1579/164 -f 1769/3485/286 1022/1579/164 1023/1581/286 -f 1768/2493/172 1023/1581/286 1024/1583/172 +f 990/1535/167 991/1554/215 989/1553/167 +f 992/1539/215 993/1559/164 991/1554/215 +f 994/1541/164 995/1562/216 993/1559/164 +f 996/1543/216 997/1563/178 995/1562/216 +f 997/1547/178 1000/1527/217 999/1548/217 +f 999/1548/217 1002/1529/157 1001/1550/157 +f 1001/1550/157 1004/1532/218 1003/1551/218 +f 1003/1551/218 990/1535/167 989/1553/167 +f 1037/1556/179 1038/1611/219 1036/1608/179 +f 1039/3385/219 1040/1612/164 1038/1611/219 +f 1041/1593/164 1042/1614/220 1040/1612/164 +f 1043/1596/220 1044/1617/171 1042/1614/220 +f 1045/3383/171 1046/1603/221 1044/1602/171 +f 1046/1603/221 1049/1586/157 1048/1605/157 +f 1049/1586/157 1050/1607/222 1048/1605/157 +f 1050/1607/222 1037/1556/179 1036/1608/179 +f 935/3678/223 1064/3679/224 936/3680/224 +f 929/3681/184 1064/3679/224 1063/3682/184 +f 929/3683/184 1062/3684/225 930/3685/225 +f 930/3685/225 1061/3686/226 931/3687/226 +f 931/3687/226 1060/3688/227 932/3689/227 +f 932/3689/227 1059/3690/185 933/3691/185 +f 933/3691/185 1066/3692/228 934/3693/228 +f 934/3693/228 1065/3694/223 935/3678/223 +f 927/3695/229 988/3696/230 987/3697/229 +f 921/3698/182 988/3696/230 928/3699/230 +f 922/3700/231 981/3701/182 921/3702/182 +f 922/3700/231 983/3703/232 982/3704/231 +f 924/3705/233 983/3703/232 923/3706/232 +f 924/3705/233 985/3707/183 984/3708/233 +f 926/3709/234 985/3707/183 925/3710/183 +f 926/3709/234 987/3697/229 986/3711/234 +f 1035/3712/235 957/3713/180 964/3714/235 +f 957/3715/180 1029/3716/236 958/3717/236 +f 1029/3716/236 959/3718/237 958/3717/236 +f 1030/3719/237 960/3720/238 959/3718/237 +f 960/3720/238 1032/3721/181 961/3722/181 +f 1032/3721/181 962/3723/239 961/3722/181 +f 1033/3724/239 963/3725/240 962/3723/239 +f 1034/3726/240 964/3714/235 963/3725/240 +f 1009/3727/186 970/3728/241 969/3729/186 +f 1008/3730/242 969/3731/186 968/3732/242 +f 1007/3733/243 968/3732/242 967/3734/243 +f 1006/3735/244 967/3734/243 966/3736/244 +f 1005/3737/187 966/3736/244 965/3738/187 +f 1012/3739/245 965/3738/187 972/3740/245 +f 971/3741/246 1012/3739/245 972/3740/245 +f 1010/3742/241 971/3741/246 970/3728/241 +f 1016/3743/162 1056/3744/247 1017/3745/247 +f 1054/3746/248 1016/3747/162 1015/3748/248 +f 1014/3749/249 1054/3746/248 1015/3748/248 +f 1052/3750/250 1014/3749/249 1013/3751/250 +f 1018/3752/251 1058/3753/252 1019/3754/252 +f 1056/3744/247 1018/3752/251 1017/3745/247 +f 1333/1876/253 1396/3755/254 1332/1874/254 +f 1306/1886/255 1371/1953/159 1307/1885/159 +f 1334/1875/256 1397/3756/253 1333/1876/253 +f 1307/1887/159 1372/1956/257 1308/1890/257 +f 1335/1878/161 1398/3757/256 1334/1875/256 +f 1308/1890/257 1373/1958/258 1309/1893/258 +f 1336/1880/259 1399/3758/161 1335/1878/161 +f 1309/1893/258 1374/1960/260 1310/1892/260 +f 1283/1906/156 1347/1971/254 1284/1904/254 +f 1337/1882/261 1400/3759/259 1336/1880/259 +f 1310/1892/260 1375/1962/163 1311/1896/163 +f 1284/1904/254 1349/1974/253 1285/1907/253 +f 1338/1884/262 1401/3760/261 1337/1882/261 +f 1311/1896/163 1376/1964/263 1312/1899/263 +f 1285/1907/253 1350/1976/256 1286/1909/256 +f 1339/3428/158 1402/3761/262 1338/1884/262 +f 1312/1899/263 1377/1965/264 1313/1898/264 +f 1286/1909/256 1351/1978/161 1287/1911/161 +f 1340/1888/265 1403/3762/158 1339/1889/158 +f 1313/1898/264 1378/1967/266 1314/1900/266 +f 1287/1911/161 1352/1980/259 1288/1913/259 +f 1341/1891/267 1404/3763/265 1340/1888/265 +f 1314/1900/266 1348/1969/156 1283/1902/156 +f 1288/1913/259 1353/1982/261 1289/1915/261 +f 1342/1895/268 1405/3764/267 1341/1891/267 +f 1316/1908/269 1380/3765/155 1315/1905/155 +f 1289/1915/261 1354/1984/262 1290/1917/262 +f 1343/1894/160 1406/3766/268 1342/1895/268 +f 1317/1910/270 1379/3767/269 1316/1908/269 +f 1290/1917/262 1355/1986/158 1291/1919/158 +f 1344/1897/271 1407/3768/160 1343/1894/160 +f 1318/1912/272 1381/3769/270 1317/1910/270 +f 1291/1921/158 1356/1989/265 1292/1925/265 +f 1345/1901/273 1408/3770/271 1344/1897/271 +f 1319/1914/162 1382/3771/272 1318/1912/272 +f 1292/1925/265 1357/1990/267 1293/1924/267 +f 1346/1903/274 1409/3772/273 1345/1901/273 +f 1320/1916/275 1383/3773/162 1319/1914/162 +f 1293/1924/267 1358/1929/268 1294/1861/268 +f 1315/3429/155 1410/3774/274 1346/1903/274 +f 1321/1918/276 1384/3775/275 1320/1916/275 +f 1294/1861/268 1359/1928/160 1295/1859/160 +f 1322/1920/255 1385/3776/276 1321/1918/276 +f 1295/1859/160 1360/1931/271 1296/1862/271 +f 1323/3430/159 1386/3777/255 1322/1920/255 +f 1296/1862/271 1361/1933/273 1297/1864/273 +f 1324/1922/257 1387/3778/159 1323/1923/159 +f 1297/1864/273 1362/1935/274 1298/1866/274 +f 1325/1926/258 1388/3779/257 1324/1922/257 +f 1298/1866/274 1363/1937/155 1299/1868/155 +f 1326/1860/260 1389/3780/258 1325/1926/258 +f 1299/1872/155 1364/1939/269 1300/1870/269 +f 1327/1863/163 1390/3781/260 1326/1860/260 +f 1300/1870/269 1365/1942/270 1301/1873/270 +f 1328/1865/263 1391/3782/163 1327/1863/163 +f 1301/1873/270 1366/1944/272 1302/1877/272 +f 1329/1867/264 1392/3783/263 1328/1865/263 +f 1302/1877/272 1367/1946/162 1303/1879/162 +f 1330/1869/266 1393/3784/264 1329/1867/264 +f 1303/1879/162 1368/1948/275 1304/1881/275 +f 1331/3427/156 1394/3785/266 1330/1869/266 +f 1304/1881/275 1369/1950/276 1305/1883/276 +f 1332/1874/254 1395/3786/156 1331/1871/156 +f 1305/1883/276 1370/1952/255 1306/1886/255 +f 1764/3787/163 1780/3788/277 1765/3789/277 +f 1778/3790/278 1764/3791/163 1763/3792/278 +f 1762/3793/279 1778/3790/278 1763/3792/278 +f 1761/3794/280 1777/3795/279 1762/3793/279 +f 1766/3796/281 1782/3797/282 1767/3798/282 +f 1780/3788/277 1766/3796/281 1765/3789/277 +f 977/1511/169 1760/2488/283 978/1512/283 +f 1760/2488/283 979/1514/157 978/1512/283 +f 979/1514/157 1758/2485/284 980/1516/284 +f 1758/2485/284 973/1517/168 980/1516/284 +f 1757/2501/168 974/1521/285 973/1520/168 +f 974/1521/285 1755/2496/164 975/1523/164 +f 975/1523/164 1754/2491/286 976/1525/286 +f 976/1525/286 1753/2490/169 977/1511/169 +f 1775/2494/287 1024/1583/172 1025/1565/287 +f 1026/1567/157 1775/2494/287 1025/1565/287 +f 1027/1570/288 1774/2504/157 1026/1567/157 +f 1020/1574/170 1773/2502/288 1027/1570/288 +f 1771/2514/289 1020/1575/170 1021/1577/289 +f 1770/2511/164 1021/1577/289 1022/1579/164 +f 1769/3497/290 1022/1579/164 1023/1581/290 +f 1768/2493/172 1023/1581/290 1024/1583/172 f 1986/2805/158 1987/2824/192 1985/2823/158 f 1988/2807/192 1989/2826/164 1987/2824/192 f 1990/2809/164 1991/2828/174 1989/2826/164 @@ -9833,178 +9877,178 @@ f 1993/2814/159 1996/2796/166 1995/2815/166 f 1995/2815/166 1998/2798/157 1997/2817/157 f 1998/2798/157 1999/2819/165 1997/2817/157 f 2000/2802/165 1985/2821/158 1999/2819/165 -f 2050/2855/178 2051/2875/212 2049/2874/178 -f 2052/2859/212 2053/2881/164 2051/2875/212 -f 2054/2861/164 2055/2882/211 2053/2881/164 -f 2056/2862/211 2057/2884/167 2055/2882/211 -f 2058/3566/167 2059/2869/214 2057/2868/167 -f 2060/2847/214 2061/2871/157 2059/2869/214 -f 2061/2871/157 2064/2852/213 2063/2872/213 -f 2063/2872/213 2050/2855/178 2049/2874/178 -f 2096/2929/171 2099/2914/216 2098/2932/216 -f 2099/2914/216 2100/2933/164 2098/2932/216 -f 2101/2916/164 2102/2935/215 2100/2933/164 -f 2103/2917/215 2104/2937/179 2102/2935/215 -f 2105/3587/179 2106/2924/218 2104/2923/179 -f 2107/2905/218 2108/2926/157 2106/2924/218 -f 2108/2926/157 2111/2878/217 2110/2927/217 -f 2110/2927/217 2097/2877/171 2096/2929/171 -f 2015/3783/287 2124/3784/288 2016/3785/288 -f 2009/3786/185 2124/3784/288 2123/3787/185 -f 2009/3788/185 2122/3789/289 2010/3790/289 -f 2011/3791/290 2122/3789/289 2121/3792/290 -f 2011/3791/290 2120/3793/291 2012/3794/291 -f 2012/3794/291 2119/3795/184 2013/3796/184 -f 2013/3796/184 2126/3797/292 2014/3798/292 -f 2014/3798/292 2125/3799/287 2015/3783/287 -f 2008/3800/293 2047/3801/294 2007/3802/294 -f 2001/3803/183 2048/3804/293 2008/3800/293 -f 2001/3805/183 2042/3806/295 2041/3807/183 -f 2002/3808/295 2043/3809/296 2042/3806/295 -f 2004/3810/297 2043/3809/296 2003/3811/296 -f 2004/3810/297 2045/3812/182 2044/3813/297 -f 2006/3814/298 2045/3812/182 2005/3815/182 -f 2006/3814/298 2047/3801/294 2046/3816/298 -f 2095/3817/299 2017/3818/181 2024/3819/299 -f 2017/3820/181 2089/3821/300 2018/3822/300 -f 2089/3821/300 2019/3823/301 2018/3822/300 -f 2090/3824/301 2020/3825/302 2019/3823/301 -f 2020/3825/302 2092/3826/180 2021/3827/180 -f 2092/3826/180 2022/3828/303 2021/3827/180 -f 2093/3829/303 2023/3830/304 2022/3828/303 -f 2023/3830/304 2095/3817/299 2024/3819/299 -f 2029/3831/187 2070/3832/305 2030/3833/305 -f 2068/3834/306 2029/3835/187 2028/3836/306 -f 2027/3837/307 2068/3834/306 2028/3836/306 -f 2066/3838/308 2027/3837/307 2026/3839/308 -f 2065/3840/186 2026/3839/308 2025/3841/186 -f 2072/3842/309 2025/3841/186 2032/3843/309 -f 2031/3844/310 2072/3842/309 2032/3843/309 -f 2070/3832/305 2031/3844/310 2030/3833/305 -f 2076/3845/161 2116/3846/311 2077/3847/311 -f 2114/3848/312 2076/3849/161 2075/3850/312 -f 2074/3851/313 2114/3848/312 2075/3850/312 -f 2112/3852/314 2074/3851/313 2073/3853/314 -f 2078/3854/315 2118/3855/316 2079/3856/316 -f 2116/3846/311 2078/3854/315 2077/3847/311 -f 2299/3857/160 2285/3858/317 2284/3859/160 -f 2298/3860/318 2284/3861/160 2283/3862/318 -f 2297/3863/319 2283/3862/318 2282/3864/319 -f 2296/3865/320 2282/3864/319 2281/3866/320 -f 2286/3867/321 2302/3868/322 2287/3869/322 -f 2300/3870/317 2286/3867/321 2285/3858/317 -f 2037/2831/168 2280/3196/280 2038/2832/280 -f 2280/3196/280 2039/2834/157 2038/2832/280 -f 2279/3194/157 2040/2835/279 2039/2834/157 -f 2278/3192/279 2033/2838/169 2040/2835/279 -f 2277/3207/169 2034/2841/282 2033/2840/169 -f 2034/2841/282 2275/3203/164 2035/2843/164 -f 2035/2843/164 2274/3198/281 2036/2845/281 -f 2274/3198/281 2037/2831/168 2036/2845/281 -f 2295/3201/284 2084/2889/170 2085/2886/284 -f 2086/2888/157 2295/3201/284 2085/2886/284 -f 2087/2891/283 2294/3211/157 2086/2888/157 -f 2080/2895/172 2293/3209/283 2087/2891/283 -f 2291/3222/286 2080/2896/172 2081/2898/286 -f 2290/3219/164 2081/2898/286 2082/2899/164 -f 2289/3626/285 2082/2899/164 2083/2903/285 -f 2288/3200/170 2083/2903/285 2084/2889/170 -f 675/1162/203 687/1141/203 688/1143/204 -f 682/1172/205 694/1156/205 684/1133/158 -f 672/1168/206 683/1135/206 685/1137/207 -f 680/3264/164 679/1179/208 691/1149/208 -f 676/1160/204 688/1143/204 689/1145/159 -f 673/1166/207 685/1137/207 686/1139/157 -f 681/1173/209 680/1176/164 692/1152/164 -f 678/1183/210 677/1158/159 689/1145/159 -f 674/1164/157 686/1139/157 687/1141/203 -f 681/1173/209 693/1154/209 694/1156/205 -f 671/1170/158 684/1133/158 683/1135/206 -f 679/1179/208 678/1183/210 690/1147/210 -f 696/3255/209 708/3871/209 707/3633/205 -f 703/1140/157 715/3872/157 714/3634/203 -f 700/1146/159 712/3873/159 711/3635/210 -f 697/3254/164 709/3874/164 708/3636/209 -f 703/3247/157 704/1138/207 716/3637/207 -f 701/1144/204 713/3875/204 712/3639/159 -f 697/1150/164 698/3253/208 710/3640/208 -f 705/1136/206 717/3876/206 716/3642/207 -f 695/1157/205 707/3877/205 718/3643/158 -f 702/1142/203 714/3878/203 713/3644/204 -f 699/1148/210 711/3879/210 710/3645/208 -f 706/3245/158 718/3880/158 717/3646/206 -f 738/1239/210 762/1216/210 763/3277/208 -f 724/3258/205 748/1188/205 747/1190/209 -f 719/3263/159 744/1203/159 754/1205/204 -f 737/1236/159 761/1219/159 762/3278/210 -f 723/3259/209 747/1191/209 746/1193/164 -f 730/1174/204 754/1206/204 753/1208/203 -f 736/1233/204 760/1187/204 761/1186/159 -f 722/3260/164 746/3270/164 745/1194/208 -f 729/1177/203 753/1209/203 752/1211/157 -f 735/1230/203 759/1189/203 760/3268/204 -f 721/3261/208 745/1197/208 743/1199/210 -f 742/1251/205 766/1204/205 756/3273/158 -f 731/1254/158 756/1202/158 755/1201/206 -f 725/3257/158 749/3267/158 748/1185/205 -f 739/1242/208 763/1214/208 764/1213/164 -f 732/1221/206 755/1198/206 757/3271/207 -f 726/3266/206 750/1218/206 749/1220/158 -f 740/1245/164 764/1210/164 765/3275/209 -f 733/1224/207 757/1196/207 758/1195/157 -f 727/3265/207 751/1215/207 750/1217/206 -f 741/1248/209 765/1207/209 766/3274/205 -f 720/3262/210 743/3272/210 744/1200/159 -f 734/1227/157 758/1192/157 759/3269/203 -f 728/1180/157 752/3276/157 751/1212/207 -f 824/1359/203 823/1358/157 799/3281/157 -f 817/1308/157 793/1345/157 792/3288/207 -f 831/3295/205 808/3285/205 807/1335/158 -f 810/1287/208 786/1330/208 785/3283/210 -f 824/3292/203 800/1320/203 801/1322/204 -f 818/1311/203 794/1343/203 793/1342/157 -f 811/1290/164 787/1327/164 786/3282/208 -f 825/3291/204 801/1317/204 802/1319/159 -f 819/1314/204 796/1339/204 794/3286/203 -f 812/1293/209 788/1325/209 787/1324/164 -f 826/3300/159 802/3290/159 803/1350/210 -f 820/1281/159 795/1337/159 796/1336/204 -f 809/1284/210 785/1333/210 795/3284/159 -f 830/3296/209 806/1338/209 808/1340/205 -f 816/1305/207 792/1348/207 791/3289/206 -f 823/1362/157 822/1361/207 798/1326/207 -f 829/3297/164 805/3287/164 806/1341/209 -f 815/1302/206 791/1352/206 790/1351/158 -f 821/1364/206 797/1329/206 798/1331/207 -f 829/1376/164 828/3298/208 804/1344/208 -f 814/1299/158 790/1318/158 789/3279/205 -f 832/3294/158 807/1332/158 797/1334/206 -f 827/3299/210 803/1347/210 804/1349/208 -f 813/1296/205 789/1321/205 788/3280/209 -f 846/1404/204 845/3312/159 833/3647/159 -f 852/1390/205 840/3881/205 841/3649/209 -f 849/1396/207 837/3882/207 838/3650/206 -f 856/1380/210 844/3883/210 833/3651/159 -f 847/3311/203 846/1402/204 834/3652/204 -f 854/1388/164 853/3304/209 841/3654/209 -f 850/1394/206 838/3884/206 839/3656/158 -f 847/1400/203 835/3885/203 836/3657/157 -f 854/3303/164 842/3886/164 843/3658/208 -f 851/1392/158 839/3887/158 840/3659/205 -f 848/1398/157 836/3888/157 837/3660/207 -f 855/3302/208 843/3889/208 844/3661/210 -f 872/1356/209 873/1353/205 861/1391/205 -f 880/1366/159 867/1381/159 868/1403/204 -f 869/1368/210 870/1363/208 858/1383/208 -f 877/1373/157 865/1399/157 864/1397/207 -f 874/1355/158 862/1393/158 861/1391/205 -f 870/1363/208 871/1360/164 859/1385/164 -f 878/1371/203 866/1401/203 865/1399/157 -f 874/1355/158 875/1377/206 863/1395/206 -f 871/3293/164 872/1356/209 860/1387/209 -f 879/1369/204 868/1403/204 866/1401/203 -f 869/1368/210 857/1382/210 867/1381/159 -f 876/1375/207 864/1397/207 863/1395/206 +f 2050/2855/178 2051/2875/216 2049/2874/178 +f 2052/2859/216 2053/2881/164 2051/2875/216 +f 2054/2861/164 2055/2882/215 2053/2881/164 +f 2056/2862/215 2057/2884/167 2055/2882/215 +f 2058/3578/167 2059/2869/218 2057/2868/167 +f 2060/2847/218 2061/2871/157 2059/2869/218 +f 2061/2871/157 2064/2852/217 2063/2872/217 +f 2063/2872/217 2050/2855/178 2049/2874/178 +f 2096/2929/171 2099/2914/220 2098/2932/220 +f 2099/2914/220 2100/2933/164 2098/2932/220 +f 2101/2916/164 2102/2935/219 2100/2933/164 +f 2103/2917/219 2104/2937/179 2102/2935/219 +f 2105/3599/179 2106/2924/222 2104/2923/179 +f 2107/2905/222 2108/2926/157 2106/2924/222 +f 2108/2926/157 2111/2878/221 2110/2927/221 +f 2110/2927/221 2097/2877/171 2096/2929/171 +f 2015/3799/291 2124/3800/292 2016/3801/292 +f 2009/3802/185 2124/3800/292 2123/3803/185 +f 2009/3804/185 2122/3805/293 2010/3806/293 +f 2011/3807/294 2122/3805/293 2121/3808/294 +f 2011/3807/294 2120/3809/295 2012/3810/295 +f 2012/3810/295 2119/3811/184 2013/3812/184 +f 2013/3812/184 2126/3813/296 2014/3814/296 +f 2014/3814/296 2125/3815/291 2015/3799/291 +f 2008/3816/297 2047/3817/298 2007/3818/298 +f 2001/3819/183 2048/3820/297 2008/3816/297 +f 2001/3821/183 2042/3822/299 2041/3823/183 +f 2002/3824/299 2043/3825/300 2042/3822/299 +f 2004/3826/301 2043/3825/300 2003/3827/300 +f 2004/3826/301 2045/3828/182 2044/3829/301 +f 2006/3830/302 2045/3828/182 2005/3831/182 +f 2006/3830/302 2047/3817/298 2046/3832/302 +f 2095/3833/303 2017/3834/181 2024/3835/303 +f 2017/3836/181 2089/3837/304 2018/3838/304 +f 2089/3837/304 2019/3839/305 2018/3838/304 +f 2090/3840/305 2020/3841/306 2019/3839/305 +f 2020/3841/306 2092/3842/180 2021/3843/180 +f 2092/3842/180 2022/3844/307 2021/3843/180 +f 2093/3845/307 2023/3846/308 2022/3844/307 +f 2023/3846/308 2095/3833/303 2024/3835/303 +f 2029/3847/187 2070/3848/309 2030/3849/309 +f 2068/3850/310 2029/3851/187 2028/3852/310 +f 2027/3853/311 2068/3850/310 2028/3852/310 +f 2066/3854/312 2027/3853/311 2026/3855/312 +f 2065/3856/186 2026/3855/312 2025/3857/186 +f 2072/3858/313 2025/3857/186 2032/3859/313 +f 2031/3860/314 2072/3858/313 2032/3859/313 +f 2070/3848/309 2031/3860/314 2030/3849/309 +f 2076/3861/161 2116/3862/315 2077/3863/315 +f 2114/3864/316 2076/3865/161 2075/3866/316 +f 2074/3867/317 2114/3864/316 2075/3866/316 +f 2112/3868/318 2074/3867/317 2073/3869/318 +f 2078/3870/319 2118/3871/320 2079/3872/320 +f 2116/3862/315 2078/3870/319 2077/3863/315 +f 2299/3873/160 2285/3874/321 2284/3875/160 +f 2298/3876/322 2284/3877/160 2283/3878/322 +f 2297/3879/323 2283/3878/322 2282/3880/323 +f 2296/3881/324 2282/3880/323 2281/3882/324 +f 2286/3883/325 2302/3884/326 2287/3885/326 +f 2300/3886/321 2286/3883/325 2285/3874/321 +f 2037/2831/168 2280/3196/284 2038/2832/284 +f 2280/3196/284 2039/2834/157 2038/2832/284 +f 2279/3194/157 2040/2835/283 2039/2834/157 +f 2278/3192/283 2033/2838/169 2040/2835/283 +f 2277/3207/169 2034/2841/286 2033/2840/169 +f 2034/2841/286 2275/3203/164 2035/2843/164 +f 2035/2843/164 2274/3198/285 2036/2845/285 +f 2274/3198/285 2037/2831/168 2036/2845/285 +f 2295/3201/288 2084/2889/170 2085/2886/288 +f 2086/2888/157 2295/3201/288 2085/2886/288 +f 2087/2891/287 2294/3211/157 2086/2888/157 +f 2080/2895/172 2293/3209/287 2087/2891/287 +f 2291/3222/290 2080/2896/172 2081/2898/290 +f 2290/3219/164 2081/2898/290 2082/2899/164 +f 2289/3638/289 2082/2899/164 2083/2903/289 +f 2288/3200/170 2083/2903/289 2084/2889/170 +f 675/1162/207 687/1141/207 688/1143/208 +f 682/1172/209 694/1156/209 684/1133/158 +f 672/1168/210 683/1135/210 685/1137/211 +f 680/3276/164 679/1179/212 691/1149/212 +f 676/1160/208 688/1143/208 689/1145/159 +f 673/1166/211 685/1137/211 686/1139/157 +f 681/1173/213 680/1176/164 692/1152/164 +f 678/1183/214 677/1158/159 689/1145/159 +f 674/1164/157 686/1139/157 687/1141/207 +f 681/1173/213 693/1154/213 694/1156/209 +f 671/1170/158 684/1133/158 683/1135/210 +f 679/1179/212 678/1183/214 690/1147/214 +f 696/3267/213 708/3887/213 707/3649/209 +f 703/1140/157 715/3888/157 714/3650/207 +f 700/1146/159 712/3889/159 711/3651/214 +f 697/3266/164 709/3890/164 708/3652/213 +f 703/3259/157 704/1138/211 716/3653/211 +f 701/1144/208 713/3891/208 712/3655/159 +f 697/1150/164 698/3265/212 710/3656/212 +f 705/1136/210 717/3892/210 716/3658/211 +f 695/1157/209 707/3893/209 718/3659/158 +f 702/1142/207 714/3894/207 713/3660/208 +f 699/1148/214 711/3895/214 710/3661/212 +f 706/3257/158 718/3896/158 717/3662/210 +f 738/1239/214 762/1216/214 763/3289/212 +f 724/3270/209 748/1188/209 747/1190/213 +f 719/3275/159 744/1203/159 754/1205/208 +f 737/1236/159 761/1219/159 762/3290/214 +f 723/3271/213 747/1191/213 746/1193/164 +f 730/1174/208 754/1206/208 753/1208/207 +f 736/1233/208 760/1187/208 761/1186/159 +f 722/3272/164 746/3282/164 745/1194/212 +f 729/1177/207 753/1209/207 752/1211/157 +f 735/1230/207 759/1189/207 760/3280/208 +f 721/3273/212 745/1197/212 743/1199/214 +f 742/1251/209 766/1204/209 756/3285/158 +f 731/1254/158 756/1202/158 755/1201/210 +f 725/3269/158 749/3279/158 748/1185/209 +f 739/1242/212 763/1214/212 764/1213/164 +f 732/1221/210 755/1198/210 757/3283/211 +f 726/3278/210 750/1218/210 749/1220/158 +f 740/1245/164 764/1210/164 765/3287/213 +f 733/1224/211 757/1196/211 758/1195/157 +f 727/3277/211 751/1215/211 750/1217/210 +f 741/1248/213 765/1207/213 766/3286/209 +f 720/3274/214 743/3284/214 744/1200/159 +f 734/1227/157 758/1192/157 759/3281/207 +f 728/1180/157 752/3288/157 751/1212/211 +f 824/1359/207 823/1358/157 799/3293/157 +f 817/1308/157 793/1345/157 792/3300/211 +f 831/3307/209 808/3297/209 807/1335/158 +f 810/1287/212 786/1330/212 785/3295/214 +f 824/3304/207 800/1320/207 801/1322/208 +f 818/1311/207 794/1343/207 793/1342/157 +f 811/1290/164 787/1327/164 786/3294/212 +f 825/3303/208 801/1317/208 802/1319/159 +f 819/1314/208 796/1339/208 794/3298/207 +f 812/1293/213 788/1325/213 787/1324/164 +f 826/3312/159 802/3302/159 803/1350/214 +f 820/1281/159 795/1337/159 796/1336/208 +f 809/1284/214 785/1333/214 795/3296/159 +f 830/3308/213 806/1338/213 808/1340/209 +f 816/1305/211 792/1348/211 791/3301/210 +f 823/1362/157 822/1361/211 798/1326/211 +f 829/3309/164 805/3299/164 806/1341/213 +f 815/1302/210 791/1352/210 790/1351/158 +f 821/1364/210 797/1329/210 798/1331/211 +f 829/1376/164 828/3310/212 804/1344/212 +f 814/1299/158 790/1318/158 789/3291/209 +f 832/3306/158 807/1332/158 797/1334/210 +f 827/3311/214 803/1347/214 804/1349/212 +f 813/1296/209 789/1321/209 788/3292/213 +f 846/1404/208 845/3324/159 833/3663/159 +f 852/1390/209 840/3897/209 841/3665/213 +f 849/1396/211 837/3898/211 838/3666/210 +f 856/1380/214 844/3899/214 833/3667/159 +f 847/3323/207 846/1402/208 834/3668/208 +f 854/1388/164 853/3316/213 841/3670/213 +f 850/1394/210 838/3900/210 839/3672/158 +f 847/1400/207 835/3901/207 836/3673/157 +f 854/3315/164 842/3902/164 843/3674/212 +f 851/1392/158 839/3903/158 840/3675/209 +f 848/1398/157 836/3904/157 837/3676/211 +f 855/3314/212 843/3905/212 844/3677/214 +f 872/1356/213 873/1353/209 861/1391/209 +f 880/1366/159 867/1381/159 868/1403/208 +f 869/1368/214 870/1363/212 858/1383/212 +f 877/1373/157 865/1399/157 864/1397/211 +f 874/1355/158 862/1393/158 861/1391/209 +f 870/1363/212 871/1360/164 859/1385/164 +f 878/1371/207 866/1401/207 865/1399/157 +f 874/1355/158 875/1377/210 863/1395/210 +f 871/3305/164 872/1356/213 860/1387/213 +f 879/1369/208 868/1403/208 866/1401/207 +f 869/1368/214 857/1382/214 867/1381/159 +f 876/1375/211 864/1397/211 863/1395/210 f 906/1449/159 908/1451/174 907/1468/174 f 908/1451/174 910/1453/164 909/1470/164 f 910/1453/164 912/1455/192 911/1472/192 @@ -10013,146 +10057,146 @@ f 914/1443/158 916/1440/165 915/1459/165 f 916/1440/165 918/1442/157 917/1461/157 f 918/1442/157 920/1446/166 919/1463/166 f 920/1446/166 906/1448/159 905/1465/159 -f 990/1535/167 992/1539/211 991/1554/211 -f 992/1539/211 994/1541/164 993/1559/164 -f 994/1541/164 996/1543/212 995/1562/212 -f 996/1543/212 998/1545/178 997/1563/178 -f 997/1547/178 998/3349/178 1000/1527/213 -f 999/1548/213 1000/1527/213 1002/1529/157 -f 1001/1550/157 1002/1529/157 1004/1532/214 -f 1003/1551/214 1004/1532/214 990/1535/167 -f 1037/1556/179 1039/3373/215 1038/1611/215 -f 1039/3373/215 1041/1593/164 1040/1612/164 -f 1041/1593/164 1043/1596/216 1042/1614/216 -f 1043/1596/216 1045/1600/171 1044/1617/171 -f 1045/3371/171 1047/1584/217 1046/1603/217 -f 1046/1603/217 1047/1584/217 1049/1586/157 -f 1049/1586/157 1051/1557/218 1050/1607/218 -f 1050/1607/218 1051/1557/218 1037/1556/179 -f 935/3662/219 1065/3678/219 1064/3663/220 -f 929/3665/184 936/3664/220 1064/3663/220 -f 929/3667/184 1063/3890/184 1062/3668/221 -f 930/3669/221 1062/3668/221 1061/3670/222 -f 931/3671/222 1061/3670/222 1060/3672/223 -f 932/3673/223 1060/3672/223 1059/3674/185 -f 933/3675/185 1059/3674/185 1066/3676/224 -f 934/3677/224 1066/3676/224 1065/3678/219 -f 927/3679/225 928/3683/226 988/3680/226 -f 921/3682/182 981/3891/182 988/3680/226 -f 922/3684/227 982/3688/227 981/3685/182 -f 922/3684/227 923/3690/228 983/3687/228 -f 924/3689/229 984/3692/229 983/3687/228 -f 924/3689/229 925/3694/183 985/3691/183 -f 926/3693/230 986/3695/230 985/3691/183 -f 926/3693/230 927/3679/225 987/3681/225 -f 1035/3696/231 1028/3892/180 957/3697/180 -f 957/3699/180 1028/3893/180 1029/3700/232 -f 1029/3700/232 1030/3703/233 959/3702/233 -f 1030/3703/233 1031/3894/234 960/3704/234 -f 960/3704/234 1031/3894/234 1032/3705/181 -f 1032/3705/181 1033/3708/235 962/3707/235 -f 1033/3708/235 1034/3710/236 963/3709/236 -f 1034/3710/236 1035/3696/231 964/3698/231 -f 1009/3711/186 1010/3726/237 970/3712/237 -f 1008/3714/238 1009/3895/186 969/3715/186 -f 1007/3717/239 1008/3714/238 968/3716/238 -f 1006/3719/240 1007/3717/239 967/3718/239 -f 1005/3721/187 1006/3719/240 966/3720/240 -f 1012/3723/241 1005/3721/187 965/3722/187 -f 971/3725/242 1011/3896/242 1012/3723/241 -f 1010/3726/237 1011/3896/242 971/3725/242 -f 1016/3727/162 1055/3897/162 1056/3728/243 -f 1054/3730/244 1055/3898/162 1016/3731/162 -f 1014/3733/245 1053/3899/245 1054/3730/244 -f 1052/3734/246 1053/3899/245 1014/3733/245 -f 1018/3736/247 1057/3900/247 1058/3737/248 -f 1056/3728/243 1057/3900/247 1018/3736/247 -f 1333/1876/249 1397/3740/249 1396/3739/250 -f 1306/1886/251 1370/1952/251 1371/1953/159 -f 1334/1875/252 1398/3741/252 1397/3740/249 -f 1307/1887/159 1371/1954/159 1372/1956/253 -f 1335/1878/161 1399/3742/161 1398/3741/252 -f 1308/1890/253 1372/1956/253 1373/1958/254 -f 1336/1880/255 1400/3743/255 1399/3742/161 -f 1309/1893/254 1373/1958/254 1374/1960/256 -f 1283/1906/156 1348/1972/156 1347/1971/250 -f 1337/1882/257 1401/3744/257 1400/3743/255 -f 1310/1892/256 1374/1960/256 1375/1962/163 -f 1284/1904/250 1347/1971/250 1349/1974/249 -f 1338/1884/258 1402/3745/258 1401/3744/257 -f 1311/1896/163 1375/1962/163 1376/1964/259 -f 1285/1907/249 1349/1974/249 1350/1976/252 -f 1339/3416/158 1403/3901/158 1402/3745/258 -f 1312/1899/259 1376/1964/259 1377/1965/260 -f 1286/1909/252 1350/1976/252 1351/1978/161 -f 1340/1888/261 1404/3747/261 1403/3746/158 -f 1313/1898/260 1377/1965/260 1378/1967/262 -f 1287/1911/161 1351/1978/161 1352/1980/255 -f 1341/1891/263 1405/3748/263 1404/3747/261 -f 1314/1900/262 1378/1967/262 1348/1969/156 -f 1288/1913/255 1352/1980/255 1353/1982/257 -f 1342/1895/264 1406/3750/264 1405/3748/263 -f 1316/1908/265 1379/3751/265 1380/3749/155 -f 1289/1915/257 1353/1982/257 1354/1984/258 -f 1343/1894/160 1407/3752/160 1406/3750/264 -f 1317/1910/266 1381/3753/266 1379/3751/265 -f 1290/1917/258 1354/1984/258 1355/1986/158 -f 1344/1897/267 1408/3754/267 1407/3752/160 -f 1318/1912/268 1382/3755/268 1381/3753/266 -f 1291/1921/158 1355/1987/158 1356/1989/261 -f 1345/1901/269 1409/3756/269 1408/3754/267 -f 1319/1914/162 1383/3757/162 1382/3755/268 -f 1292/1925/261 1356/1989/261 1357/1990/263 -f 1346/1903/270 1410/3758/270 1409/3756/269 -f 1320/1916/271 1384/3759/271 1383/3757/162 -f 1293/1924/263 1357/1990/263 1358/1929/264 -f 1315/3417/155 1380/3902/155 1410/3758/270 -f 1321/1918/272 1385/3760/272 1384/3759/271 -f 1294/1861/264 1358/1929/264 1359/1928/160 -f 1322/1920/251 1386/3761/251 1385/3760/272 -f 1295/1859/160 1359/1928/160 1360/1931/267 -f 1323/3418/159 1387/3903/159 1386/3761/251 -f 1296/1862/267 1360/1931/267 1361/1933/269 -f 1324/1922/253 1388/3763/253 1387/3762/159 -f 1297/1864/269 1361/1933/269 1362/1935/270 -f 1325/1926/254 1389/3764/254 1388/3763/253 -f 1298/1866/270 1362/1935/270 1363/1937/155 -f 1326/1860/256 1390/3765/256 1389/3764/254 -f 1299/1872/155 1363/1940/155 1364/1939/265 -f 1327/1863/163 1391/3766/163 1390/3765/256 -f 1300/1870/265 1364/1939/265 1365/1942/266 -f 1328/1865/259 1392/3767/259 1391/3766/163 -f 1301/1873/266 1365/1942/266 1366/1944/268 -f 1329/1867/260 1393/3768/260 1392/3767/259 -f 1302/1877/268 1366/1944/268 1367/1946/162 -f 1330/1869/262 1394/3769/262 1393/3768/260 -f 1303/1879/162 1367/1946/162 1368/1948/271 -f 1331/3415/156 1395/3904/156 1394/3769/262 -f 1304/1881/271 1368/1948/271 1369/1950/272 -f 1332/1874/250 1396/3739/250 1395/3770/156 -f 1305/1883/272 1369/1950/272 1370/1952/251 -f 1764/3771/163 1779/3905/163 1780/3772/273 -f 1778/3774/274 1779/3906/163 1764/3775/163 -f 1762/3777/275 1777/3779/275 1778/3774/274 -f 1761/3778/276 1776/3907/276 1777/3779/275 -f 1766/3780/277 1781/3908/277 1782/3781/278 -f 1780/3772/273 1781/3908/277 1766/3780/277 -f 977/1511/169 1753/2490/169 1760/2488/279 -f 1760/2488/279 1759/2487/157 979/1514/157 -f 979/1514/157 1759/2487/157 1758/2485/280 -f 1758/2485/280 1757/2484/168 973/1517/168 -f 1757/2501/168 1756/2498/281 974/1521/281 -f 974/1521/281 1756/2498/281 1755/2496/164 -f 975/1523/164 1755/2496/164 1754/2491/282 -f 976/1525/282 1754/2491/282 1753/2490/169 -f 1775/2494/283 1768/2493/172 1024/1583/172 -f 1026/1567/157 1774/2504/157 1775/2494/283 -f 1027/1570/284 1773/2502/284 1774/2504/157 -f 1020/1574/170 1772/3483/170 1773/2502/284 -f 1771/2514/285 1772/2518/170 1020/1575/170 -f 1770/2511/164 1771/2514/285 1021/1577/285 -f 1769/3485/286 1770/2511/164 1022/1579/164 -f 1768/2493/172 1769/3485/286 1023/1581/286 +f 990/1535/167 992/1539/215 991/1554/215 +f 992/1539/215 994/1541/164 993/1559/164 +f 994/1541/164 996/1543/216 995/1562/216 +f 996/1543/216 998/1545/178 997/1563/178 +f 997/1547/178 998/3361/178 1000/1527/217 +f 999/1548/217 1000/1527/217 1002/1529/157 +f 1001/1550/157 1002/1529/157 1004/1532/218 +f 1003/1551/218 1004/1532/218 990/1535/167 +f 1037/1556/179 1039/3385/219 1038/1611/219 +f 1039/3385/219 1041/1593/164 1040/1612/164 +f 1041/1593/164 1043/1596/220 1042/1614/220 +f 1043/1596/220 1045/1600/171 1044/1617/171 +f 1045/3383/171 1047/1584/221 1046/1603/221 +f 1046/1603/221 1047/1584/221 1049/1586/157 +f 1049/1586/157 1051/1557/222 1050/1607/222 +f 1050/1607/222 1051/1557/222 1037/1556/179 +f 935/3678/223 1065/3694/223 1064/3679/224 +f 929/3681/184 936/3680/224 1064/3679/224 +f 929/3683/184 1063/3906/184 1062/3684/225 +f 930/3685/225 1062/3684/225 1061/3686/226 +f 931/3687/226 1061/3686/226 1060/3688/227 +f 932/3689/227 1060/3688/227 1059/3690/185 +f 933/3691/185 1059/3690/185 1066/3692/228 +f 934/3693/228 1066/3692/228 1065/3694/223 +f 927/3695/229 928/3699/230 988/3696/230 +f 921/3698/182 981/3907/182 988/3696/230 +f 922/3700/231 982/3704/231 981/3701/182 +f 922/3700/231 923/3706/232 983/3703/232 +f 924/3705/233 984/3708/233 983/3703/232 +f 924/3705/233 925/3710/183 985/3707/183 +f 926/3709/234 986/3711/234 985/3707/183 +f 926/3709/234 927/3695/229 987/3697/229 +f 1035/3712/235 1028/3908/180 957/3713/180 +f 957/3715/180 1028/3909/180 1029/3716/236 +f 1029/3716/236 1030/3719/237 959/3718/237 +f 1030/3719/237 1031/3910/238 960/3720/238 +f 960/3720/238 1031/3910/238 1032/3721/181 +f 1032/3721/181 1033/3724/239 962/3723/239 +f 1033/3724/239 1034/3726/240 963/3725/240 +f 1034/3726/240 1035/3712/235 964/3714/235 +f 1009/3727/186 1010/3742/241 970/3728/241 +f 1008/3730/242 1009/3911/186 969/3731/186 +f 1007/3733/243 1008/3730/242 968/3732/242 +f 1006/3735/244 1007/3733/243 967/3734/243 +f 1005/3737/187 1006/3735/244 966/3736/244 +f 1012/3739/245 1005/3737/187 965/3738/187 +f 971/3741/246 1011/3912/246 1012/3739/245 +f 1010/3742/241 1011/3912/246 971/3741/246 +f 1016/3743/162 1055/3913/162 1056/3744/247 +f 1054/3746/248 1055/3914/162 1016/3747/162 +f 1014/3749/249 1053/3915/249 1054/3746/248 +f 1052/3750/250 1053/3915/249 1014/3749/249 +f 1018/3752/251 1057/3916/251 1058/3753/252 +f 1056/3744/247 1057/3916/251 1018/3752/251 +f 1333/1876/253 1397/3756/253 1396/3755/254 +f 1306/1886/255 1370/1952/255 1371/1953/159 +f 1334/1875/256 1398/3757/256 1397/3756/253 +f 1307/1887/159 1371/1954/159 1372/1956/257 +f 1335/1878/161 1399/3758/161 1398/3757/256 +f 1308/1890/257 1372/1956/257 1373/1958/258 +f 1336/1880/259 1400/3759/259 1399/3758/161 +f 1309/1893/258 1373/1958/258 1374/1960/260 +f 1283/1906/156 1348/1972/156 1347/1971/254 +f 1337/1882/261 1401/3760/261 1400/3759/259 +f 1310/1892/260 1374/1960/260 1375/1962/163 +f 1284/1904/254 1347/1971/254 1349/1974/253 +f 1338/1884/262 1402/3761/262 1401/3760/261 +f 1311/1896/163 1375/1962/163 1376/1964/263 +f 1285/1907/253 1349/1974/253 1350/1976/256 +f 1339/3428/158 1403/3917/158 1402/3761/262 +f 1312/1899/263 1376/1964/263 1377/1965/264 +f 1286/1909/256 1350/1976/256 1351/1978/161 +f 1340/1888/265 1404/3763/265 1403/3762/158 +f 1313/1898/264 1377/1965/264 1378/1967/266 +f 1287/1911/161 1351/1978/161 1352/1980/259 +f 1341/1891/267 1405/3764/267 1404/3763/265 +f 1314/1900/266 1378/1967/266 1348/1969/156 +f 1288/1913/259 1352/1980/259 1353/1982/261 +f 1342/1895/268 1406/3766/268 1405/3764/267 +f 1316/1908/269 1379/3767/269 1380/3765/155 +f 1289/1915/261 1353/1982/261 1354/1984/262 +f 1343/1894/160 1407/3768/160 1406/3766/268 +f 1317/1910/270 1381/3769/270 1379/3767/269 +f 1290/1917/262 1354/1984/262 1355/1986/158 +f 1344/1897/271 1408/3770/271 1407/3768/160 +f 1318/1912/272 1382/3771/272 1381/3769/270 +f 1291/1921/158 1355/1987/158 1356/1989/265 +f 1345/1901/273 1409/3772/273 1408/3770/271 +f 1319/1914/162 1383/3773/162 1382/3771/272 +f 1292/1925/265 1356/1989/265 1357/1990/267 +f 1346/1903/274 1410/3774/274 1409/3772/273 +f 1320/1916/275 1384/3775/275 1383/3773/162 +f 1293/1924/267 1357/1990/267 1358/1929/268 +f 1315/3429/155 1380/3918/155 1410/3774/274 +f 1321/1918/276 1385/3776/276 1384/3775/275 +f 1294/1861/268 1358/1929/268 1359/1928/160 +f 1322/1920/255 1386/3777/255 1385/3776/276 +f 1295/1859/160 1359/1928/160 1360/1931/271 +f 1323/3430/159 1387/3919/159 1386/3777/255 +f 1296/1862/271 1360/1931/271 1361/1933/273 +f 1324/1922/257 1388/3779/257 1387/3778/159 +f 1297/1864/273 1361/1933/273 1362/1935/274 +f 1325/1926/258 1389/3780/258 1388/3779/257 +f 1298/1866/274 1362/1935/274 1363/1937/155 +f 1326/1860/260 1390/3781/260 1389/3780/258 +f 1299/1872/155 1363/1940/155 1364/1939/269 +f 1327/1863/163 1391/3782/163 1390/3781/260 +f 1300/1870/269 1364/1939/269 1365/1942/270 +f 1328/1865/263 1392/3783/263 1391/3782/163 +f 1301/1873/270 1365/1942/270 1366/1944/272 +f 1329/1867/264 1393/3784/264 1392/3783/263 +f 1302/1877/272 1366/1944/272 1367/1946/162 +f 1330/1869/266 1394/3785/266 1393/3784/264 +f 1303/1879/162 1367/1946/162 1368/1948/275 +f 1331/3427/156 1395/3920/156 1394/3785/266 +f 1304/1881/275 1368/1948/275 1369/1950/276 +f 1332/1874/254 1396/3755/254 1395/3786/156 +f 1305/1883/276 1369/1950/276 1370/1952/255 +f 1764/3787/163 1779/3921/163 1780/3788/277 +f 1778/3790/278 1779/3922/163 1764/3791/163 +f 1762/3793/279 1777/3795/279 1778/3790/278 +f 1761/3794/280 1776/3923/280 1777/3795/279 +f 1766/3796/281 1781/3924/281 1782/3797/282 +f 1780/3788/277 1781/3924/281 1766/3796/281 +f 977/1511/169 1753/2490/169 1760/2488/283 +f 1760/2488/283 1759/2487/157 979/1514/157 +f 979/1514/157 1759/2487/157 1758/2485/284 +f 1758/2485/284 1757/2484/168 973/1517/168 +f 1757/2501/168 1756/2498/285 974/1521/285 +f 974/1521/285 1756/2498/285 1755/2496/164 +f 975/1523/164 1755/2496/164 1754/2491/286 +f 976/1525/286 1754/2491/286 1753/2490/169 +f 1775/2494/287 1768/2493/172 1024/1583/172 +f 1026/1567/157 1774/2504/157 1775/2494/287 +f 1027/1570/288 1773/2502/288 1774/2504/157 +f 1020/1574/170 1772/3495/170 1773/2502/288 +f 1771/2514/289 1772/2518/170 1020/1575/170 +f 1770/2511/164 1771/2514/289 1021/1577/289 +f 1769/3497/290 1770/2511/164 1022/1579/164 +f 1768/2493/172 1769/3497/290 1023/1581/290 f 1986/2805/158 1988/2807/192 1987/2824/192 f 1988/2807/192 1990/2809/164 1989/2826/164 f 1990/2809/164 1992/2811/174 1991/2828/174 @@ -10161,79 +10205,79 @@ f 1993/2814/159 1994/2799/159 1996/2796/166 f 1995/2815/166 1996/2796/166 1998/2798/157 f 1998/2798/157 2000/2802/165 1999/2819/165 f 2000/2802/165 1986/2804/158 1985/2821/158 -f 2050/2855/178 2052/2859/212 2051/2875/212 -f 2052/2859/212 2054/2861/164 2053/2881/164 -f 2054/2861/164 2056/2862/211 2055/2882/211 -f 2056/2862/211 2058/2866/167 2057/2884/167 -f 2058/3566/167 2060/2847/214 2059/2869/214 -f 2060/2847/214 2062/2849/157 2061/2871/157 -f 2061/2871/157 2062/2849/157 2064/2852/213 -f 2063/2872/213 2064/2852/213 2050/2855/178 -f 2096/2929/171 2097/2877/171 2099/2914/216 -f 2099/2914/216 2101/2916/164 2100/2933/164 -f 2101/2916/164 2103/2917/215 2102/2935/215 -f 2103/2917/215 2105/2921/179 2104/2937/179 -f 2105/3587/179 2107/2905/218 2106/2924/218 -f 2107/2905/218 2109/2907/157 2108/2926/157 -f 2108/2926/157 2109/2907/157 2111/2878/217 -f 2110/2927/217 2111/2878/217 2097/2877/171 -f 2015/3783/287 2125/3799/287 2124/3784/288 -f 2009/3786/185 2016/3785/288 2124/3784/288 -f 2009/3788/185 2123/3909/185 2122/3789/289 -f 2011/3791/290 2010/3790/289 2122/3789/289 -f 2011/3791/290 2121/3792/290 2120/3793/291 -f 2012/3794/291 2120/3793/291 2119/3795/184 -f 2013/3796/184 2119/3795/184 2126/3797/292 -f 2014/3798/292 2126/3797/292 2125/3799/287 -f 2008/3800/293 2048/3804/293 2047/3801/294 -f 2001/3803/183 2041/3910/183 2048/3804/293 -f 2001/3805/183 2002/3808/295 2042/3806/295 -f 2002/3808/295 2003/3811/296 2043/3809/296 -f 2004/3810/297 2044/3813/297 2043/3809/296 -f 2004/3810/297 2005/3815/182 2045/3812/182 -f 2006/3814/298 2046/3816/298 2045/3812/182 -f 2006/3814/298 2007/3802/294 2047/3801/294 -f 2095/3817/299 2088/3911/181 2017/3818/181 -f 2017/3820/181 2088/3912/181 2089/3821/300 -f 2089/3821/300 2090/3824/301 2019/3823/301 -f 2090/3824/301 2091/3913/302 2020/3825/302 -f 2020/3825/302 2091/3913/302 2092/3826/180 -f 2092/3826/180 2093/3829/303 2022/3828/303 -f 2093/3829/303 2094/3914/304 2023/3830/304 -f 2023/3830/304 2094/3914/304 2095/3817/299 -f 2029/3831/187 2069/3915/187 2070/3832/305 -f 2068/3834/306 2069/3916/187 2029/3835/187 -f 2027/3837/307 2067/3917/307 2068/3834/306 -f 2066/3838/308 2067/3917/307 2027/3837/307 -f 2065/3840/186 2066/3838/308 2026/3839/308 -f 2072/3842/309 2065/3840/186 2025/3841/186 -f 2031/3844/310 2071/3918/310 2072/3842/309 -f 2070/3832/305 2071/3918/310 2031/3844/310 -f 2076/3845/161 2115/3919/161 2116/3846/311 -f 2114/3848/312 2115/3920/161 2076/3849/161 -f 2074/3851/313 2113/3921/313 2114/3848/312 -f 2112/3852/314 2113/3921/313 2074/3851/313 -f 2078/3854/315 2117/3922/315 2118/3855/316 -f 2116/3846/311 2117/3922/315 2078/3854/315 -f 2299/3857/160 2300/3870/317 2285/3858/317 -f 2298/3860/318 2299/3923/160 2284/3861/160 -f 2297/3863/319 2298/3860/318 2283/3862/318 -f 2296/3865/320 2297/3863/319 2282/3864/319 -f 2286/3867/321 2301/3924/321 2302/3868/322 -f 2300/3870/317 2301/3924/321 2286/3867/321 -f 2037/2831/168 2273/3197/168 2280/3196/280 -f 2280/3196/280 2279/3194/157 2039/2834/157 -f 2279/3194/157 2278/3192/279 2040/2835/279 -f 2278/3192/279 2277/3191/169 2033/2838/169 -f 2277/3207/169 2276/3205/282 2034/2841/282 -f 2034/2841/282 2276/3205/282 2275/3203/164 -f 2035/2843/164 2275/3203/164 2274/3198/281 -f 2274/3198/281 2273/3197/168 2037/2831/168 -f 2295/3201/284 2288/3200/170 2084/2889/170 -f 2086/2888/157 2294/3211/157 2295/3201/284 -f 2087/2891/283 2293/3209/283 2294/3211/157 -f 2080/2895/172 2292/3625/172 2293/3209/283 -f 2291/3222/286 2292/3226/172 2080/2896/172 -f 2290/3219/164 2291/3222/286 2081/2898/286 -f 2289/3626/285 2290/3219/164 2082/2899/164 -f 2288/3200/170 2289/3626/285 2083/2903/285 +f 2050/2855/178 2052/2859/216 2051/2875/216 +f 2052/2859/216 2054/2861/164 2053/2881/164 +f 2054/2861/164 2056/2862/215 2055/2882/215 +f 2056/2862/215 2058/2866/167 2057/2884/167 +f 2058/3578/167 2060/2847/218 2059/2869/218 +f 2060/2847/218 2062/2849/157 2061/2871/157 +f 2061/2871/157 2062/2849/157 2064/2852/217 +f 2063/2872/217 2064/2852/217 2050/2855/178 +f 2096/2929/171 2097/2877/171 2099/2914/220 +f 2099/2914/220 2101/2916/164 2100/2933/164 +f 2101/2916/164 2103/2917/219 2102/2935/219 +f 2103/2917/219 2105/2921/179 2104/2937/179 +f 2105/3599/179 2107/2905/222 2106/2924/222 +f 2107/2905/222 2109/2907/157 2108/2926/157 +f 2108/2926/157 2109/2907/157 2111/2878/221 +f 2110/2927/221 2111/2878/221 2097/2877/171 +f 2015/3799/291 2125/3815/291 2124/3800/292 +f 2009/3802/185 2016/3801/292 2124/3800/292 +f 2009/3804/185 2123/3925/185 2122/3805/293 +f 2011/3807/294 2010/3806/293 2122/3805/293 +f 2011/3807/294 2121/3808/294 2120/3809/295 +f 2012/3810/295 2120/3809/295 2119/3811/184 +f 2013/3812/184 2119/3811/184 2126/3813/296 +f 2014/3814/296 2126/3813/296 2125/3815/291 +f 2008/3816/297 2048/3820/297 2047/3817/298 +f 2001/3819/183 2041/3926/183 2048/3820/297 +f 2001/3821/183 2002/3824/299 2042/3822/299 +f 2002/3824/299 2003/3827/300 2043/3825/300 +f 2004/3826/301 2044/3829/301 2043/3825/300 +f 2004/3826/301 2005/3831/182 2045/3828/182 +f 2006/3830/302 2046/3832/302 2045/3828/182 +f 2006/3830/302 2007/3818/298 2047/3817/298 +f 2095/3833/303 2088/3927/181 2017/3834/181 +f 2017/3836/181 2088/3928/181 2089/3837/304 +f 2089/3837/304 2090/3840/305 2019/3839/305 +f 2090/3840/305 2091/3929/306 2020/3841/306 +f 2020/3841/306 2091/3929/306 2092/3842/180 +f 2092/3842/180 2093/3845/307 2022/3844/307 +f 2093/3845/307 2094/3930/308 2023/3846/308 +f 2023/3846/308 2094/3930/308 2095/3833/303 +f 2029/3847/187 2069/3931/187 2070/3848/309 +f 2068/3850/310 2069/3932/187 2029/3851/187 +f 2027/3853/311 2067/3933/311 2068/3850/310 +f 2066/3854/312 2067/3933/311 2027/3853/311 +f 2065/3856/186 2066/3854/312 2026/3855/312 +f 2072/3858/313 2065/3856/186 2025/3857/186 +f 2031/3860/314 2071/3934/314 2072/3858/313 +f 2070/3848/309 2071/3934/314 2031/3860/314 +f 2076/3861/161 2115/3935/161 2116/3862/315 +f 2114/3864/316 2115/3936/161 2076/3865/161 +f 2074/3867/317 2113/3937/317 2114/3864/316 +f 2112/3868/318 2113/3937/317 2074/3867/317 +f 2078/3870/319 2117/3938/319 2118/3871/320 +f 2116/3862/315 2117/3938/319 2078/3870/319 +f 2299/3873/160 2300/3886/321 2285/3874/321 +f 2298/3876/322 2299/3939/160 2284/3877/160 +f 2297/3879/323 2298/3876/322 2283/3878/322 +f 2296/3881/324 2297/3879/323 2282/3880/323 +f 2286/3883/325 2301/3940/325 2302/3884/326 +f 2300/3886/321 2301/3940/325 2286/3883/325 +f 2037/2831/168 2273/3197/168 2280/3196/284 +f 2280/3196/284 2279/3194/157 2039/2834/157 +f 2279/3194/157 2278/3192/283 2040/2835/283 +f 2278/3192/283 2277/3191/169 2033/2838/169 +f 2277/3207/169 2276/3205/286 2034/2841/286 +f 2034/2841/286 2276/3205/286 2275/3203/164 +f 2035/2843/164 2275/3203/164 2274/3198/285 +f 2274/3198/285 2273/3197/168 2037/2831/168 +f 2295/3201/288 2288/3200/170 2084/2889/170 +f 2086/2888/157 2294/3211/157 2295/3201/288 +f 2087/2891/287 2293/3209/287 2294/3211/157 +f 2080/2895/172 2292/3637/172 2293/3209/287 +f 2291/3222/290 2292/3226/172 2080/2896/172 +f 2290/3219/164 2291/3222/290 2081/2898/290 +f 2289/3638/289 2290/3219/164 2082/2899/164 +f 2288/3200/170 2289/3638/289 2083/2903/289 diff --git a/src/main/resources/assets/hbm/textures/gui/reactors/gui_fusion_plasmaforge.png b/src/main/resources/assets/hbm/textures/gui/reactors/gui_fusion_plasmaforge.png index ed940ab4f..caa53ffc0 100644 Binary files a/src/main/resources/assets/hbm/textures/gui/reactors/gui_fusion_plasmaforge.png and b/src/main/resources/assets/hbm/textures/gui/reactors/gui_fusion_plasmaforge.png differ diff --git a/src/main/resources/assets/hbm/textures/items/chunk_ore.ilmenite.png b/src/main/resources/assets/hbm/textures/items/chunk_ore.ilmenite.png new file mode 100644 index 000000000..e5e9e99f1 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/chunk_ore.ilmenite.png differ diff --git a/src/main/resources/assets/hbm/textures/items/chunk_ore.ilmenite_alt.png b/src/main/resources/assets/hbm/textures/items/chunk_ore.ilmenite_alt.png new file mode 100644 index 000000000..7e890373f Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/chunk_ore.ilmenite_alt.png differ diff --git a/src/main/resources/assets/hbm/textures/models/fusion/plasma_forge.png b/src/main/resources/assets/hbm/textures/models/fusion/plasma_forge.png index b68caac73..9149089eb 100644 Binary files a/src/main/resources/assets/hbm/textures/models/fusion/plasma_forge.png and b/src/main/resources/assets/hbm/textures/models/fusion/plasma_forge.png differ