From 1253a88e3eb6488f99f3fbf26a6d9ba1d921d328 Mon Sep 17 00:00:00 2001 From: Boblet Date: Tue, 1 Feb 2022 08:01:35 +0100 Subject: [PATCH 1/3] PR #419 --- src/main/java/com/hbm/config/WeaponConfig.java | 2 +- src/main/java/com/hbm/config/WorldConfig.java | 2 +- src/main/resources/assets/hbm/lang/en_US.lang | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/hbm/config/WeaponConfig.java b/src/main/java/com/hbm/config/WeaponConfig.java index 4d70b09ee..c523cef48 100644 --- a/src/main/java/com/hbm/config/WeaponConfig.java +++ b/src/main/java/com/hbm/config/WeaponConfig.java @@ -34,7 +34,7 @@ public class WeaponConfig { final String CATEGORY_DROPS = "10_dangerous_drops"; dropCell = CommonConfig.createConfigBool(config, CATEGORY_DROPS, "10.00_dropCell", "Whether antimatter cells should explode when dropped", true); - dropSing = CommonConfig.createConfigBool(config, CATEGORY_DROPS, "10.01_dropBHole", "Whether singularities and blaack holes should spawn when dropped", true); + dropSing = CommonConfig.createConfigBool(config, CATEGORY_DROPS, "10.01_dropBHole", "Whether singularities and black holes should spawn when dropped", true); dropStar = CommonConfig.createConfigBool(config, CATEGORY_DROPS, "10.02_dropStar", "Whether rigged star blaster cells should explode when dropped", true); dropCrys = CommonConfig.createConfigBool(config, CATEGORY_DROPS, "10.04_dropCrys", "Whether xen crystals should move blocks when dropped", true); dropDead = CommonConfig.createConfigBool(config, CATEGORY_DROPS, "10.05_dropDead", "Whether dead man's explosives should explode when dropped", true); diff --git a/src/main/java/com/hbm/config/WorldConfig.java b/src/main/java/com/hbm/config/WorldConfig.java index 02c424535..a5bb5a257 100644 --- a/src/main/java/com/hbm/config/WorldConfig.java +++ b/src/main/java/com/hbm/config/WorldConfig.java @@ -145,7 +145,7 @@ public class WorldConfig { geyserVapor = CommonConfig.createConfigInt(config, CATEGORY_DUNGEON, "4.19_geyserVaporSpawn", "Spawn vapor geyser on every nTH chunk", 500); meteorStructure = CommonConfig.createConfigInt(config, CATEGORY_DUNGEON, "4.20_meteorSpawn", "Spawn meteor dungeon on every nTH chunk", 15000); capsuleStructure = CommonConfig.createConfigInt(config, CATEGORY_DUNGEON, "4.21_capsuleSpawn", "Spawn landing capsule on every nTH chunk", 100); - arcticStructure = CommonConfig.createConfigInt(config, CATEGORY_DUNGEON, "4.22_arcticVaultSpawn", "Spawn artic code vault on every nTH chunk", 500); + arcticStructure = CommonConfig.createConfigInt(config, CATEGORY_DUNGEON, "4.22_arcticVaultSpawn", "Spawn arctic code vault on every nTH chunk", 500); jungleStructure = CommonConfig.createConfigInt(config, CATEGORY_DUNGEON, "4.23_jungleDungeonSpawn", "Spawn jungle dungeon on every nTH chunk", 2000); pyramidStructure = CommonConfig.createConfigInt(config, CATEGORY_DUNGEON, "4.24_pyramidSpawn", "Spawn pyramid on every nTH chunk", 4000); diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 0f89df8c3..e783fa305 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -18,7 +18,7 @@ achievement.bossMeltdown.desc=More terrible than great, but I take what I can ge achievement.bossMeltdown=3.6 Roentgen achievement.bossWorm.desc=The Fabstaff. My ass. You do the math. achievement.bossWorm=Disassembling Balls-O-Tron -achievement.bossUFO.desc=Yo, what do we have here? A huge spacecraft pulling up to the bloockship? +achievement.bossUFO.desc=Yo, what do we have here? A huge spacecraft pulling up to the blockship? achievement.bossUFO=Ayy Lmao achievement.burnerPress.desc=Pressure pushing down on me, on you achievement.burnerPress=Under Pressure From b5b67a70850e64adcc0d60d8d49a79435c36fe3b Mon Sep 17 00:00:00 2001 From: Boblet Date: Tue, 1 Feb 2022 16:03:24 +0100 Subject: [PATCH 2/3] the solidification recipes got out of hand and i accidentally added all those crack oil products i was talking about oops --- .../com/hbm/crafting/SmeltingRecipes.java | 5 +- .../java/com/hbm/inventory/FluidTank.java | 41 ++++--- .../com/hbm/inventory/OreDictManager.java | 8 +- .../java/com/hbm/inventory/fluid/Fluids.java | 42 +++++-- .../hbm/inventory/gui/GuiInfoContainer.java | 8 +- .../recipes/LiquefactionRecipes.java | 15 +-- .../hbm/inventory/recipes/MachineRecipes.java | 91 +++++++------- .../inventory/recipes/RefineryRecipes.java | 52 ++++++-- .../recipes/SolidificationRecipes.java | 61 ++++++++- src/main/java/com/hbm/items/ItemEnums.java | 3 +- src/main/java/com/hbm/items/ModItems.java | 3 + src/main/java/com/hbm/main/MainRegistry.java | 1 + .../machine/TileEntityMachineSolidifier.java | 116 +++++++++++++++++- .../hbm/textures/items/oil_tar.coal.png | Bin 0 -> 411 bytes .../hbm/textures/items/powder_bakelite.png | Bin 0 -> 337 bytes 15 files changed, 338 insertions(+), 108 deletions(-) create mode 100644 src/main/resources/assets/hbm/textures/items/oil_tar.coal.png create mode 100644 src/main/resources/assets/hbm/textures/items/powder_bakelite.png diff --git a/src/main/java/com/hbm/crafting/SmeltingRecipes.java b/src/main/java/com/hbm/crafting/SmeltingRecipes.java index 5dd7e9dbc..69444a29c 100644 --- a/src/main/java/com/hbm/crafting/SmeltingRecipes.java +++ b/src/main/java/com/hbm/crafting/SmeltingRecipes.java @@ -98,8 +98,9 @@ public class SmeltingRecipes { GameRegistry.addSmelting(ModItems.powder_coal, DictFrame.fromOne(ModItems.coke, EnumCokeType.COAL), 1.0F); GameRegistry.addSmelting(ModItems.briquette_lignite, DictFrame.fromOne(ModItems.coke, EnumCokeType.LIGNITE), 1.0F); - GameRegistry.addSmelting(DictFrame.fromOne(ModItems.oil_tar, EnumTarType.CRUDE), new ItemStack(ModItems.powder_coal), 1.0F); - GameRegistry.addSmelting(DictFrame.fromOne(ModItems.oil_tar, EnumTarType.CRACK), new ItemStack(ModItems.powder_coal), 1.0F); + + GameRegistry.addSmelting(DictFrame.fromOne(ModItems.oil_tar, EnumTarType.CRACK), DictFrame.fromOne(ModItems.coke, EnumCokeType.PETROLEUM), 1.0F); + GameRegistry.addSmelting(DictFrame.fromOne(ModItems.oil_tar, EnumTarType.COAL), DictFrame.fromOne(ModItems.coke, EnumCokeType.COAL), 1.0F); GameRegistry.addSmelting(ModItems.combine_scrap, new ItemStack(ModItems.ingot_combine_steel), 1.0F); GameRegistry.addSmelting(ModItems.tank_waste, new ItemStack(ModItems.tank_waste), 0.0F); diff --git a/src/main/java/com/hbm/inventory/FluidTank.java b/src/main/java/com/hbm/inventory/FluidTank.java index aec4fec34..cdc928b1b 100644 --- a/src/main/java/com/hbm/inventory/FluidTank.java +++ b/src/main/java/com/hbm/inventory/FluidTank.java @@ -186,14 +186,14 @@ public class FluidTank { return; } - if(slots[in].getItem() == ModItems.inf_water && this.type.getName().equals(Fluids.WATER.name())) { + if(slots[in].getItem() == ModItems.inf_water && type == Fluids.WATER) { this.fluid -= 50; if(this.fluid < 0) this.fluid = 0; return; } - if(slots[in].getItem() == ModItems.inf_water_mk2 && this.type.getName().equals(Fluids.WATER.name())) { + if(slots[in].getItem() == ModItems.inf_water_mk2 && type == Fluids.WATER) { this.fluid -= 500; if(this.fluid < 0) this.fluid = 0; @@ -221,27 +221,32 @@ public class FluidTank { } } } + + public void setType(int in, ItemStack[] slots) { + setType(in, in, slots); + } //Changes tank type public void setType(int in, int out, ItemStack[] slots) { - if(in == out && slots[in] != null && slots[in].getItem() instanceof ItemFluidIdentifier) { - FluidType newType = ItemFluidIdentifier.getType(slots[in]); + if(slots[in] != null && slots[in].getItem() instanceof ItemFluidIdentifier) { - if(type != newType) { - type = newType; - fluid = 0; - } - return; - } - - if(slots[in] != null && slots[out] == null && slots[in].getItem() instanceof ItemFluidIdentifier) { - FluidType newType = ItemFluidIdentifier.getType(slots[in]); - if(!type.getName().equals(newType.getName())) { - type = newType; - slots[out] = slots[in].copy(); - slots[in] = null; - fluid = 0; + if(in == out) { + FluidType newType = ItemFluidIdentifier.getType(slots[in]); + + if(type != newType) { + type = newType; + fluid = 0; + } + + } else if(slots[out] == null) { + FluidType newType = ItemFluidIdentifier.getType(slots[in]); + if(type != newType) { + type = newType; + slots[out] = slots[in].copy(); + slots[in] = null; + fluid = 0; + } } } } diff --git a/src/main/java/com/hbm/inventory/OreDictManager.java b/src/main/java/com/hbm/inventory/OreDictManager.java index dfeac13db..4978a9a92 100644 --- a/src/main/java/com/hbm/inventory/OreDictManager.java +++ b/src/main/java/com/hbm/inventory/OreDictManager.java @@ -61,6 +61,7 @@ public class OreDictManager { public static final String KEY_OIL_TAR = "oiltar"; public static final String KEY_CRACK_TAR = "cracktar"; + public static final String KEY_COAL_TAR = "coaltar"; /* * PREFIXES @@ -288,7 +289,7 @@ public class OreDictManager { GRAPHITE .ingot(ingot_graphite) .block(block_graphite); DURA .ingot(ingot_dura_steel) .dust(powder_dura_steel) .block(block_dura_steel); POLYMER .ingot(ingot_polymer) .dust(powder_polymer); - BAKELITE .ingot(ingot_bakelite); + BAKELITE .ingot(ingot_bakelite) .dust(powder_bakelite); MAGTUNG .ingot(ingot_magnetized_tungsten) .dust(powder_magnetized_tungsten) .block(block_magnetized_tungsten); CMB .ingot(ingot_combine_steel) .dust(powder_combine_steel) .plate(plate_combine_steel) .block(block_combine_steel); DESH .nugget(nugget_desh) .ingot(ingot_desh) .dust(powder_desh) .block(block_desh); @@ -365,15 +366,16 @@ public class OreDictManager { /* * COLLECTIONS */ - ANY_PLASTIC .ingot(ingot_polymer, ingot_bakelite).dust(powder_polymer); + ANY_PLASTIC .ingot(ingot_polymer, ingot_bakelite).dust(powder_polymer, powder_bakelite); ANY_GUNPOWDER .dust(Items.gunpowder, ballistite, cordite); ANY_SMOKELESS .dust(ballistite, cordite); - ANY_COKE .gem(fromAll(coke, EnumCokeType.class)); ANY_CONCRETE .any(concrete, concrete_smooth, concrete_colored, concrete_asbestos, ducrete, ducrete_smooth); + ANY_COKE .gem(fromAll(coke, EnumCokeType.class)); ANY_TAR .any(fromAll(oil_tar, EnumTarType.class)); OreDictionary.registerOre(KEY_OIL_TAR, fromOne(oil_tar, EnumTarType.CRUDE)); OreDictionary.registerOre(KEY_CRACK_TAR, fromOne(oil_tar, EnumTarType.CRACK)); + OreDictionary.registerOre(KEY_COAL_TAR, fromOne(oil_tar, EnumTarType.COAL)); OreDictionary.registerOre(getReflector(), neutron_reflector); OreDictionary.registerOre("oreRareEarth", ore_rare); diff --git a/src/main/java/com/hbm/inventory/fluid/Fluids.java b/src/main/java/com/hbm/inventory/fluid/Fluids.java index f14baaabb..41e740028 100644 --- a/src/main/java/com/hbm/inventory/fluid/Fluids.java +++ b/src/main/java/com/hbm/inventory/fluid/Fluids.java @@ -20,7 +20,10 @@ public class Fluids { public static FluidType DEUTERIUM; public static FluidType TRITIUM; public static FluidType OIL; + public static FluidType CRACKOIL; + public static FluidType COALOIL; public static FluidType HOTOIL; + public static FluidType HOTCRACKOIL; public static FluidType HEAVYOIL; public static FluidType BITUMEN; public static FluidType SMEAR; @@ -29,12 +32,17 @@ public class Fluids { public static FluidType PETROIL; public static FluidType LUBRICANT; public static FluidType NAPHTHA; + public static FluidType NAPHTHA_CRACK; public static FluidType DIESEL; + public static FluidType DIESEL_CRACK; public static FluidType LIGHTOIL; + public static FluidType LIGHTOIL_CRACK; public static FluidType KEROSENE; public static FluidType GAS; public static FluidType PETROLEUM; public static FluidType LPG; + public static FluidType AROMATICS; //anything from benzene to phenol and toluene + public static FluidType UNSATURATEDS; //collection of various basic unsaturated compounds like ethylene, acetylene and whatnot public static FluidType BIOGAS; public static FluidType BIOFUEL; public static FluidType NITAN; @@ -52,10 +60,11 @@ public class Fluids { public static FluidType XENON; public static FluidType BALEFIRE; public static FluidType MERCURY; - public static FluidType PAIN; + public static FluidType PAIN; //tantalite solution public static FluidType WASTEFLUID; public static FluidType WASTEGAS; - public static FluidType GASOLINE; + public static FluidType GASOLINE; //gasoline, leaded + public static FluidType COALGAS; //coal-based gasoline public static FluidType SPENTSTEAM; public static FluidType FRACKSOL; public static FluidType PLASMA_DT; @@ -66,7 +75,7 @@ public class Fluids { public static FluidType PLASMA_BF; public static FluidType CARBONDIOXIDE; public static FluidType HELIUM3; - public static FluidType DEATH; + public static FluidType DEATH; //osmiridium solution public static FluidType ETHANOL; public static FluidType HEAVYWATER; @@ -110,6 +119,7 @@ public class Fluids { LUBRICANT = new FluidType("LUBRICANT",0x606060, 10, 1, 1, 2, 1, 0, EnumSymbol.NONE, "hbmfluid.lubricant"); NAPHTHA = new FluidType("NAPHTHA",0x595744, 5, 2, 1, 2, 1, 0, EnumSymbol.NONE, "hbmfluid.naphtha"); DIESEL = new FluidType("DIESEL",0xf2eed5, 11, 1, 1, 1, 2, 0, EnumSymbol.NONE, "hbmfluid.diesel"); + DIESEL_CRACK = new FluidType("DIESEL_CRACK",0xf2eed5, 11, 1, 1, 1, 2, 0, EnumSymbol.NONE, "hbmfluid.diesel_crack"); LIGHTOIL = new FluidType("LIGHTOIL",0x8c7451, 6, 2, 1, 1, 2, 0, EnumSymbol.NONE, "hbmfluid.lightoil"); KEROSENE = new FluidType("KEROSENE",0xffa5d2, 12, 1, 1, 1, 2, 0, EnumSymbol.NONE, "hbmfluid.kerosene"); GAS = new FluidType("GAS",0xfffeed, 13, 1, 1, 1, 4, 1, EnumSymbol.NONE, "hbmfluid.gas"); @@ -136,6 +146,7 @@ public class Fluids { WASTEFLUID = new FluidType("WASTEFLUID",0x544400, 0, 2, 2, 2, 0, 1, EnumSymbol.RADIATION, "hbmfluid.wastefluid", FluidTrait.NO_CONTAINER); WASTEGAS = new FluidType("WASTEGAS",0xB8B8B8, 1, 2, 2, 2, 0, 1, EnumSymbol.RADIATION, "hbmfluid.wastegas", FluidTrait.NO_CONTAINER); GASOLINE = new FluidType("GASOLINE",0x445772, 2, 2, 2, 1, 2, 0, EnumSymbol.NONE, "hbmfluid.gasoline"); + COALGAS = new FluidType("COALGAS",0x445772, 2, 2, 2, 1, 2, 0, EnumSymbol.NONE, "hbmfluid.coalgas"); SPENTSTEAM = new FluidType("SPENTSTEAM",0x445772, 3, 2, 2, 2, 0, 0, EnumSymbol.NONE, "hbmfluid.spentsteam", FluidTrait.NO_CONTAINER); FRACKSOL = new FluidType("FRACKSOL",0x798A6B, 4, 2, 2, 1, 3, 3, EnumSymbol.ACID, "hbmfluid.fracksol", FluidTrait.CORROSIVE); PLASMA_DT = new FluidType("PLASMA_DT",0xF7AFDE, 8, 1, 2, 0, 4, 0, EnumSymbol.RADIATION, "hbmfluid.plasma_dt", 3250, FluidTrait.NO_CONTAINER, FluidTrait.NO_ID); @@ -150,6 +161,13 @@ public class Fluids { DEATH = new FluidType("DEATH",0x717A88, 8, 2, 2, 2, 0, 1, EnumSymbol.ACID, "hbmfluid.death", 300, FluidTrait.CORROSIVE_2, FluidTrait.LEAD_CONTAINER); ETHANOL = new FluidType("ETHANOL",0xe0ffff, 9, 2, 2, 2, 3, 0, EnumSymbol.NONE, "hbmfluid.ethanol"); HEAVYWATER = new FluidType("HEAVYWATER",0x00a0b0, 10, 2, 2, 1, 0, 0, EnumSymbol.NONE, "hbmfluid.heavywater"); + CRACKOIL = new FluidType("CRACKOIL",0x020202, 6, 1, 1, 2, 1, 0, EnumSymbol.NONE, "hbmfluid.crackoil"); + COALOIL = new FluidType("COALOIL",0x020202, 6, 1, 1, 2, 1, 0, EnumSymbol.NONE, "hbmfluid.coaloil"); + HOTCRACKOIL = new FluidType("HOTCRACKOIL",0x300900, 8, 2, 1, 2, 3, 0, EnumSymbol.NONE, "hbmfluid.hotcrackoil", 350); + NAPHTHA_CRACK = new FluidType("NAPHTHA_CRACK",0x595744, 5, 2, 1, 2, 1, 0, EnumSymbol.NONE, "hbmfluid.naphtha_crack"); + LIGHTOIL_CRACK = new FluidType("LIGHTOIL_CRACK",0x8c7451, 6, 2, 1, 1, 2, 0, EnumSymbol.NONE, "hbmfluid.lightoil_crack"); + AROMATICS = new FluidType("AROMATICS",0xfffeed, 13, 1, 1, 1, 4, 1, EnumSymbol.NONE, "hbmfluid.aromatics"); + UNSATURATEDS = new FluidType("UNSATURATEDS",0xfffeed, 13, 1, 1, 1, 4, 1, EnumSymbol.NONE, "hbmfluid.unsaturateds"); // ^ ^ ^ ^ ^ ^ ^ ^ //ADD NEW FLUIDS HERE //AND DON'T FORGET THE META DOWN HERE @@ -181,25 +199,35 @@ public class Fluids { metaOrder.add(MERCURY); //oils, fuels metaOrder.add(OIL); + metaOrder.add(CRACKOIL); + metaOrder.add(COALOIL); metaOrder.add(HOTOIL); + metaOrder.add(HOTCRACKOIL); + //metaOrder.add(HOTCOALOIL); metaOrder.add(HEAVYOIL); metaOrder.add(NAPHTHA); + metaOrder.add(NAPHTHA_CRACK); metaOrder.add(LIGHTOIL); + metaOrder.add(LIGHTOIL_CRACK); metaOrder.add(BITUMEN); metaOrder.add(SMEAR); metaOrder.add(HEATINGOIL); metaOrder.add(RECLAIMED); metaOrder.add(PETROIL); metaOrder.add(LUBRICANT); - metaOrder.add(DIESEL); - metaOrder.add(KEROSENE); metaOrder.add(GAS); metaOrder.add(PETROLEUM); metaOrder.add(LPG); - metaOrder.add(ETHANOL); + metaOrder.add(AROMATICS); + metaOrder.add(UNSATURATEDS); + metaOrder.add(DIESEL); + metaOrder.add(DIESEL_CRACK); + metaOrder.add(KEROSENE); + metaOrder.add(GASOLINE); + metaOrder.add(COALGAS); metaOrder.add(BIOGAS); metaOrder.add(BIOFUEL); - metaOrder.add(GASOLINE); + metaOrder.add(ETHANOL); metaOrder.add(NITAN); metaOrder.add(BALEFIRE); //processing fluids diff --git a/src/main/java/com/hbm/inventory/gui/GuiInfoContainer.java b/src/main/java/com/hbm/inventory/gui/GuiInfoContainer.java index 37b1de604..c5792a307 100644 --- a/src/main/java/com/hbm/inventory/gui/GuiInfoContainer.java +++ b/src/main/java/com/hbm/inventory/gui/GuiInfoContainer.java @@ -381,10 +381,10 @@ public abstract class GuiInfoContainer extends GuiContainer { GL11.glDisable(GL11.GL_TEXTURE_2D); tess.startDrawingQuads(); tess.setColorOpaque_I(color); - tess.addVertex(renX, renY + height, z); - tess.addVertex(renX + width, renY + height, z); - tess.addVertex(renX + width, renY + 0, z); - tess.addVertex(renX, renY, z); + tess.addVertex(renX, renY + height, z); + tess.addVertex(renX + width, renY + height, z); + tess.addVertex(renX + width, renY + 0, z); + tess.addVertex(renX, renY, z); tess.draw(); GL11.glEnable(GL11.GL_TEXTURE_2D); } diff --git a/src/main/java/com/hbm/inventory/recipes/LiquefactionRecipes.java b/src/main/java/com/hbm/inventory/recipes/LiquefactionRecipes.java index 1c8a8ea30..673f5baa6 100644 --- a/src/main/java/com/hbm/inventory/recipes/LiquefactionRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/LiquefactionRecipes.java @@ -21,15 +21,12 @@ public class LiquefactionRecipes { public static void register() { - //TODO: make sure to either remove chemplant liquefication recipes or to adjust the values to match these - - //temporary, replace with liquefacted coal (or coal oil? parallel to crude and crack oils perhaps) - //if coal oil isn't parallel, we could do coal -> coal oil -> coal tar -> crude oil (or crack oil) - //if coal oil is parallel, we might fractionate it into crude or crack oil and coal gasoline - recipes.put(COAL.gem(), new FluidStack(100, Fluids.OIL)); - recipes.put(COAL.dust(), new FluidStack(100, Fluids.OIL)); - //make sure to include bitumen to tar in the solidificator with matching values - recipes.put(ANY_TAR.any(), new FluidStack(100, Fluids.BITUMEN)); + //oil processing + recipes.put(COAL.gem(), new FluidStack(100, Fluids.COALOIL)); + recipes.put(COAL.dust(), new FluidStack(100, Fluids.COALOIL)); + recipes.put(KEY_OIL_TAR, new FluidStack(75, Fluids.BITUMEN)); + recipes.put(KEY_CRACK_TAR, new FluidStack(100, Fluids.BITUMEN)); + recipes.put(KEY_COAL_TAR, new FluidStack(50, Fluids.BITUMEN)); //general utility recipes because why not recipes.put(new ComparableStack(Blocks.netherrack), new FluidStack(250, Fluids.LAVA)); recipes.put(new ComparableStack(Blocks.cobblestone), new FluidStack(250, Fluids.LAVA)); diff --git a/src/main/java/com/hbm/inventory/recipes/MachineRecipes.java b/src/main/java/com/hbm/inventory/recipes/MachineRecipes.java index 3742a1a5a..ea686b182 100644 --- a/src/main/java/com/hbm/inventory/recipes/MachineRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/MachineRecipes.java @@ -162,6 +162,7 @@ public class MachineRecipes { if(type == Fluids.STEAM) return new Object[] { Fluids.HOTSTEAM, 5, 50, 30000 }; if(type == Fluids.HOTSTEAM) return new Object[] { Fluids.SUPERHOTSTEAM, 5, 50, 45000 }; if(type == Fluids.OIL) return new Object[] { Fluids.HOTOIL, 5, 5, 35000 }; + if(type == Fluids.CRACKOIL) return new Object[] { Fluids.HOTCRACKOIL, 5, 5, 35000 }; return null; } @@ -1469,51 +1470,51 @@ public class MachineRecipes { input[0] = new FluidStack(800, Fluids.ACID); input[1] = new FluidStack(200, Fluids.MERCURY); break; - case SF_OIL: - input[0] = new FluidStack(350, Fluids.OIL); - break; - case SF_HEAVYOIL: - input[0] = new FluidStack(250, Fluids.HEAVYOIL); - break; - case SF_SMEAR: - input[0] = new FluidStack(200, Fluids.SMEAR); - break; - case SF_HEATINGOIL: - input[0] = new FluidStack(100, Fluids.HEATINGOIL); - break; - case SF_RECLAIMED: - input[0] = new FluidStack(200, Fluids.RECLAIMED); - break; - case SF_PETROIL: - input[0] = new FluidStack(250, Fluids.PETROIL); - break; - case SF_LUBRICANT: - input[0] = new FluidStack(250, Fluids.LUBRICANT); - break; - case SF_NAPHTHA: - input[0] = new FluidStack(300, Fluids.NAPHTHA); - break; - case SF_DIESEL: - input[0] = new FluidStack(400, Fluids.DIESEL); - break; - case SF_LIGHTOIL: - input[0] = new FluidStack(450, Fluids.LIGHTOIL); - break; - case SF_KEROSENE: - input[0] = new FluidStack(550, Fluids.KEROSENE); - break; - case SF_GAS: - input[0] = new FluidStack(750, Fluids.GAS); - break; - case SF_PETROLEUM: - input[0] = new FluidStack(600, Fluids.PETROLEUM); - break; - case SF_BIOGAS: - input[0] = new FluidStack(3500, Fluids.BIOGAS); - break; - case SF_BIOFUEL: - input[0] = new FluidStack(1500, Fluids.BIOFUEL); - break; + case SF_OIL: + input[0] = new FluidStack(SolidificationRecipes.SF_OIL * 2, Fluids.OIL); + break; + case SF_HEAVYOIL: + input[0] = new FluidStack(SolidificationRecipes.SF_HEAVY * 2, Fluids.HEAVYOIL); + break; + case SF_SMEAR: + input[0] = new FluidStack(SolidificationRecipes.SF_SMEAR * 2, Fluids.SMEAR); + break; + case SF_HEATINGOIL: + input[0] = new FluidStack(SolidificationRecipes.SF_HEATING * 2, Fluids.HEATINGOIL); + break; + case SF_RECLAIMED: + input[0] = new FluidStack(SolidificationRecipes.SF_RECLAIMED * 2, Fluids.RECLAIMED); + break; + case SF_PETROIL: + input[0] = new FluidStack(SolidificationRecipes.SF_PETROIL * 2, Fluids.PETROIL); + break; + case SF_LUBRICANT: + input[0] = new FluidStack(SolidificationRecipes.SF_LUBE * 2, Fluids.LUBRICANT); + break; + case SF_NAPHTHA: + input[0] = new FluidStack(SolidificationRecipes.SF_NAPH * 2, Fluids.NAPHTHA); + break; + case SF_DIESEL: + input[0] = new FluidStack(SolidificationRecipes.SF_DIESEL * 2, Fluids.DIESEL); + break; + case SF_LIGHTOIL: + input[0] = new FluidStack(SolidificationRecipes.SF_LIGHT * 2, Fluids.LIGHTOIL); + break; + case SF_KEROSENE: + input[0] = new FluidStack(SolidificationRecipes.SF_KEROSENE * 2, Fluids.KEROSENE); + break; + case SF_GAS: + input[0] = new FluidStack(SolidificationRecipes.SF_GAS * 2, Fluids.GAS); + break; + case SF_PETROLEUM: + input[0] = new FluidStack(SolidificationRecipes.SF_PETROLEUM * 2, Fluids.PETROLEUM); + break; + case SF_BIOGAS: + input[0] = new FluidStack(SolidificationRecipes.SF_BIOGAS * 2, Fluids.BIOGAS); + break; + case SF_BIOFUEL: + input[0] = new FluidStack(SolidificationRecipes.SF_BIOFUEL * 2, Fluids.BIOFUEL); + break; case POLYMER: input[0] = new FluidStack(600, Fluids.PETROLEUM); break; diff --git a/src/main/java/com/hbm/inventory/recipes/RefineryRecipes.java b/src/main/java/com/hbm/inventory/recipes/RefineryRecipes.java index 551568953..bf1525f82 100644 --- a/src/main/java/com/hbm/inventory/recipes/RefineryRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/RefineryRecipes.java @@ -3,8 +3,10 @@ package com.hbm.inventory.recipes; import java.util.HashMap; import java.util.Map; +import com.hbm.inventory.OreDictManager.DictFrame; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; +import com.hbm.items.ItemEnums.EnumTarType; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemFluidIcon; import com.hbm.util.Tuple.Quartet; @@ -18,6 +20,10 @@ public class RefineryRecipes { public static final int oil_frac_naph = 25; public static final int oil_frac_light = 15; public static final int oil_frac_petro = 10; + public static final int crack_frac_naph = 40; + public static final int crack_frac_light = 30; + public static final int crack_frac_aroma = 15; + public static final int crack_frac_unsat = 15; public static final int heavy_frac_bitu = 30; public static final int heavy_frac_smear = 70; @@ -27,13 +33,23 @@ public class RefineryRecipes { public static final int napht_frac_diesel = 60; public static final int light_frac_diesel = 40; public static final int light_frac_kero = 60; + + public static final int ncrack_frac_heat = 30; + public static final int ncrack_frac_diesel = 70; + public static final int lcrack_frac_kero = 70; + public static final int lcrack_frac_petro = 30; + public static final int coal_frac_coalgas = 70; + public static final int coal_frac_natgas = 30; //cracking in percent + public static final int oil_crack_oil = 80; + public static final int oil_crack_petro = 20; public static final int bitumen_crack_oil = 80; - public static final int bitumen_crack_petro = 20; + public static final int bitumen_crack_aroma = 20; public static final int smear_crack_napht = 60; public static final int smear_crack_petro = 40; - public static final int gas_crack_petro = 50; + public static final int gas_crack_petro = 30; + public static final int gas_crack_unsat = 20; public static final int diesel_crack_kero = 40; public static final int diesel_crack_petro = 30; public static final int kero_crack_petro = 60; @@ -54,30 +70,42 @@ public class RefineryRecipes { ItemFluidIcon.make(Fluids.PETROLEUM, oil_frac_petro * 10), new ItemStack(ModItems.sulfur, 1) }); + recipes.put(ItemFluidIcon.make(Fluids.HOTCRACKOIL, 1000), + new ItemStack[] { + ItemFluidIcon.make(Fluids.NAPHTHA_CRACK, crack_frac_naph * 10), + ItemFluidIcon.make(Fluids.LIGHTOIL_CRACK, crack_frac_light * 10), + ItemFluidIcon.make(Fluids.AROMATICS, crack_frac_aroma * 10), + ItemFluidIcon.make(Fluids.UNSATURATEDS, crack_frac_unsat * 10), + DictFrame.fromOne(ModItems.oil_tar, EnumTarType.CRACK) }); + /*recipes.put(ItemFluidIcon.make(Fluids.HOTCRACKOIL, 1000), new ItemStack[] { ItemFluidIcon.make(Fluids.NAPHTHA_CRACK, oil_frac_heavy * 10), //fractionates into crack diesel and heating oil ItemFluidIcon.make(Fluids.LIGHTOIL_CRACK, oil_frac_naph * 10), //fractionates into kerosene and petroleum ItemFluidIcon.make(Fluids.AROMATICS, oil_frac_light * 10), //used for making bakelite and TNT - ItemFluidIcon.make(Fluids.UNSATURATEDS, oil_frac_petro * 10), //used for all sorts of things, can be processed into petroleum + ItemFluidIcon.make(Fluids.UNSATURATEDS, oil_frac_petro * 10), //for bakelite and perhaps acetylene torches DictFrame.fromOne(ModItems.coke, EnumCokeType.PETROLEUM) });*/ return recipes; } public static void registerFractions() { - fractions.put(Fluids.HEAVYOIL, new Quartet(Fluids.BITUMEN, Fluids.SMEAR, heavy_frac_bitu, heavy_frac_smear)); - fractions.put(Fluids.SMEAR, new Quartet(Fluids.HEATINGOIL, Fluids.LUBRICANT, smear_frac_heat, smear_frac_lube)); - fractions.put(Fluids.NAPHTHA, new Quartet(Fluids.HEATINGOIL, Fluids.DIESEL, napht_frac_heat, napht_frac_diesel)); - fractions.put(Fluids.LIGHTOIL, new Quartet(Fluids.DIESEL, Fluids.KEROSENE, light_frac_diesel, light_frac_kero)); + fractions.put(Fluids.HEAVYOIL, new Quartet(Fluids.BITUMEN, Fluids.SMEAR, heavy_frac_bitu, heavy_frac_smear)); + fractions.put(Fluids.SMEAR, new Quartet(Fluids.HEATINGOIL, Fluids.LUBRICANT, smear_frac_heat, smear_frac_lube)); + fractions.put(Fluids.NAPHTHA, new Quartet(Fluids.HEATINGOIL, Fluids.DIESEL, napht_frac_heat, napht_frac_diesel)); + fractions.put(Fluids.NAPHTHA_CRACK, new Quartet(Fluids.HEATINGOIL, Fluids.DIESEL_CRACK, ncrack_frac_heat, ncrack_frac_diesel)); + fractions.put(Fluids.LIGHTOIL, new Quartet(Fluids.DIESEL, Fluids.KEROSENE, light_frac_diesel, light_frac_kero)); + fractions.put(Fluids.LIGHTOIL_CRACK, new Quartet(Fluids.KEROSENE, Fluids.PETROLEUM, lcrack_frac_kero, lcrack_frac_petro)); + fractions.put(Fluids.COALOIL, new Quartet(Fluids.COALGAS, Fluids.GAS, coal_frac_coalgas, coal_frac_natgas)); } public static void registerCracking() { - cracking.put(Fluids.BITUMEN, new Quartet(Fluids.OIL, Fluids.PETROLEUM, bitumen_crack_oil, bitumen_crack_petro)); - cracking.put(Fluids.SMEAR, new Quartet(Fluids.NAPHTHA, Fluids.PETROLEUM, smear_crack_napht, smear_crack_petro)); - cracking.put(Fluids.GAS, new Quartet(Fluids.PETROLEUM, Fluids.NONE, gas_crack_petro, 0)); - cracking.put(Fluids.DIESEL, new Quartet(Fluids.KEROSENE, Fluids.PETROLEUM, diesel_crack_kero, diesel_crack_petro)); - cracking.put(Fluids.KEROSENE, new Quartet(Fluids.PETROLEUM, Fluids.NONE, kero_crack_petro, 0)); + cracking.put(Fluids.OIL, new Quartet(Fluids.CRACKOIL, Fluids.PETROLEUM, oil_crack_oil, oil_crack_petro)); + cracking.put(Fluids.BITUMEN, new Quartet(Fluids.OIL, Fluids.AROMATICS, bitumen_crack_oil, bitumen_crack_aroma)); + cracking.put(Fluids.SMEAR, new Quartet(Fluids.NAPHTHA, Fluids.PETROLEUM, smear_crack_napht, smear_crack_petro)); + cracking.put(Fluids.GAS, new Quartet(Fluids.PETROLEUM, Fluids.UNSATURATEDS, gas_crack_petro, gas_crack_unsat)); + cracking.put(Fluids.DIESEL, new Quartet(Fluids.KEROSENE, Fluids.PETROLEUM, diesel_crack_kero, diesel_crack_petro)); + cracking.put(Fluids.KEROSENE, new Quartet(Fluids.PETROLEUM, Fluids.NONE, kero_crack_petro, 0)); } public static Quartet getFractions(FluidType oil) { diff --git a/src/main/java/com/hbm/inventory/recipes/SolidificationRecipes.java b/src/main/java/com/hbm/inventory/recipes/SolidificationRecipes.java index 807398ba9..cabd997ea 100644 --- a/src/main/java/com/hbm/inventory/recipes/SolidificationRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/SolidificationRecipes.java @@ -17,17 +17,66 @@ import net.minecraft.item.Item; import net.minecraft.item.ItemStack; public class SolidificationRecipes { + + public static final int SF_OIL = 200; + public static final int SF_CRACK = 200; + public static final int SF_HEAVY = 150; + public static final int SF_BITUMEN = 100; + public static final int SF_SMEAR = 100; + public static final int SF_HEATING = 50; + public static final int SF_RECLAIMED = 100; + public static final int SF_PETROIL = 125; + public static final int SF_LUBE = 125; + public static final int SF_NAPH = 150; + public static final int SF_DIESEL = 200; + public static final int SF_LIGHT = 225; + public static final int SF_KEROSENE = 275; + public static final int SF_GAS = 375; + public static final int SF_PETROLEUM = 300; + public static final int SF_LPG = 150; + public static final int SF_BIOGAS = 1750; + public static final int SF_BIOFUEL = 750; + public static final int SF_COALOIL = 200; + //mostly for alternate chemistry, dump into SF if not desired + public static final int SF_AROMA = 1000; + public static final int SF_UNSAT = 1000; + //in the event that these compounds are STILL too useless, add unsat + gas -> kerosene recipe for all those missile junkies + //aromatics can be idfk wax or soap or sth, perhaps artificial lubricant? + //on that note, add more leaded variants private static HashMap> recipes = new HashMap(); public static void register() { - registerRecipe(WATER, 1000, Blocks.ice); - registerRecipe(LAVA, 1000, Blocks.obsidian); - //temporary recipes with incorrect quantities - registerRecipe(OIL, 1000, DictFrame.fromOne(ModItems.oil_tar, EnumTarType.CRUDE)); - registerRecipe(BITUMEN, 1000, DictFrame.fromOne(ModItems.oil_tar, EnumTarType.CRUDE)); - registerRecipe(HEATINGOIL, 1000, ModItems.solid_fuel); + registerRecipe(WATER, 1000, Blocks.ice); + registerRecipe(LAVA, 1000, Blocks.obsidian); + + registerRecipe(OIL, SF_OIL, DictFrame.fromOne(ModItems.oil_tar, EnumTarType.CRUDE)); + registerRecipe(CRACKOIL, SF_OIL, DictFrame.fromOne(ModItems.oil_tar, EnumTarType.CRACK)); + registerRecipe(COALOIL, SF_OIL, DictFrame.fromOne(ModItems.oil_tar, EnumTarType.COAL)); + registerRecipe(HEAVYOIL, SF_HEAVY, DictFrame.fromOne(ModItems.oil_tar, EnumTarType.CRUDE)); + registerRecipe(BITUMEN, SF_BITUMEN, DictFrame.fromOne(ModItems.oil_tar, EnumTarType.CRUDE)); + + registerRecipe(SMEAR, SF_SMEAR, ModItems.solid_fuel); + registerRecipe(HEATINGOIL, SF_HEATING, ModItems.solid_fuel); + registerRecipe(RECLAIMED, SF_RECLAIMED, ModItems.solid_fuel); + registerRecipe(PETROIL, SF_PETROIL, ModItems.solid_fuel); + registerRecipe(LUBRICANT, SF_LUBE, ModItems.solid_fuel); + registerRecipe(NAPHTHA, SF_NAPH, ModItems.solid_fuel); + registerRecipe(NAPHTHA_CRACK, SF_NAPH, ModItems.solid_fuel); + registerRecipe(DIESEL, SF_DIESEL, ModItems.solid_fuel); + registerRecipe(DIESEL_CRACK, SF_DIESEL, ModItems.solid_fuel); + registerRecipe(LIGHTOIL, SF_LIGHT, ModItems.solid_fuel); + registerRecipe(LIGHTOIL_CRACK, SF_LIGHT, ModItems.solid_fuel); + registerRecipe(KEROSENE, SF_KEROSENE, ModItems.solid_fuel); + registerRecipe(GAS, SF_GAS, ModItems.solid_fuel); + registerRecipe(PETROLEUM, SF_PETROLEUM, ModItems.solid_fuel); + registerRecipe(LPG, SF_LPG, ModItems.solid_fuel); + registerRecipe(BIOGAS, SF_BIOGAS, ModItems.solid_fuel); + registerRecipe(BIOFUEL, SF_BIOFUEL, ModItems.solid_fuel); + registerRecipe(COALOIL, SF_COALOIL, ModItems.solid_fuel); + registerRecipe(AROMATICS, SF_AROMA, ModItems.solid_fuel); + registerRecipe(UNSATURATEDS, SF_UNSAT, ModItems.solid_fuel); } private static void registerRecipe(FluidType type, int quantity, Item output) { registerRecipe(type, quantity, new ItemStack(output)); } diff --git a/src/main/java/com/hbm/items/ItemEnums.java b/src/main/java/com/hbm/items/ItemEnums.java index 128d0e906..760fe724c 100644 --- a/src/main/java/com/hbm/items/ItemEnums.java +++ b/src/main/java/com/hbm/items/ItemEnums.java @@ -16,6 +16,7 @@ public class ItemEnums { public static enum EnumTarType { CRUDE, - CRACK + CRACK, + COAL } } diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index bceaf6a48..e033a0096 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -443,6 +443,7 @@ public class ModItems { public static Item powder_dura_steel; public static Item powder_polymer; + public static Item powder_bakelite; public static Item powder_euphemium; public static Item powder_meteorite; @@ -2885,6 +2886,7 @@ public class ModItems { powder_cerium = new ItemCustomLore().setRarity(EnumRarity.epic).setUnlocalizedName("powder_cerium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_cerium"); powder_dura_steel = new ItemCustomLore().setUnlocalizedName("powder_dura_steel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_dura_steel"); powder_polymer = new ItemCustomLore().setUnlocalizedName("powder_polymer").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_polymer"); + powder_bakelite = new ItemCustomLore().setUnlocalizedName("powder_bakelite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_bakelite"); powder_euphemium = new ItemCustomLore().setRarity(EnumRarity.epic).setUnlocalizedName("powder_euphemium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_euphemium"); powder_meteorite = new Item().setUnlocalizedName("powder_meteorite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_meteorite"); powder_lanthanium = new ItemCustomLore().setRarity(EnumRarity.epic).setUnlocalizedName("powder_lanthanium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_lanthanium"); @@ -5744,6 +5746,7 @@ public class ModItems { GameRegistry.registerItem(powder_beryllium, powder_beryllium.getUnlocalizedName()); GameRegistry.registerItem(powder_dura_steel, powder_dura_steel.getUnlocalizedName()); GameRegistry.registerItem(powder_polymer, powder_polymer.getUnlocalizedName()); + GameRegistry.registerItem(powder_bakelite, powder_bakelite.getUnlocalizedName()); GameRegistry.registerItem(powder_schrabidium, powder_schrabidium.getUnlocalizedName()); GameRegistry.registerItem(powder_schrabidate, powder_schrabidate.getUnlocalizedName()); GameRegistry.registerItem(powder_magnetized_tungsten, powder_magnetized_tungsten.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index 2c102212b..4637d8733 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -950,6 +950,7 @@ public class MainRegistry { RefineryRecipes.registerFractions(); RefineryRecipes.registerCracking(); LiquefactionRecipes.register(); + SolidificationRecipes.register(); FuelPoolRecipes.register(); TileEntityNukeCustom.registerBombItems(); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSolidifier.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSolidifier.java index 0096b6ac6..1297218ec 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSolidifier.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSolidifier.java @@ -1,11 +1,17 @@ package com.hbm.tileentity.machine; +import java.util.List; + +import com.hbm.interfaces.IFluidAcceptor; +import com.hbm.inventory.FluidStack; import com.hbm.inventory.FluidTank; +import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.recipes.LiquefactionRecipes; import com.hbm.inventory.recipes.SolidificationRecipes; import com.hbm.lib.Library; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.Tuple.Pair; import api.hbm.energy.IEnergyUser; import cpw.mods.fml.relauncher.Side; @@ -15,7 +21,7 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; -public class TileEntityMachineSolidifier extends TileEntityMachineBase implements IEnergyUser { +public class TileEntityMachineSolidifier extends TileEntityMachineBase implements IEnergyUser, IFluidAcceptor { public long power; public static final long maxPower = 100000; @@ -40,6 +46,7 @@ public class TileEntityMachineSolidifier extends TileEntityMachineBase implement if(!worldObj.isRemote) { this.power = Library.chargeTEFromItems(slots, 1, power, maxPower); + tank.setType(4, slots); tank.updateTank(this); this.trySubscribe(worldObj, xCoord + 2, yCoord + 1, zCoord, Library.POS_X); @@ -47,6 +54,11 @@ public class TileEntityMachineSolidifier extends TileEntityMachineBase implement this.trySubscribe(worldObj, xCoord, yCoord + 1, zCoord + 2, Library.POS_Z); this.trySubscribe(worldObj, xCoord, yCoord + 1, zCoord - 2, Library.NEG_Z); + if(this.canProcess()) + this.process(); + else + this.progress = 0; + NBTTagCompound data = new NBTTagCompound(); data.setLong("power", this.power); data.setInteger("progress", this.progress); @@ -54,6 +66,72 @@ public class TileEntityMachineSolidifier extends TileEntityMachineBase implement } } + @Override + public boolean canExtractItem(int slot, ItemStack stack, int side) { + return slot == 0; + } + + @Override + public int[] getAccessibleSlotsFromSide(int side) { + return new int[] { 0 }; + } + + public boolean canProcess() { + + if(this.power < usage) + return false; + + Pair out = SolidificationRecipes.getOutput(tank.getTankType()); + + if(out == null) + return false; + + int req = out.getKey(); + ItemStack stack = out.getValue(); + + if(req > tank.getFill()) + return false; + + if(slots[0] != null) { + + if(slots[0].getItem() != stack.getItem()) + return false; + + if(slots[0].getItemDamage() != stack.getItemDamage()) + return false; + + if(slots[0].stackSize + stack.stackSize > slots[0].getMaxStackSize()) + return false; + } + + return true; + } + + public void process() { + + this.power -= usage; + + progress++; + + if(progress >= processTime) { + + Pair out = SolidificationRecipes.getOutput(tank.getTankType()); + int req = out.getKey(); + ItemStack stack = out.getValue(); + tank.setFill(tank.getFill() - req); + + if(slots[0] == null) { + slots[0] = stack.copy(); + } else { + slots[0].stackSize += stack.stackSize; + } + + progress = 0; + + this.markDirty(); + } + } + @Override public void networkUnpack(NBTTagCompound nbt) { this.power = nbt.getLong("power"); @@ -86,6 +164,42 @@ public class TileEntityMachineSolidifier extends TileEntityMachineBase implement public long getMaxPower() { return maxPower; } + + @Override + public void setFillstate(int fill, int index) { + // TODO Auto-generated method stub + + } + + @Override + public void setFluidFill(int fill, FluidType type) { + // TODO Auto-generated method stub + + } + + @Override + public void setType(FluidType type, int index) { + // TODO Auto-generated method stub + + } + + @Override + public List getTanks() { + // TODO Auto-generated method stub + return null; + } + + @Override + public int getFluidFill(FluidType type) { + // TODO Auto-generated method stub + return 0; + } + + @Override + public int getMaxFluidFill(FluidType type) { + // TODO Auto-generated method stub + return 0; + } AxisAlignedBB bb = null; diff --git a/src/main/resources/assets/hbm/textures/items/oil_tar.coal.png b/src/main/resources/assets/hbm/textures/items/oil_tar.coal.png new file mode 100644 index 0000000000000000000000000000000000000000..da21005f9084668534ec1baf4866e65269abfe25 GIT binary patch literal 411 zcmV;M0c8G(P)a=D)qA0TOYE+foZpZz8M^*9ObGzNxY&K=2@3OV=c+BZ^ zV!z)Lh9M$CmSu%3uN0sZxnp*-tw}4Wfe^bMXXH@=M!Vc zy|Pm=)IwEFJfE@SYFOz5?B3tV%Yu>BCoc;!E`~uZRlUUXH3*QGg}#?@F|>ielxm}` jSQYw{wEo7ohqZhFd3%T64EwAt00000NkvXXu0mjf@0yc) literal 0 HcmV?d00001 From a2e0edc466448c06b765791b71db93d9c4786f00 Mon Sep 17 00:00:00 2001 From: Bob Date: Tue, 1 Feb 2022 23:15:17 +0100 Subject: [PATCH 3/3] solidifier model, version 2 --- .../hbm/blocks/machine/MachineSolidifier.java | 15 - src/main/java/com/hbm/handler/GUIHandler.java | 3 + .../container/ContainerLiquefactor.java | 2 +- .../container/ContainerSolidifier.java | 2 +- .../com/hbm/inventory/gui/GUISolidifier.java | 63 + src/main/java/com/hbm/main/ClientProxy.java | 1 + .../java/com/hbm/main/ResourceManager.java | 2 + .../hbm/render/item/ItemRenderLibrary.java | 11 + .../render/tileentity/RenderLiquefactor.java | 1 + .../render/tileentity/RenderSolidifier.java | 71 + .../machine/TileEntityMachineSolidifier.java | 3 - .../assets/hbm/models/machines/solidifier.obj | 1850 +++++++++++++++++ .../textures/models/machines/solidifier.png | Bin 0 -> 3223 bytes 13 files changed, 2004 insertions(+), 20 deletions(-) create mode 100644 src/main/java/com/hbm/inventory/gui/GUISolidifier.java create mode 100644 src/main/java/com/hbm/render/tileentity/RenderSolidifier.java create mode 100644 src/main/resources/assets/hbm/models/machines/solidifier.obj create mode 100644 src/main/resources/assets/hbm/textures/models/machines/solidifier.png diff --git a/src/main/java/com/hbm/blocks/machine/MachineSolidifier.java b/src/main/java/com/hbm/blocks/machine/MachineSolidifier.java index 3c27f6d11..4c3638218 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineSolidifier.java +++ b/src/main/java/com/hbm/blocks/machine/MachineSolidifier.java @@ -76,19 +76,4 @@ public class MachineSolidifier extends BlockDummyable implements ITooltipProvide EnumChatFormatting.DARK_GRAY + "" + EnumChatFormatting.ITALIC + "> to display more info"); } } - - @Override - public int getRenderType() { - return 0; - } - - @Override - public boolean isOpaqueCube() { - return true; - } - - @Override - public boolean renderAsNormalBlock() { - return true; - } } diff --git a/src/main/java/com/hbm/handler/GUIHandler.java b/src/main/java/com/hbm/handler/GUIHandler.java index b5d620a1e..62f36d35e 100644 --- a/src/main/java/com/hbm/handler/GUIHandler.java +++ b/src/main/java/com/hbm/handler/GUIHandler.java @@ -874,6 +874,9 @@ public class GUIHandler implements IGuiHandler { if(entity instanceof TileEntityMachineLiquefactor) { return new GUILiquefactor(player.inventory, (TileEntityMachineLiquefactor) entity); } + if(entity instanceof TileEntityMachineSolidifier) { + return new GUISolidifier(player.inventory, (TileEntityMachineSolidifier) entity); + } switch(ID) { case ModBlocks.guiID_test_difurnace: { diff --git a/src/main/java/com/hbm/inventory/container/ContainerLiquefactor.java b/src/main/java/com/hbm/inventory/container/ContainerLiquefactor.java index 6d89c0592..e12ffd7c1 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerLiquefactor.java +++ b/src/main/java/com/hbm/inventory/container/ContainerLiquefactor.java @@ -49,7 +49,7 @@ public class ContainerLiquefactor extends Container { ItemStack var5 = var4.getStack(); var3 = var5.copy(); - if(index <= 2) { + if(index <= 3) { if(!this.mergeItemStack(var5, 4, this.inventorySlots.size(), true)) { return null; } diff --git a/src/main/java/com/hbm/inventory/container/ContainerSolidifier.java b/src/main/java/com/hbm/inventory/container/ContainerSolidifier.java index ca604f7fd..b16c27f2d 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerSolidifier.java +++ b/src/main/java/com/hbm/inventory/container/ContainerSolidifier.java @@ -51,7 +51,7 @@ public class ContainerSolidifier extends Container { ItemStack var5 = var4.getStack(); var3 = var5.copy(); - if(index <= 2) { + if(index <= 4) { if(!this.mergeItemStack(var5, 5, this.inventorySlots.size(), true)) { return null; } diff --git a/src/main/java/com/hbm/inventory/gui/GUISolidifier.java b/src/main/java/com/hbm/inventory/gui/GUISolidifier.java new file mode 100644 index 000000000..665d74ddf --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GUISolidifier.java @@ -0,0 +1,63 @@ +package com.hbm.inventory.gui; + +import org.lwjgl.opengl.GL11; + +import com.hbm.inventory.FluidTank; +import com.hbm.inventory.container.ContainerSolidifier; +import com.hbm.lib.RefStrings; +import com.hbm.tileentity.machine.TileEntityMachineSolidifier; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.util.ResourceLocation; + +public class GUISolidifier extends GuiInfoContainer { + + private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/processing/gui_solidifier.png"); + private TileEntityMachineSolidifier solidifier; + + public GUISolidifier(InventoryPlayer invPlayer, TileEntityMachineSolidifier tedf) { + super(new ContainerSolidifier(invPlayer, tedf)); + solidifier = tedf; + + this.xSize = 176; + this.ySize = 204; + } + + @Override + public void drawScreen(int mouseX, int mouseY, float f) { + super.drawScreen(mouseX, mouseY, f); + + solidifier.tank.renderTankInfo(this, mouseX, mouseY, guiLeft + 35, guiTop + 36, 16, 52); + this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 134, guiTop + 18, 16, 52, solidifier.power, solidifier.maxPower); + } + + @Override + protected void drawGuiContainerForegroundLayer(int i, int j) { + + String name = this.solidifier.hasCustomInventoryName() ? this.solidifier.getInventoryName() : I18n.format(this.solidifier.getInventoryName()); + + this.fontRendererObj.drawString(name, 70 - this.fontRendererObj.getStringWidth(name) / 2, 6, 0xC7C1A3); + this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); + } + + @Override + protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + + int i = (int)(solidifier.getPower() * 52 / solidifier.getMaxPower()); + drawTexturedModalRect(guiLeft + 134, guiTop + 70 - i, 176, 52 - i, 16, i); + + int j = solidifier.progress * 42 / solidifier.processTime; + drawTexturedModalRect(guiLeft + 42, guiTop + 17, 192, 0, j, 35); + + if(i > 0) + drawTexturedModalRect(guiLeft + 138, guiTop + 4, 176, 52, 9, 12); + + Minecraft.getMinecraft().getTextureManager().bindTexture(solidifier.tank.getSheet()); + solidifier.tank.renderTank(this, guiLeft + 35, guiTop + 88, solidifier.tank.getTankType().textureX() * FluidTank.x, solidifier.tank.getTankType().textureY() * FluidTank.y, 16, 52); + } +} diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index 0031bf6ee..1c3eb9ce7 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -204,6 +204,7 @@ public class ClientProxy extends ServerProxy { ClientRegistry.bindTileEntitySpecialRenderer(TileEntityDeuteriumTower.class, new RenderDeuteriumTower()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineCatalyticCracker.class, new RenderCatalyticCracker()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineLiquefactor.class, new RenderLiquefactor()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineSolidifier.class, new RenderSolidifier()); //AMS ClientRegistry.bindTileEntitySpecialRenderer(TileEntityAMSBase.class, new RenderAMSBase()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityAMSEmitter.class, new RenderAMSEmitter()); diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index 719d2609c..f22019103 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -67,6 +67,7 @@ public class ResourceManager { public static final IModelCustom fraction_spacer = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/machines/fraction_spacer.obj")); public static final IModelCustom cracking_tower = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/cracking_tower.obj")); public static final IModelCustom liquefactor = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/liquefactor.obj")); + public static final IModelCustom solidifier = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/solidifier.obj")); //Flare Stack public static final IModelCustom oilflare = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/oilFlare.obj")); @@ -345,6 +346,7 @@ public class ResourceManager { public static final ResourceLocation fraction_spacer_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/fraction_spacer.png"); public static final ResourceLocation cracking_tower_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/cracking_tower.png"); public static final ResourceLocation liquefactor_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/liquefactor.png"); + public static final ResourceLocation solidifier_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/solidifier.png"); //Flare Stack public static final ResourceLocation oilflare_tex = new ResourceLocation(RefStrings.MODID, "textures/models/oilFlareTexture.png"); diff --git a/src/main/java/com/hbm/render/item/ItemRenderLibrary.java b/src/main/java/com/hbm/render/item/ItemRenderLibrary.java index b522a905d..e621458df 100644 --- a/src/main/java/com/hbm/render/item/ItemRenderLibrary.java +++ b/src/main/java/com/hbm/render/item/ItemRenderLibrary.java @@ -1194,6 +1194,17 @@ public class ItemRenderLibrary { bindTexture(ResourceManager.liquefactor_tex); ResourceManager.liquefactor.renderPart("Main"); GL11.glShadeModel(GL11.GL_FLAT); }}); + + renderers.put(Item.getItemFromBlock(ModBlocks.machine_solidifier), new ItemRenderBase( ) { + public void renderInventory() { + GL11.glTranslated(0, -2.5, 0); + GL11.glScaled(3, 3, 3); + } + public void renderCommon() { + GL11.glShadeModel(GL11.GL_SMOOTH); + bindTexture(ResourceManager.solidifier_tex); ResourceManager.solidifier.renderPart("Main"); + GL11.glShadeModel(GL11.GL_FLAT); + }}); } private static void bindTexture(ResourceLocation res) { diff --git a/src/main/java/com/hbm/render/tileentity/RenderLiquefactor.java b/src/main/java/com/hbm/render/tileentity/RenderLiquefactor.java index 8d01c924f..c7e4d8185 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderLiquefactor.java +++ b/src/main/java/com/hbm/render/tileentity/RenderLiquefactor.java @@ -57,6 +57,7 @@ public class RenderLiquefactor extends TileEntitySpecialRenderer { GL11.glShadeModel(GL11.GL_FLAT); GL11.glEnable(GL11.GL_CULL_FACE); + GL11.glEnable(GL11.GL_LIGHTING); GL11.glPopMatrix(); } } diff --git a/src/main/java/com/hbm/render/tileentity/RenderSolidifier.java b/src/main/java/com/hbm/render/tileentity/RenderSolidifier.java new file mode 100644 index 000000000..d31afee05 --- /dev/null +++ b/src/main/java/com/hbm/render/tileentity/RenderSolidifier.java @@ -0,0 +1,71 @@ +package com.hbm.render.tileentity; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.main.ResourceManager; +import com.hbm.tileentity.machine.TileEntityMachineSolidifier; + +import net.minecraft.client.renderer.OpenGlHelper; +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.tileentity.TileEntity; + +public class RenderSolidifier extends TileEntitySpecialRenderer { + + @Override + public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float f) { + + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5D, y, z + 0.5D); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glDisable(GL11.GL_CULL_FACE); + + switch(tileEntity.getBlockMetadata() - BlockDummyable.offset) { + case 2: GL11.glRotatef(90, 0F, 1F, 0F); break; + case 4: GL11.glRotatef(180, 0F, 1F, 0F); break; + case 3: GL11.glRotatef(270, 0F, 1F, 0F); break; + case 5: GL11.glRotatef(0, 0F, 1F, 0F); break; + } + + TileEntityMachineSolidifier liq = (TileEntityMachineSolidifier) tileEntity; + + GL11.glShadeModel(GL11.GL_SMOOTH); + bindTexture(ResourceManager.solidifier_tex); + ResourceManager.solidifier.renderPart("Main"); + + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glDisable(GL11.GL_TEXTURE_2D); + + if(liq.tank.getFill() > 0) { + int color = liq.tank.getTankType().getColor(); + GL11.glColor3ub((byte) ((color & 0xFF0000) >> 16), (byte) ((color & 0x00FF00) >> 8), (byte) ((color & 0x0000FF) >> 0)); + + double height = (double)liq.tank.getFill() / (double)liq.tank.getMaxFill(); + GL11.glPushMatrix(); + GL11.glTranslated(0, 1, 0); + GL11.glScaled(1, height, 1); + GL11.glTranslated(0, -1, 0); + ResourceManager.solidifier.renderPart("Fluid"); + GL11.glPopMatrix(); + } + + GL11.glEnable(GL11.GL_BLEND); + GL11.glAlphaFunc(GL11.GL_GREATER, 0); + OpenGlHelper.glBlendFunc(770, 771, 1, 0); + GL11.glColor4f(0.75F, 1.0F, 1.0F, 0.15F); + GL11.glDepthMask(false); + + ResourceManager.solidifier.renderPart("Glass"); + + GL11.glDepthMask(true); + GL11.glAlphaFunc(GL11.GL_GREATER, 0.1F); + GL11.glDisable(GL11.GL_BLEND); + GL11.glEnable(GL11.GL_TEXTURE_2D); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + + GL11.glShadeModel(GL11.GL_FLAT); + GL11.glEnable(GL11.GL_CULL_FACE); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glPopMatrix(); + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSolidifier.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSolidifier.java index 1297218ec..0eb171db1 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSolidifier.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSolidifier.java @@ -3,11 +3,9 @@ package com.hbm.tileentity.machine; import java.util.List; import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.inventory.FluidStack; import com.hbm.inventory.FluidTank; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; -import com.hbm.inventory.recipes.LiquefactionRecipes; import com.hbm.inventory.recipes.SolidificationRecipes; import com.hbm.lib.Library; import com.hbm.tileentity.TileEntityMachineBase; @@ -18,7 +16,6 @@ import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; public class TileEntityMachineSolidifier extends TileEntityMachineBase implements IEnergyUser, IFluidAcceptor { diff --git a/src/main/resources/assets/hbm/models/machines/solidifier.obj b/src/main/resources/assets/hbm/models/machines/solidifier.obj new file mode 100644 index 000000000..62990bfc7 --- /dev/null +++ b/src/main/resources/assets/hbm/models/machines/solidifier.obj @@ -0,0 +1,1850 @@ +# Blender v2.79 (sub 0) OBJ File: 'solidifier2.blend' +# www.blender.org +o Fluid +v 0.625000 2.750000 -1.137259 +v 0.487740 2.750000 -1.000000 +v 0.437500 2.750000 -0.812500 +v 0.487740 2.750000 -0.625000 +v 0.625000 2.750000 -0.487741 +v 0.812500 2.750000 -0.437500 +v 1.000000 2.750000 -0.487741 +v 1.137259 2.750000 -0.625000 +v 1.187500 2.750000 -0.812500 +v 1.137259 2.750000 -1.000000 +v 1.000000 2.750000 -1.137259 +v 0.812500 2.750000 -1.187500 +v 1.000000 1.250000 -1.137259 +v 1.137260 1.250000 -1.000000 +v 1.187500 1.250000 -0.812500 +v 1.137259 1.250000 -0.625000 +v 1.000000 1.250000 -0.487741 +v 0.812500 1.250000 -0.437500 +v 0.625000 1.250000 -0.487741 +v 0.487740 1.250000 -0.625000 +v 0.437500 1.250000 -0.812500 +v 0.487740 1.250000 -1.000000 +v 0.625000 1.250000 -1.137259 +v 0.812500 1.250000 -1.187500 +vn 0.0000 0.0000 -1.0000 +vn 0.3786 0.6532 -0.6557 +vn 0.5000 0.0000 -0.8660 +vn -0.5000 0.0000 0.8660 +vn -0.6557 0.6532 0.3786 +vn -0.8660 0.0000 0.5000 +vn -0.8660 0.0000 -0.5000 +vn -0.3786 0.6532 -0.6557 +vn -0.5000 0.0000 -0.8660 +vn 1.0000 0.0000 0.0000 +vn 0.6557 0.6532 0.3786 +vn 0.8660 0.0000 0.5000 +vn 0.0000 0.0000 1.0000 +vn -0.3786 0.6532 0.6557 +vn -1.0000 0.0000 0.0000 +vn -0.6557 0.6532 -0.3786 +vn 0.8660 0.0000 -0.5000 +vn 0.7571 0.6532 0.0000 +vn 0.5000 0.0000 0.8660 +vn 0.0000 0.6532 0.7571 +vn -0.7571 0.6532 0.0000 +vn 0.6557 0.6532 -0.3786 +vn 0.0000 0.6532 -0.7571 +vn 0.3786 0.6532 0.6557 +s 1 +f 24//1 11//2 13//3 +f 19//4 4//5 20//6 +f 22//7 1//8 23//9 +f 15//10 8//11 16//12 +f 18//13 5//14 19//4 +f 21//15 2//16 22//7 +f 14//17 9//18 15//10 +f 17//19 6//20 18//13 +f 20//6 3//21 21//15 +f 13//3 10//22 14//17 +f 23//9 12//23 24//1 +f 16//12 7//24 17//19 +f 4//5 8//11 12//23 +f 24//1 12//23 11//2 +f 19//4 5//14 4//5 +f 22//7 2//16 1//8 +f 15//10 9//18 8//11 +f 18//13 6//20 5//14 +f 21//15 3//21 2//16 +f 14//17 10//22 9//18 +f 17//19 7//24 6//20 +f 20//6 4//5 3//21 +f 13//3 11//2 10//22 +f 23//9 1//8 12//23 +f 16//12 8//11 7//24 +f 12//23 1//8 2//16 +f 2//16 3//21 4//5 +f 4//5 5//14 6//20 +f 6//20 7//24 4//5 +f 7//24 8//11 4//5 +f 8//11 9//18 10//22 +f 10//22 11//2 12//23 +f 12//23 2//16 4//5 +f 8//11 10//22 12//23 +o Glass +v 0.812500 1.250000 -1.312500 +v 0.562500 1.250000 -1.245513 +v 0.379487 1.250000 -1.062500 +v 0.312500 1.250000 -0.812500 +v 0.379487 1.250000 -0.562500 +v 0.562500 1.250000 -0.379487 +v 0.812500 1.250000 -0.312500 +v 1.062500 1.250000 -0.379487 +v 1.245513 1.250000 -0.562500 +v 1.312500 1.250000 -0.812500 +v 1.245513 1.250000 -1.062500 +v 1.062500 1.250000 -1.245512 +v 0.562500 2.750000 -1.245513 +v 0.812500 2.750000 -1.312500 +v 0.379487 2.750000 -1.062500 +v 0.312500 2.750000 -0.812500 +v 0.379487 2.750000 -0.562500 +v 0.562500 2.750000 -0.379487 +v 0.812500 2.750000 -0.312500 +v 1.062500 2.750000 -0.379487 +v 1.245513 2.750000 -0.562500 +v 1.312500 2.750000 -0.812500 +v 1.245513 2.750000 -1.062500 +v 1.062500 2.750000 -1.245512 +vn 0.0000 0.0000 -1.0000 +vn 0.5000 0.0000 -0.8660 +vn -0.8660 0.0000 -0.5000 +vn -0.5000 0.0000 -0.8660 +vn 1.0000 0.0000 0.0000 +vn 0.8660 0.0000 0.5000 +vn 0.0000 0.0000 1.0000 +vn -0.5000 0.0000 0.8660 +vn -1.0000 0.0000 0.0000 +vn 0.8660 0.0000 -0.5000 +vn 0.5000 0.0000 0.8660 +vn -0.8660 0.0000 0.5000 +s 1 +f 25//25 48//26 36//26 +f 27//27 37//28 26//28 +f 34//29 45//30 33//30 +f 31//31 42//32 30//32 +f 28//33 39//27 27//27 +f 35//34 46//29 34//29 +f 32//35 43//31 31//31 +f 29//36 40//33 28//33 +f 36//26 47//34 35//34 +f 26//28 38//25 25//25 +f 33//30 44//35 32//35 +f 30//32 41//36 29//36 +f 25//25 38//25 48//26 +f 27//27 39//27 37//28 +f 34//29 46//29 45//30 +f 31//31 43//31 42//32 +f 28//33 40//33 39//27 +f 35//34 47//34 46//29 +f 32//35 44//35 43//31 +f 29//36 41//36 40//33 +f 36//26 48//26 47//34 +f 26//28 37//28 38//25 +f 33//30 45//30 44//35 +f 30//32 42//32 41//36 +o Main +v -0.250000 1.250000 1.500000 +v 0.250000 1.250000 1.500000 +v -0.250000 1.750000 1.500000 +v 0.250000 1.750000 1.500000 +v -0.250000 0.000000 0.250000 +v 0.250000 0.000000 0.250000 +v -0.250000 0.000000 -0.250000 +v 0.250000 0.000000 -0.250000 +v 1.500000 1.250000 0.250000 +v 1.500000 1.250000 -0.250000 +v 1.500000 1.750000 0.250000 +v 1.500000 1.750000 -0.250000 +v 0.250000 1.250000 -1.500000 +v -0.250000 1.250000 -1.500000 +v 0.250000 1.750000 -1.500000 +v -0.250000 1.750000 -1.500000 +v -1.500000 1.250000 -0.250000 +v -1.500000 1.250000 0.250000 +v -1.500000 1.750000 -0.250000 +v -1.500000 1.750000 0.250000 +v -0.250000 4.000000 0.250000 +v 0.250000 4.000000 0.250000 +v -0.250000 4.000000 -0.250000 +v 0.250000 4.000000 -0.250000 +v 0.500000 0.000000 -0.500000 +v 0.500000 1.000000 -0.500000 +v 0.500000 0.000000 -1.500000 +v 0.500000 1.000000 -1.500000 +v 1.500000 0.000000 -0.500000 +v 1.500000 1.000000 -0.500000 +v 1.500000 0.000000 -1.500000 +v 1.500000 1.000000 -1.500000 +v -1.500000 0.000000 -0.500000 +v -1.500000 1.000000 -0.500000 +v -1.500000 0.000000 -1.500000 +v -1.500000 1.000000 -1.500000 +v -0.500000 0.000000 -0.500000 +v -0.500000 1.000000 -0.500000 +v -0.500000 0.000000 -1.500000 +v -0.500000 1.000000 -1.500000 +v 0.500000 0.000000 1.500000 +v 0.500000 1.000000 1.500000 +v 0.500000 0.000000 0.500000 +v 0.500000 1.000000 0.500000 +v 1.500000 0.000000 1.500000 +v 1.500000 1.000000 1.500000 +v 1.500000 0.000000 0.500000 +v 1.500000 1.000000 0.500000 +v -1.500000 0.000000 1.500000 +v -1.500000 1.000000 1.500000 +v -1.500000 0.000000 0.500000 +v -1.500000 1.000000 0.500000 +v -0.500000 0.000000 1.500000 +v -0.500000 1.000000 1.500000 +v -0.500000 0.000000 0.500000 +v -0.500000 1.000000 0.500000 +v 0.500000 0.500000 -1.500000 +v -0.500000 0.500000 -1.500000 +v 0.500000 0.500000 1.500000 +v -0.500000 0.500000 1.500000 +v 0.500000 0.500000 -0.500000 +v -0.500000 0.500000 -0.500000 +v 0.500000 0.500000 0.500000 +v -0.500000 0.500000 0.500000 +v 1.500000 0.500000 -0.500000 +v -1.500000 0.500000 -0.500000 +v 1.500000 0.500000 0.500000 +v -1.500000 0.500000 0.500000 +v 0.500000 0.750000 0.250000 +v -0.500000 0.750000 0.250000 +v 1.500000 0.750000 0.250000 +v -1.500000 0.750000 0.250000 +v 0.500000 0.750000 -0.250000 +v -0.500000 0.750000 -0.250000 +v 1.500000 0.750000 -0.250000 +v -1.500000 0.750000 -0.250000 +v -0.250000 0.750000 -1.500000 +v -0.250000 0.750000 1.500000 +v -0.250000 0.750000 -0.500000 +v -0.250000 0.750000 0.500000 +v 0.250000 0.750000 -1.500000 +v 0.250000 0.750000 1.500000 +v 0.250000 0.750000 -0.500000 +v 0.250000 0.750000 0.500000 +v -0.250000 1.000000 -0.250000 +v -0.250000 1.000000 0.250000 +v 0.250000 1.000000 0.250000 +v 0.250000 1.000000 -0.250000 +v 0.132683 1.000000 -0.673880 +v 0.457107 1.000000 -0.457107 +v 0.673879 1.000000 -0.132684 +v 0.750000 1.000000 0.250000 +v 0.673880 1.000000 0.632684 +v 0.457107 1.000000 0.957107 +v 0.132683 1.000000 1.173880 +v -0.250000 1.000000 1.250000 +v -0.632684 1.000000 1.173880 +v -0.957107 1.000000 0.957107 +v -1.173880 1.000000 0.632684 +v -1.250000 1.000000 0.250000 +v -1.173880 1.000000 -0.132683 +v -0.957107 1.000000 -0.457107 +v -0.632683 1.000000 -0.673880 +v -0.250000 1.000000 -0.750000 +v -0.250000 3.750000 -0.750000 +v 0.132683 3.750000 -0.673880 +v 0.457107 3.750000 -0.457107 +v 0.673879 3.750000 -0.132684 +v 0.750000 3.750000 0.250000 +v 0.673880 3.750000 0.632684 +v 0.457107 3.750000 0.957107 +v 0.132683 3.750000 1.173880 +v -0.250000 3.750000 1.250000 +v -0.632684 3.750000 1.173880 +v -0.957107 3.750000 0.957107 +v -1.173880 3.750000 0.632684 +v -1.250000 3.750000 0.250000 +v -1.173880 3.750000 -0.132683 +v -0.957107 3.750000 -0.457107 +v -0.632683 3.750000 -0.673880 +v -0.250000 3.750000 0.250000 +v 0.250000 3.750000 0.250000 +v -0.250000 3.750000 -0.250000 +v 0.250000 3.750000 -0.250000 +v -0.250000 1.750000 1.375000 +v -0.250000 1.250000 1.375000 +v 0.250000 1.250000 1.375000 +v 0.250000 1.750000 1.375000 +v -1.375000 1.750000 -0.250000 +v -1.375000 1.250000 -0.250000 +v -1.375000 1.250000 0.250000 +v -1.375000 1.750000 0.250000 +v -0.125000 1.625000 1.250000 +v -0.125000 1.375000 1.250000 +v 0.125000 1.375000 1.250000 +v 0.125000 1.625000 1.250000 +v -1.250000 1.625000 -0.125000 +v -1.250000 1.375000 -0.125000 +v -1.250000 1.375000 0.125000 +v -1.250000 1.625000 0.125000 +v -1.125000 1.625000 -0.125000 +v -1.125000 1.375000 -0.125000 +v -1.125000 1.375000 0.125000 +v -1.125000 1.625000 0.125000 +v -0.125000 1.625000 1.125000 +v -0.125000 1.375000 1.125000 +v 0.125000 1.375000 1.125000 +v 0.125000 1.625000 1.125000 +v -1.125000 0.750000 0.062500 +v -1.125000 0.750000 -0.062500 +v -1.250000 0.437500 -0.062500 +v -1.250000 0.437500 0.062500 +v -1.125000 0.562500 -0.062500 +v -1.125000 0.562500 0.062500 +v -1.250000 3.875000 0.062500 +v -1.250000 3.875000 -0.062500 +v -1.125000 3.750000 0.062500 +v -1.125000 3.750000 -0.062500 +v -0.250000 3.875000 0.062500 +v -0.250000 3.875000 -0.062500 +v -0.250000 3.750000 0.062500 +v -0.250000 3.750000 -0.062500 +v 0.250000 1.750000 -1.375000 +v 0.250000 1.250000 -1.375000 +v -0.250000 1.250000 -1.375000 +v -0.250000 1.750000 -1.375000 +v 0.125000 1.625000 -1.250000 +v 0.125000 1.375000 -1.250000 +v -0.125000 1.375000 -1.250000 +v -0.125000 1.625000 -1.250000 +v 1.375000 1.750000 0.250000 +v 1.375000 1.250000 0.250000 +v 1.375000 1.250000 -0.250000 +v 1.375000 1.750000 -0.250000 +v 1.250000 1.625000 0.125000 +v 1.250000 1.375000 0.125000 +v 1.250000 1.375000 -0.125000 +v 1.250000 1.625000 -0.125000 +v -0.250000 0.562500 -0.062500 +v -0.250000 0.562500 0.062500 +v -0.250000 0.437500 -0.062500 +v -0.250000 0.437500 0.062500 +v 0.062500 0.750000 1.125000 +v -0.062500 0.750000 1.125000 +v -0.062500 0.437500 1.250000 +v 0.062500 0.437500 1.250000 +v -0.062500 0.562500 1.125000 +v 0.062500 0.562500 1.125000 +v 0.062500 3.875000 1.250000 +v -0.062500 3.875000 1.250000 +v 0.062500 3.750000 1.125000 +v -0.062500 3.750000 1.125000 +v 0.062500 3.875000 0.250000 +v -0.062500 3.875000 0.250000 +v 0.062500 3.750000 0.250000 +v -0.062500 3.750000 0.250000 +v -0.062500 0.562500 0.250000 +v 0.062500 0.562500 0.250000 +v -0.062500 0.437500 0.250000 +v 0.062500 0.437500 0.250000 +v 0.375000 1.000000 1.125000 +v 0.375000 1.000000 0.375000 +v 1.125000 1.000000 1.125000 +v 1.125000 1.000000 0.375000 +v 0.375000 3.250000 1.125000 +v 0.375000 3.250000 0.375000 +v 1.125000 3.250000 0.375000 +v 1.125000 3.250000 1.125000 +v -1.125000 1.000000 -0.375000 +v -1.125000 1.000000 -1.125000 +v -0.375000 1.000000 -0.375000 +v -0.375000 1.000000 -1.125000 +v -1.125000 3.250000 -0.375000 +v -1.125000 3.250000 -1.125000 +v -0.375000 3.250000 -1.125000 +v -0.375000 3.250000 -0.375000 +v 1.250000 0.437500 0.062500 +v 1.250000 0.437500 -0.062500 +v 1.125000 0.562500 0.062500 +v 1.125000 0.562500 -0.062500 +v 0.250000 0.562500 0.062500 +v 0.250000 0.562500 -0.062500 +v 0.250000 0.437500 0.062500 +v 0.250000 0.437500 -0.062500 +v 1.250000 1.375000 0.062500 +v 1.250000 1.375000 -0.062500 +v 1.125000 1.375000 0.062500 +v 1.125000 1.375000 -0.062500 +v 0.625000 1.625000 0.125000 +v 0.625000 1.375000 0.125000 +v 0.625000 1.375000 -0.125000 +v 0.625000 1.625000 -0.125000 +v 0.125000 1.625000 -0.625000 +v 0.125000 1.375000 -0.625000 +v -0.125000 1.375000 -0.625000 +v -0.125000 1.625000 -0.625000 +v 0.062500 0.437500 -1.250000 +v -0.062500 0.437500 -1.250000 +v 0.062500 0.562500 -1.125000 +v -0.062500 0.562500 -1.125000 +v 0.062500 0.562500 -0.250000 +v -0.062500 0.562500 -0.250000 +v 0.062500 0.437500 -0.250000 +v -0.062500 0.437500 -0.250000 +v 0.062500 1.375000 -1.250000 +v -0.062500 1.375000 -1.250000 +v 0.062500 1.375000 -1.125000 +v -0.062500 1.375000 -1.125000 +v 1.250000 1.000000 1.250000 +v 1.375000 1.000000 1.250000 +v 1.250000 1.000000 1.375000 +v 1.375000 1.000000 1.375000 +v 1.250000 3.375000 1.250000 +v 1.375000 3.375000 1.250000 +v 1.250000 3.375000 1.375000 +v 1.375000 3.500000 1.375000 +v 1.250000 3.500000 1.250000 +v 1.250000 1.000000 -1.250000 +v 1.250000 1.000000 -1.375000 +v 1.375000 1.000000 -1.250000 +v 1.375000 1.000000 -1.375000 +v 1.250000 3.375000 -1.250000 +v 1.250000 3.375000 -1.375000 +v 1.375000 3.375000 -1.250000 +v 1.375000 3.500000 -1.375000 +v 1.250000 3.500000 -1.250000 +v -1.250000 1.000000 -1.250000 +v -1.375000 1.000000 -1.250000 +v -1.250000 1.000000 -1.375000 +v -1.375000 1.000000 -1.375000 +v -1.250000 3.375000 -1.250000 +v -1.375000 3.375000 -1.250000 +v -1.250000 3.375000 -1.375000 +v -1.375000 3.500000 -1.375000 +v -1.250000 3.500000 -1.250000 +v -1.250000 1.000000 1.250000 +v -1.250000 1.000000 1.375000 +v -1.375000 1.000000 1.250000 +v -1.375000 1.000000 1.375000 +v -1.250000 3.375000 1.250000 +v -1.250000 3.375000 1.375000 +v -1.375000 3.375000 1.250000 +v -1.375000 3.500000 1.375000 +v -1.250000 3.500000 1.250000 +v 0.812500 1.250000 -1.312500 +v 0.562500 1.250000 -1.245513 +v 0.379487 1.250000 -1.062500 +v 0.312500 1.250000 -0.812500 +v 0.379487 1.250000 -0.562500 +v 0.562500 1.250000 -0.379487 +v 0.812500 1.250000 -0.312500 +v 1.062500 1.250000 -0.379487 +v 1.245513 1.250000 -0.562500 +v 1.312500 1.250000 -0.812500 +v 1.245513 1.250000 -1.062500 +v 1.062500 1.250000 -1.245512 +v 0.812500 2.750000 -1.312500 +v 0.562500 2.750000 -1.245513 +v 0.379487 2.750000 -1.062500 +v 0.312500 2.750000 -0.812500 +v 0.379487 2.750000 -0.562500 +v 0.562500 2.750000 -0.379487 +v 0.812500 2.750000 -0.312500 +v 1.062500 2.750000 -0.379487 +v 1.245513 2.750000 -0.562500 +v 1.312500 2.750000 -0.812500 +v 1.245513 2.750000 -1.062500 +v 1.062500 2.750000 -1.245512 +v 0.562500 3.000000 -1.245513 +v 0.812500 3.000000 -1.312500 +v 0.379487 3.000000 -1.062500 +v 0.312500 3.000000 -0.812500 +v 0.379487 3.000000 -0.562500 +v 0.562500 3.000000 -0.379487 +v 0.812500 3.000000 -0.312500 +v 1.062500 3.000000 -0.379487 +v 1.245513 3.000000 -0.562500 +v 1.312500 3.000000 -0.812500 +v 1.245513 3.000000 -1.062500 +v 1.062500 3.000000 -1.245512 +v 0.105393 3.750000 -0.193781 +v 0.105393 3.875000 -0.193781 +v 0.193781 3.750000 -0.105393 +v 0.193781 3.875000 -0.105393 +v 0.724112 3.875000 -0.812500 +v 0.812500 3.875000 -0.724112 +v 0.812500 3.750000 -0.724112 +v 0.900888 3.750000 -0.812500 +v 0.724112 3.750000 -0.812500 +v 0.812500 3.750000 -0.900888 +v 0.812500 3.000000 -0.900888 +v 0.724112 3.000000 -0.812500 +v 0.900888 3.000000 -0.812500 +v 0.812500 3.000000 -0.724112 +v 0.132683 1.000000 -0.673880 +v 0.457107 1.000000 -0.457107 +v 0.673879 1.000000 -0.132684 +v 0.750000 1.000000 0.250000 +v 0.673880 1.000000 0.632684 +v 0.457107 1.000000 0.957107 +v 0.132683 1.000000 1.173880 +v -0.250000 1.000000 1.250000 +v -0.632684 1.000000 1.173880 +v -0.957107 1.000000 0.957107 +v -1.173880 1.000000 0.632684 +v -1.250000 1.000000 0.250000 +v -1.173880 1.000000 -0.132683 +v -0.957107 1.000000 -0.457107 +v -0.632683 1.000000 -0.673880 +v -0.250000 1.000000 -0.750000 +v -0.250000 3.750000 -0.750000 +v 0.132683 3.750000 -0.673880 +v 0.457107 3.750000 -0.457107 +v 0.673879 3.750000 -0.132684 +v 0.750000 3.750000 0.250000 +v 0.673880 3.750000 0.632684 +v 0.457107 3.750000 0.957107 +v 0.132683 3.750000 1.173880 +v -0.250000 3.750000 1.250000 +v -0.632684 3.750000 1.173880 +v -0.957107 3.750000 0.957107 +v -1.173880 3.750000 0.632684 +v -1.250000 3.750000 0.250000 +v -1.173880 3.750000 -0.132683 +v -0.957107 3.750000 -0.457107 +v -0.632683 3.750000 -0.673880 +v 0.812500 1.000000 -1.312500 +v 0.562500 1.000000 -1.245513 +v 0.379487 1.000000 -1.062500 +v 0.312500 1.000000 -0.812500 +v 0.379487 1.000000 -0.562500 +v 0.562500 1.000000 -0.379487 +v 0.812500 1.000000 -0.312500 +v 1.062500 1.000000 -0.379487 +v 1.245513 1.000000 -0.562500 +v 1.312500 1.000000 -0.812500 +v 1.245513 1.000000 -1.062500 +v 1.062500 1.000000 -1.245512 +v 0.812500 1.250000 -1.312500 +v 0.562500 1.250000 -1.245513 +v 0.379487 1.250000 -1.062500 +v 0.312500 1.250000 -0.812500 +v 0.379487 1.250000 -0.562500 +v 0.562500 1.250000 -0.379487 +v 0.812500 1.250000 -0.312500 +v 1.062500 1.250000 -0.379487 +v 1.245513 1.250000 -0.562500 +v 1.312500 1.250000 -0.812500 +v 1.245513 1.250000 -1.062500 +v 1.062500 1.250000 -1.245512 +v 0.812500 2.750000 -1.312500 +v 0.562500 2.750000 -1.245513 +v 0.379487 2.750000 -1.062500 +v 0.312500 2.750000 -0.812500 +v 0.379487 2.750000 -0.562500 +v 0.562500 2.750000 -0.379487 +v 0.812500 2.750000 -0.312500 +v 1.062500 2.750000 -0.379487 +v 1.245513 2.750000 -0.562500 +v 1.312500 2.750000 -0.812500 +v 1.245513 2.750000 -1.062500 +v 1.062500 2.750000 -1.245512 +v 0.562500 3.000000 -1.245513 +v 0.812500 3.000000 -1.312500 +v 0.379487 3.000000 -1.062500 +v 0.312500 3.000000 -0.812500 +v 0.379487 3.000000 -0.562500 +v 0.562500 3.000000 -0.379487 +v 0.812500 3.000000 -0.312500 +v 1.062500 3.000000 -0.379487 +v 1.245513 3.000000 -0.562500 +v 1.312500 3.000000 -0.812500 +v 1.245513 3.000000 -1.062500 +v 1.062500 3.000000 -1.245512 +vt 0.041667 0.153846 +vt 0.000000 0.230769 +vt 0.000000 0.153846 +vt 0.875000 0.346154 +vt 0.833333 0.423077 +vt 0.833333 0.346154 +vt 0.041667 0.153846 +vt 0.000000 0.230769 +vt 0.000000 0.153846 +vt 0.041667 0.153846 +vt 0.000000 0.230769 +vt 0.000000 0.153846 +vt 0.041667 0.153846 +vt 0.000000 0.230769 +vt 0.000000 0.153846 +vt 0.604167 0.461538 +vt 0.645833 0.538462 +vt 0.604167 0.538462 +vt 0.083333 0.076923 +vt -0.000000 0.153846 +vt 0.000000 -0.000000 +vt 0.250000 0.153846 +vt 0.166667 0.153846 +vt 0.166667 0.076923 +vt 0.083333 0.153846 +vt 0.000000 -0.000000 +vt 0.083333 0.000000 +vt 0.083333 -0.000000 +vt -0.000000 0.153846 +vt -0.000000 -0.000000 +vt 0.083333 0.076923 +vt 0.000000 0.153846 +vt 0.000000 -0.000000 +vt 0.250000 0.153846 +vt 0.166667 0.153846 +vt 0.166667 0.076923 +vt 0.166667 -0.000000 +vt 0.250000 0.076923 +vt 0.166667 0.076923 +vt 0.083333 0.153846 +vt 0.000000 -0.000000 +vt 0.083333 0.000000 +vt -0.000000 -0.000000 +vt 0.083333 0.153846 +vt -0.000000 0.153846 +vt 0.166667 0.153846 +vt 0.083333 0.000000 +vt 0.166667 0.000000 +vt 0.166667 0.153846 +vt 0.083333 0.153846 +vt 0.083333 0.076923 +vt 0.000000 0.153846 +vt 0.000000 0.000000 +vt 0.250000 0.153846 +vt 0.166667 0.153846 +vt 0.166667 0.076923 +vt 0.083333 0.153846 +vt 0.000000 0.000000 +vt 0.083333 0.000000 +vt 0.083333 0.153846 +vt -0.000000 -0.000000 +vt 0.250000 0.153846 +vt 0.166667 0.153846 +vt 0.166667 0.076923 +vt 0.166667 0.153846 +vt 0.083333 -0.000000 +vt 0.166667 -0.000000 +vt 0.166667 0.153846 +vt 0.083333 -0.000000 +vt 0.166667 -0.000000 +vt 0.083333 0.076923 +vt -0.000000 0.153846 +vt 0.000000 0.000000 +vt 0.083333 0.153846 +vt 0.083333 0.000000 +vt -0.000000 0.153846 +vt 0.083333 0.153846 +vt 0.083333 0.076923 +vt 0.000000 -0.000000 +vt 0.166667 -0.000000 +vt 0.250000 0.076923 +vt 0.166667 0.076923 +vt 0.083333 0.076923 +vt -0.000000 -0.000000 +vt 0.083333 -0.000000 +vt 0.000000 0.076923 +vt 0.083333 -0.000000 +vt 0.083333 0.076923 +vt 0.166667 0.076923 +vt 0.250000 -0.000000 +vt 0.250000 0.076923 +vt 0.083333 0.076923 +vt 0.000000 0.000000 +vt 0.083333 -0.000000 +vt 0.166667 0.076923 +vt 0.250000 -0.000000 +vt 0.250000 0.076923 +vt 0.083333 -0.000000 +vt 0.104167 0.153846 +vt 0.083333 0.153846 +vt 0.166667 0.153846 +vt 0.145833 -0.000000 +vt 0.166667 -0.000000 +vt 0.083333 -0.000000 +vt 0.104167 0.153846 +vt 0.083333 0.153846 +vt 0.166667 0.153846 +vt 0.145833 -0.000000 +vt 0.166667 -0.000000 +vt 0.104167 -0.000000 +vt 0.145833 0.153846 +vt 0.104167 0.115385 +vt 0.083333 0.153846 +vt 0.145833 0.115385 +vt 0.104167 0.115385 +vt 0.145833 0.115385 +vt 0.145833 0.115385 +vt 0.104167 0.115385 +vt 0.104167 0.115385 +vt 0.083333 0.153846 +vt 0.145833 0.115385 +vt 0.083333 0.000000 +vt 0.104167 0.153846 +vt 0.083333 0.153846 +vt 0.166667 0.153846 +vt 0.145833 0.000000 +vt 0.166667 -0.000000 +vt 0.166667 0.153846 +vt 0.145833 0.000000 +vt 0.166667 -0.000000 +vt 0.083333 -0.000000 +vt 0.104167 0.153846 +vt 0.083333 0.153846 +vt 0.104167 -0.000000 +vt 0.145833 0.153846 +vt 0.145833 0.153846 +vt 0.104167 0.115385 +vt 0.083333 0.153846 +vt 0.145833 0.115385 +vt 0.104167 0.115385 +vt 0.145833 0.115385 +vt 0.104167 0.115385 +vt 0.145833 0.115385 +vt 0.104167 0.115385 +vt 0.083333 0.153846 +vt 0.145833 0.115385 +vt 0.875000 0.423077 +vt 0.833333 0.576923 +vt 0.958333 0.423077 +vt 0.916667 0.576923 +vt 0.916667 0.423077 +vt 0.875000 0.576923 +vt 1.000000 0.423077 +vt 0.958333 0.576923 +vt 0.576525 0.518404 +vt 0.531698 0.718199 +vt 0.423476 0.635442 +vt 0.365031 0.718200 +vt 0.256809 0.635442 +vt 0.301636 0.435647 +vt 0.645833 0.423077 +vt 0.645833 0.461538 +vt 0.604167 0.576923 +vt 0.583333 0.461538 +vt 0.666667 0.538462 +vt 0.041667 0.250000 +vt 0.010417 0.269231 +vt 0.000000 0.250000 +vt 0.041667 0.230769 +vt 0.000000 0.250000 +vt 0.000000 0.230769 +vt 0.041667 0.230769 +vt 0.000000 0.230769 +vt 0.041667 0.230769 +vt 0.000000 0.250000 +vt 0.041667 0.230769 +vt 0.000000 0.250000 +vt 0.000000 0.230769 +vt 0.041667 0.250000 +vt 0.010417 0.269231 +vt 0.000000 0.250000 +vt 0.041667 0.230769 +vt 0.000000 0.250000 +vt 0.000000 0.230769 +vt 0.041667 0.230769 +vt 0.000000 0.250000 +vt 0.000000 0.230769 +vt 0.041667 0.230769 +vt 0.000000 0.250000 +vt 0.000000 0.230769 +vt 0.041667 0.230769 +vt 0.031250 0.269231 +vt 0.010417 0.307692 +vt 0.010417 0.269231 +vt 0.041667 0.250000 +vt 0.010417 0.269231 +vt 0.041667 0.250000 +vt 0.010417 0.269231 +vt 0.041667 0.250000 +vt 0.031250 0.269231 +vt 0.010417 0.307692 +vt 0.041667 0.250000 +vt 0.010417 0.269231 +vt 0.041667 0.250000 +vt 0.010417 0.269231 +vt 0.041667 0.250000 +vt 0.010417 0.269231 +vt 0.229167 0.836538 +vt 0.218750 0.990385 +vt 0.218750 0.836538 +vt 0.031250 0.269231 +vt 0.010417 0.307692 +vt 0.031250 0.269231 +vt 0.010417 0.307692 +vt 0.031250 0.269231 +vt 0.010417 0.307692 +vt 0.031250 0.269231 +vt 0.010417 0.307692 +vt 0.031250 0.269231 +vt 0.010417 0.307692 +vt 0.031250 0.269231 +vt 0.010417 0.307692 +vt 0.218750 0.307692 +vt 0.229167 0.153846 +vt 0.229167 0.307692 +vt 0.239583 0.355769 +vt 0.239583 0.153846 +vt 0.250000 0.288462 +vt 0.239583 0.288462 +vt 0.218750 0.153846 +vt 0.208333 0.288462 +vt 0.208333 0.153846 +vt 0.208333 0.355769 +vt 0.250000 0.326923 +vt 0.239583 0.326923 +vt 0.208333 0.855769 +vt 0.208333 0.990385 +vt 0.239583 0.855769 +vt 0.229167 0.990385 +vt 0.041667 0.250000 +vt 0.010417 0.269231 +vt 0.000000 0.250000 +vt 0.041667 0.230769 +vt 0.041667 0.230769 +vt 0.000000 0.250000 +vt 0.000000 0.230769 +vt 0.041667 0.230769 +vt 0.000000 0.250000 +vt 0.000000 0.230769 +vt 0.041667 0.230769 +vt 0.000000 0.250000 +vt 0.000000 0.230769 +vt 0.031250 0.269231 +vt 0.010417 0.365385 +vt 0.010417 0.269231 +vt 0.041667 0.250000 +vt 0.010417 0.269231 +vt 0.041667 0.250000 +vt 0.041667 0.250000 +vt 0.010417 0.269231 +vt 0.041667 0.250000 +vt 0.010417 0.269231 +vt 0.000000 0.250000 +vt 0.041667 0.230769 +vt 0.000000 0.250000 +vt 0.041667 0.230769 +vt 0.000000 0.250000 +vt 0.000000 0.230769 +vt 0.041667 0.230769 +vt 0.000000 0.250000 +vt 0.000000 0.230769 +vt 0.041667 0.230769 +vt 0.000000 0.230769 +vt 0.031250 0.269231 +vt 0.010417 0.365385 +vt 0.010417 0.269231 +vt 0.041667 0.250000 +vt 0.041667 0.250000 +vt 0.010417 0.269231 +vt 0.041667 0.250000 +vt 0.010417 0.269231 +vt 0.229167 0.836538 +vt 0.218750 0.990385 +vt 0.218750 0.836538 +vt 0.218750 0.307692 +vt 0.229167 0.153846 +vt 0.229167 0.307692 +vt 0.239583 0.355769 +vt 0.239583 0.153846 +vt 0.250000 0.288462 +vt 0.239583 0.288462 +vt 0.218750 0.153846 +vt 0.208333 0.288462 +vt 0.208333 0.153846 +vt 0.208333 0.355769 +vt 0.250000 0.326923 +vt 0.239583 0.326923 +vt 0.208333 0.855769 +vt 0.208333 0.990385 +vt 0.239583 0.855769 +vt 0.229167 0.990385 +vt 0.812500 0.346154 +vt 0.750000 0.461538 +vt 0.750000 0.346154 +vt 1.000000 0.000000 +vt 0.937500 0.346154 +vt 0.937500 0.000000 +vt 0.875000 0.000000 +vt 0.812500 0.000000 +vt 0.875000 0.346154 +vt 0.750000 0.000000 +vt 0.750000 0.461538 +vt 0.812500 0.346154 +vt 0.812500 0.461538 +vt 0.875000 0.000000 +vt 0.812500 0.000000 +vt 1.000000 0.000000 +vt 0.937500 0.346154 +vt 0.937500 0.000000 +vt 0.750000 0.346154 +vt 0.750000 0.000000 +vt 0.875000 0.346154 +vt 0.093750 0.307692 +vt 0.104167 0.153846 +vt 0.104167 0.307692 +vt 0.114583 0.153846 +vt 0.125000 0.288462 +vt 0.114583 0.288462 +vt 0.093750 0.153846 +vt 0.083333 0.288462 +vt 0.083333 0.153846 +vt 0.125000 0.326923 +vt 0.114583 0.451923 +vt 0.114583 0.326923 +vt 0.093750 0.451923 +vt 0.083333 0.326923 +vt 0.104167 0.451923 +vt 0.093750 0.307692 +vt 0.104167 0.153846 +vt 0.104167 0.307692 +vt 0.031250 0.269231 +vt 0.010417 0.365385 +vt 0.031250 0.269231 +vt 0.010417 0.365385 +vt 0.031250 0.269231 +vt 0.010417 0.365385 +vt 0.031250 0.269231 +vt 0.010417 0.365385 +vt 0.031250 0.269231 +vt 0.010417 0.365385 +vt 0.031250 0.269231 +vt 0.010417 0.365385 +vt 0.114583 0.153846 +vt 0.125000 0.288462 +vt 0.114583 0.288462 +vt 0.093750 0.153846 +vt 0.083333 0.288462 +vt 0.083333 0.153846 +vt 0.125000 0.326923 +vt 0.114583 0.451923 +vt 0.114583 0.326923 +vt 0.093750 0.451923 +vt 0.083333 0.326923 +vt 0.104167 0.451923 +vt 0.177083 0.519231 +vt 0.166667 0.153846 +vt 0.177083 0.153846 +vt 0.177083 0.519231 +vt 0.166667 0.153846 +vt 0.177083 0.153846 +vt 0.187500 0.153846 +vt 0.197917 0.519231 +vt 0.197917 0.153846 +vt 0.208333 0.519231 +vt 0.208333 0.153846 +vt 0.187500 0.153846 +vt 0.197917 0.519231 +vt 0.197917 0.153846 +vt 0.208333 0.519231 +vt 0.208333 0.153846 +vt 0.177083 0.519231 +vt 0.166667 0.153846 +vt 0.177083 0.153846 +vt 0.177083 0.519231 +vt 0.166667 0.153846 +vt 0.177083 0.153846 +vt 0.187500 0.153846 +vt 0.197917 0.519231 +vt 0.197917 0.153846 +vt 0.208333 0.519231 +vt 0.208333 0.153846 +vt 0.187500 0.153846 +vt 0.197917 0.519231 +vt 0.197917 0.153846 +vt 0.208333 0.519231 +vt 0.208333 0.153846 +vt 0.166667 0.557692 +vt 0.156250 0.173077 +vt 0.166667 0.173077 +vt 0.135417 0.557692 +vt 0.125000 0.173077 +vt 0.135417 0.173077 +vt 0.145833 0.576923 +vt 0.145833 0.153846 +vt 0.166667 0.557692 +vt 0.156250 0.173077 +vt 0.166667 0.173077 +vt 0.135417 0.557692 +vt 0.125000 0.173077 +vt 0.135417 0.173077 +vt 0.145833 0.576923 +vt 0.145833 0.153846 +vt 0.166667 0.557692 +vt 0.156250 0.173077 +vt 0.166667 0.173077 +vt 0.135417 0.557692 +vt 0.125000 0.173077 +vt 0.135417 0.173077 +vt 0.145833 0.576923 +vt 0.145833 0.153846 +vt 0.156250 0.173077 +vt 0.166667 0.557692 +vt 0.156250 0.557692 +vt 0.125000 0.557692 +vt 0.135417 0.173077 +vt 0.135417 0.557692 +vt 0.145833 0.153846 +vt 0.145833 0.576923 +vt 0.385884 0.771165 +vt 0.415619 0.826061 +vt 0.364116 0.921143 +vt 0.364116 0.921143 +vt 0.334381 0.866247 +vt 0.385884 0.771165 +vt 0.302551 0.771165 +vt 0.332286 0.826061 +vt 0.280783 0.921143 +vt 0.083333 0.288462 +vt 0.072917 0.423077 +vt 0.072917 0.288462 +vt 0.052083 0.288462 +vt 0.041667 0.423077 +vt 0.041667 0.288462 +vt 0.062500 0.288462 +vt 0.052083 0.423077 +vt 0.062500 0.423077 +vt 0.041667 0.269231 +vt 0.052083 0.269231 +vt 0.041667 0.288462 +vt 0.072917 0.269231 +vt 0.072917 0.288462 +vt 0.062500 0.269231 +vt 0.072917 0.153846 +vt 0.062500 0.153846 +vt 0.052083 0.153846 +vt 0.041667 0.153846 +vt 0.083333 0.153846 +vt 0.166667 0.000000 +vt 0.250000 -0.000000 +vt -0.000000 0.153846 +vt 0.083333 -0.000000 +vt 0.166667 0.000000 +vt 0.250000 -0.000000 +vt 0.250000 0.000000 +vt 0.000000 0.153846 +vt 0.166667 -0.000000 +vt 0.083333 0.000000 +vt 0.166667 0.000000 +vt 0.250000 -0.000000 +vt 0.000000 0.153846 +vt -0.000000 0.153846 +vt 0.166667 -0.000000 +vt 0.250000 -0.000000 +vt 0.083333 0.000000 +vt -0.000000 0.153846 +vt -0.000000 -0.000000 +vt 0.000000 0.076923 +vt 0.250000 -0.000000 +vt 0.000000 0.076923 +vt 0.166667 -0.000000 +vt -0.000000 0.076923 +vt 0.166667 -0.000000 +vt 0.104167 -0.000000 +vt 0.145833 0.153846 +vt 0.104167 -0.000000 +vt 1.000000 0.576923 +vt 0.582830 0.576923 +vt 0.576525 0.635441 +vt 0.558570 0.685051 +vt 0.500000 0.729839 +vt 0.468303 0.718199 +vt 0.441431 0.685051 +vt 0.417171 0.576923 +vt 0.423476 0.518404 +vt 0.441431 0.468795 +vt 0.468303 0.435647 +vt 0.500000 0.424006 +vt 0.531698 0.435647 +vt 0.558570 0.468795 +vt 0.409858 0.518405 +vt 0.416163 0.576924 +vt 0.409858 0.635442 +vt 0.391903 0.685052 +vt 0.333333 0.729840 +vt 0.301636 0.718200 +vt 0.274764 0.685052 +vt 0.250504 0.576923 +vt 0.256809 0.518405 +vt 0.274764 0.468796 +vt 0.333333 0.424007 +vt 0.365031 0.435647 +vt 0.391903 0.468795 +vt 0.604167 0.423077 +vt 0.645833 0.576923 +vt 0.583333 0.538462 +vt 0.666667 0.461538 +vt 0.031250 0.307692 +vt 0.031250 0.307692 +vt 0.031250 0.307692 +vt 0.031250 0.307692 +vt 0.031250 0.307692 +vt 0.031250 0.307692 +vt 0.031250 0.307692 +vt 0.031250 0.307692 +vt 0.239583 0.817308 +vt 0.250000 0.153846 +vt 0.208333 0.817308 +vt 0.208333 0.326923 +vt 0.250000 0.355769 +vt 0.239583 0.990385 +vt 0.031250 0.365385 +vt 0.031250 0.365385 +vt 0.239583 0.817308 +vt 0.250000 0.153846 +vt 0.208333 0.817308 +vt 0.208333 0.326923 +vt 0.250000 0.355769 +vt 0.239583 0.990385 +vt 0.812500 0.461538 +vt 1.000000 0.346154 +vt 1.000000 0.346154 +vt 0.125000 0.153846 +vt 0.125000 0.451923 +vt 0.083333 0.451923 +vt 0.031250 0.365385 +vt 0.031250 0.365385 +vt 0.031250 0.365385 +vt 0.031250 0.365385 +vt 0.031250 0.365385 +vt 0.031250 0.365385 +vt 0.125000 0.153846 +vt 0.125000 0.451923 +vt 0.083333 0.451923 +vt 0.166667 0.519231 +vt 0.166667 0.519231 +vt 0.187500 0.538462 +vt 0.187500 0.538462 +vt 0.166667 0.519231 +vt 0.166667 0.519231 +vt 0.187500 0.538462 +vt 0.187500 0.538462 +vt 0.156250 0.557692 +vt 0.125000 0.557692 +vt 0.156250 0.557692 +vt 0.125000 0.557692 +vt 0.156250 0.557692 +vt 0.125000 0.557692 +vt 0.166667 0.173077 +vt 0.125000 0.173077 +vt 0.345265 0.901050 +vt 0.334381 0.866247 +vt 0.334381 0.826061 +vt 0.345265 0.791258 +vt 0.364116 0.771165 +vt 0.404735 0.791258 +vt 0.415619 0.866247 +vt 0.404735 0.901050 +vt 0.385884 0.921143 +vt 0.334381 0.826061 +vt 0.345265 0.791258 +vt 0.364116 0.771165 +vt 0.404735 0.791258 +vt 0.415619 0.826061 +vt 0.415619 0.866247 +vt 0.404735 0.901050 +vt 0.385884 0.921143 +vt 0.345265 0.901050 +vt 0.261931 0.901050 +vt 0.251048 0.866247 +vt 0.251048 0.826061 +vt 0.261931 0.791258 +vt 0.280783 0.771165 +vt 0.321402 0.791258 +vt 0.332286 0.866247 +vt 0.321402 0.901050 +vt 0.302550 0.921143 +vt 0.083333 0.423077 +vt 0.083333 0.269231 +vt 0.343750 0.000000 +vt 0.312500 0.423077 +vt 0.312500 0.000000 +vt 0.562500 0.000000 +vt 0.531250 0.423077 +vt 0.531250 0.000000 +vt 0.281250 0.423077 +vt 0.281250 0.000000 +vt 0.500000 0.423077 +vt 0.500000 0.000000 +vt 0.250000 0.423077 +vt 0.250000 0.000000 +vt 0.468750 0.423077 +vt 0.468750 0.000000 +vt 0.750000 0.000000 +vt 0.718750 0.423077 +vt 0.718750 0.000000 +vt 0.437500 0.423077 +vt 0.437500 0.000000 +vt 0.687500 0.423077 +vt 0.687500 0.000000 +vt 0.406250 0.423077 +vt 0.406250 0.000000 +vt 0.656250 0.423077 +vt 0.656250 0.000000 +vt 0.375000 0.423077 +vt 0.375000 0.000000 +vt 0.625000 0.000000 +vt 0.593750 0.423077 +vt 0.593750 0.000000 +vt 0.625000 0.423077 +vt 0.343750 0.423077 +vt 0.562500 0.423077 +vt 0.312500 0.730769 +vt 0.291667 0.769231 +vt 0.291667 0.730769 +vt 0.500000 0.730769 +vt 0.479167 0.769231 +vt 0.479167 0.730769 +vt 0.395833 0.730769 +vt 0.375000 0.769231 +vt 0.375000 0.730769 +vt 0.333333 0.730769 +vt 0.312500 0.769231 +vt 0.270833 0.730769 +vt 0.250000 0.769231 +vt 0.250000 0.730769 +vt 0.416667 0.730769 +vt 0.395833 0.769231 +vt 0.458333 0.730769 +vt 0.437500 0.769231 +vt 0.437500 0.730769 +vt 0.354167 0.730769 +vt 0.333333 0.769231 +vt 0.270833 0.769231 +vt 0.416667 0.769231 +vt 0.458333 0.769231 +vt 0.354167 0.769231 +vt 0.270833 0.730769 +vt 0.250000 0.769231 +vt 0.250000 0.730769 +vt 0.416667 0.730769 +vt 0.395833 0.769231 +vt 0.395833 0.730769 +vt 0.458333 0.730769 +vt 0.437500 0.769231 +vt 0.437500 0.730769 +vt 0.354167 0.730769 +vt 0.333333 0.769231 +vt 0.333333 0.730769 +vt 0.291667 0.730769 +vt 0.270833 0.769231 +vt 0.416667 0.769231 +vt 0.479167 0.730769 +vt 0.458333 0.769231 +vt 0.375000 0.730769 +vt 0.354167 0.769231 +vt 0.312500 0.730769 +vt 0.291667 0.769231 +vt 0.500000 0.730769 +vt 0.479167 0.769231 +vt 0.375000 0.769231 +vt 0.312500 0.769231 +vt 0.750000 0.423077 +vt 0.500000 0.769231 +vt 0.500000 0.769231 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -0.7071 -0.7071 +vn 0.0000 -0.7071 0.7071 +vn 0.7071 -0.7071 0.0000 +vn -0.7071 -0.7071 0.0000 +vn -0.7071 0.0000 -0.7071 +vn 0.7071 0.7071 0.0000 +vn 0.0000 0.7071 -0.7071 +vn 0.7071 0.0000 -0.7071 +vn 0.7071 0.0000 0.7071 +vn 0.0000 0.7071 0.7071 +vn -0.7071 0.0000 0.7071 +vn -0.7071 0.7071 0.0000 +vn 0.5000 0.7071 -0.5000 +vn -0.3827 0.0000 0.9239 +vn 0.9239 0.0000 -0.3827 +vn -0.9239 0.0000 0.3827 +vn 0.9239 0.0000 0.3827 +vn -0.9239 0.0000 -0.3827 +vn 0.3827 0.0000 0.9239 +vn -0.3827 0.0000 -0.9239 +vn 0.3827 0.0000 -0.9239 +vn -0.5000 0.0000 0.8660 +vn -0.8660 0.0000 -0.5000 +vn 0.8660 0.0000 -0.5000 +vn 0.5000 0.0000 0.8660 +vn -0.8660 0.0000 0.5000 +vn 0.5000 0.0000 -0.8660 +vn -0.5000 0.0000 -0.8660 +vn 0.8660 0.0000 0.5000 +s off +f 50/1/37 51/2/37 49/3/37 +f 55/4/38 54/5/38 53/6/38 +f 58/7/39 59/8/39 57/9/39 +f 62/10/40 63/11/40 61/12/40 +f 66/13/41 67/14/41 65/15/41 +f 70/16/42 71/17/42 69/18/42 +f 105/19/40 80/20/40 79/21/40 +f 80/22/39 78/23/39 113/24/39 +f 79/25/38 73/26/38 75/27/38 +f 76/28/42 78/29/42 80/30/42 +f 114/31/41 84/32/41 83/33/41 +f 84/34/40 88/35/40 106/36/40 +f 91/37/41 107/38/41 111/39/41 +f 87/40/38 81/41/38 83/42/38 +f 84/43/42 86/44/42 88/45/42 +f 74/46/42 96/47/42 78/48/42 +f 76/28/42 86/49/42 74/50/42 +f 115/51/39 94/52/39 93/53/39 +f 94/54/37 90/55/37 107/56/37 +f 95/57/38 89/58/38 91/59/38 +f 92/60/42 94/61/42 96/47/42 +f 98/62/41 100/63/41 116/64/41 +f 104/65/42 82/66/42 100/67/42 +f 92/68/42 102/69/42 90/70/42 +f 108/71/37 98/72/37 97/73/37 +f 103/74/38 97/73/38 99/75/38 +f 100/76/42 102/69/42 104/77/42 +f 111/78/40 95/79/40 91/59/40 +f 103/80/40 116/81/40 112/82/40 +f 112/83/39 101/84/39 103/85/39 +f 114/86/37 85/87/37 110/88/37 +f 110/89/39 87/90/39 106/91/39 +f 109/92/41 75/93/41 73/94/41 +f 109/95/37 77/96/37 113/97/37 +f 116/98/43 118/99/43 112/100/43 +f 111/101/43 119/102/43 115/103/43 +f 113/104/44 121/105/44 109/106/44 +f 110/107/44 124/108/44 114/109/44 +f 124/108/38 118/99/38 120/110/38 +f 121/105/38 119/102/38 117/111/38 +f 121/112/41 92/68/41 74/50/41 +f 96/113/39 123/114/39 78/23/39 +f 113/24/39 78/23/39 123/114/39 +f 115/51/39 119/115/39 96/113/39 +f 121/112/41 74/50/41 109/92/41 +f 117/116/41 111/39/41 92/68/41 +f 104/77/39 122/117/39 86/49/39 +f 118/118/39 104/77/39 112/83/39 +f 122/117/39 110/89/39 86/49/39 +f 114/31/41 124/119/41 82/120/41 +f 124/119/41 100/63/41 82/120/41 +f 116/64/41 100/63/41 120/121/41 +f 106/122/45 127/123/45 110/124/45 +f 112/125/45 126/126/45 108/127/45 +f 109/128/46 129/129/46 105/130/46 +f 107/131/46 132/132/46 111/133/46 +f 125/134/38 131/135/38 127/123/38 +f 132/132/38 126/126/38 128/136/38 +f 108/71/37 126/137/37 102/138/37 +f 102/138/37 130/139/37 90/55/37 +f 90/55/37 130/139/37 107/56/37 +f 111/78/40 132/140/40 92/60/40 +f 132/140/40 104/65/40 92/60/40 +f 104/65/40 128/141/40 112/82/40 +f 110/88/37 127/142/37 86/44/37 +f 86/44/37 131/143/37 74/46/37 +f 74/46/37 131/143/37 109/95/37 +f 105/19/40 129/144/40 76/145/40 +f 129/144/40 88/35/40 76/145/40 +f 106/36/40 88/35/40 125/146/40 +f 56/147/39 135/148/39 54/5/39 +f 53/149/41 133/150/41 55/151/41 +f 55/151/40 136/152/40 56/147/40 +f 54/153/37 134/154/37 53/149/37 +f 151/155/38 139/156/38 143/157/38 +f 166/158/42 162/159/42 158/160/42 +f 70/16/39 172/161/39 72/162/39 +f 71/17/41 169/163/41 69/18/41 +f 69/18/37 170/164/37 70/16/37 +f 72/162/40 171/165/40 71/17/40 +f 173/166/47 182/167/47 174/168/47 +f 50/169/39 176/170/39 52/171/39 +f 51/172/41 174/168/41 49/173/41 +f 52/174/42 173/175/42 51/2/42 +f 49/176/38 175/177/38 50/178/38 +f 180/179/48 185/180/48 177/181/48 +f 65/182/38 179/183/38 66/184/38 +f 66/185/37 180/186/37 68/187/37 +f 67/188/40 178/189/40 65/190/40 +f 68/191/42 177/181/42 67/14/42 +f 183/192/39 196/193/39 184/194/39 +f 176/195/49 181/196/49 173/175/49 +f 174/197/43 183/198/43 175/177/43 +f 175/199/50 184/194/50 176/170/50 +f 188/200/42 189/201/42 185/180/42 +f 178/202/45 187/203/45 179/183/45 +f 179/204/51 188/205/51 180/186/51 +f 177/206/50 186/207/50 178/189/50 +f 203/208/42 208/209/42 204/210/42 +f 186/211/38 191/212/38 187/203/38 +f 187/213/37 192/214/37 188/205/37 +f 185/215/40 190/216/40 186/207/40 +f 181/217/41 194/218/41 182/167/41 +f 184/219/42 193/220/42 181/196/42 +f 182/221/38 195/222/38 183/198/38 +f 199/223/38 230/224/38 200/225/38 +f 200/225/37 197/226/37 203/208/37 +f 228/227/42 201/228/42 202/229/42 +f 229/230/40 201/231/40 227/232/40 +f 198/233/40 199/223/40 204/210/40 +f 202/229/37 230/224/37 228/227/37 +f 201/234/39 197/226/39 202/235/39 +f 200/225/41 204/210/41 199/223/41 +f 206/236/40 208/209/40 210/237/40 +f 205/238/37 207/239/37 203/208/37 +f 214/240/52 215/241/52 211/242/52 +f 64/243/42 211/242/42 63/11/42 +f 61/244/38 213/245/38 62/246/38 +f 62/247/41 214/248/41 64/249/41 +f 63/250/39 212/251/39 61/252/39 +f 217/253/41 284/254/41 218/255/41 +f 212/256/44 217/257/44 213/245/44 +f 213/258/53 218/255/53 214/248/53 +f 211/259/51 216/260/51 212/251/51 +f 219/261/53 224/262/53 220/263/53 +f 60/264/42 219/265/42 59/8/42 +f 57/266/38 221/267/38 58/268/38 +f 58/269/40 222/270/40 60/271/40 +f 59/272/37 220/263/37 57/273/37 +f 226/274/42 277/275/42 223/276/42 +f 222/277/54 223/276/54 219/265/54 +f 220/278/46 225/279/46 221/267/46 +f 221/280/47 226/281/47 222/270/47 +f 237/282/42 242/283/42 238/284/42 +f 233/285/38 248/286/38 234/287/38 +f 234/287/39 231/288/39 237/282/39 +f 246/289/42 235/290/42 236/291/42 +f 247/292/41 235/293/41 245/294/41 +f 232/295/41 233/285/41 238/284/41 +f 236/291/39 248/286/39 246/289/39 +f 235/296/40 231/288/40 236/297/40 +f 234/287/37 238/284/37 233/285/37 +f 240/298/41 242/283/41 244/299/41 +f 239/300/39 241/301/39 237/282/39 +f 254/302/42 256/303/42 255/304/42 +f 252/305/39 256/306/39 251/307/39 +f 249/308/41 254/302/41 250/309/41 +f 251/307/37 253/310/37 249/308/37 +f 250/309/40 255/304/40 252/311/40 +f 262/312/42 264/313/42 263/314/42 +f 260/315/39 264/313/39 259/316/39 +f 257/317/41 262/318/41 258/319/41 +f 259/316/37 261/320/37 257/321/37 +f 258/319/40 263/322/40 260/315/40 +f 265/323/38 272/324/38 266/325/38 +f 270/326/42 267/327/42 268/328/42 +f 271/329/37 267/330/37 269/331/37 +f 268/328/40 272/324/40 270/326/40 +f 267/332/41 276/333/41 268/334/41 +f 266/325/39 273/335/39 265/323/39 +f 273/335/37 267/336/37 265/323/37 +f 268/334/40 274/337/40 266/325/40 +f 285/338/38 292/339/38 286/340/38 +f 224/341/38 279/342/38 225/279/38 +f 225/343/40 280/344/40 226/281/40 +f 223/345/37 278/346/37 224/262/37 +f 215/347/39 282/348/39 216/260/39 +f 218/349/42 281/350/42 215/241/42 +f 216/351/38 283/352/38 217/257/38 +f 290/353/42 287/354/42 288/355/42 +f 291/356/39 287/357/39 289/358/39 +f 288/355/41 292/339/41 290/353/41 +f 287/359/37 296/360/37 288/361/37 +f 286/340/40 293/362/40 285/338/40 +f 293/362/39 287/363/39 285/338/39 +f 288/361/41 294/364/41 286/340/41 +f 312/365/37 306/366/37 308/367/37 +f 303/368/41 297/369/41 299/370/41 +f 300/371/37 303/368/37 299/370/37 +f 302/372/39 300/371/39 298/373/39 +f 301/374/40 298/373/40 297/375/40 +f 309/376/39 312/365/39 308/367/39 +f 311/377/40 309/376/40 307/378/40 +f 310/379/41 307/378/41 306/380/41 +f 330/381/40 324/382/40 326/383/40 +f 321/384/39 315/385/39 317/386/39 +f 318/387/40 321/384/40 317/386/40 +f 320/388/41 318/387/41 316/389/41 +f 319/390/37 316/389/37 315/391/37 +f 327/392/41 330/381/41 326/383/41 +f 329/393/37 327/392/37 325/394/37 +f 328/395/39 325/394/39 324/396/39 +f 310/397/38 302/398/38 301/399/38 +f 314/400/41 301/401/41 305/402/41 +f 302/398/39 313/403/39 304/404/39 +f 304/404/42 314/400/42 305/402/42 +f 319/405/38 311/406/38 310/407/38 +f 323/408/37 310/409/37 314/410/37 +f 311/406/40 322/411/40 313/412/40 +f 313/412/42 323/408/42 314/410/42 +f 328/413/38 320/414/38 319/415/38 +f 332/416/39 319/417/39 323/418/39 +f 320/414/41 331/419/41 322/420/41 +f 322/420/42 332/416/42 323/418/42 +f 329/421/38 301/422/38 303/423/38 +f 301/424/40 332/425/40 305/426/40 +f 331/427/37 303/423/37 304/428/37 +f 305/426/42 331/427/42 304/428/42 +f 339/429/42 341/430/42 333/431/42 +f 349/432/38 347/433/38 355/434/38 +f 363/435/42 365/436/42 358/437/42 +f 375/438/38 369/439/38 377/440/38 +f 374/441/51 371/442/51 375/443/51 +f 373/444/42 372/445/42 374/441/42 +f 377/440/47 370/446/47 373/444/47 +f 375/447/51 376/448/51 374/449/51 +f 377/450/47 373/451/47 378/452/47 +f 380/453/47 378/452/47 379/454/47 +f 381/455/51 375/447/51 382/456/51 +f 379/454/50 376/448/50 381/455/50 +f 382/457/53 377/450/53 380/453/53 +f 378/452/55 374/441/55 376/448/55 +f 50/1/37 52/174/37 51/2/37 +f 55/4/38 56/147/38 54/5/38 +f 58/7/39 60/264/39 59/8/39 +f 62/10/40 64/243/40 63/11/40 +f 66/13/41 68/191/41 67/14/41 +f 70/16/42 72/162/42 71/17/42 +f 79/21/40 75/27/40 105/19/40 +f 105/19/40 76/145/40 80/20/40 +f 77/458/39 79/459/39 113/24/39 +f 79/459/39 80/22/39 113/24/39 +f 79/25/38 77/460/38 73/26/38 +f 76/28/42 74/50/42 78/29/42 +f 83/33/41 81/461/41 114/31/41 +f 114/31/41 82/120/41 84/32/41 +f 87/462/40 83/463/40 106/36/40 +f 83/463/40 84/34/40 106/36/40 +f 91/37/41 89/464/41 107/38/41 +f 87/40/38 85/465/38 81/41/38 +f 84/43/42 82/66/42 86/44/42 +f 74/46/42 92/60/42 96/47/42 +f 76/28/42 88/466/42 86/49/42 +f 93/53/39 95/467/39 115/51/39 +f 115/51/39 96/113/39 94/52/39 +f 89/468/37 93/469/37 107/56/37 +f 93/469/37 94/54/37 107/56/37 +f 95/57/38 93/470/38 89/58/38 +f 92/60/42 90/471/42 94/61/42 +f 99/472/41 97/473/41 116/64/41 +f 97/473/41 98/62/41 116/64/41 +f 104/65/42 86/44/42 82/66/42 +f 92/68/42 104/77/42 102/69/42 +f 97/73/37 101/474/37 108/71/37 +f 108/71/37 102/138/37 98/72/37 +f 103/74/38 101/475/38 97/73/38 +f 100/76/42 98/476/42 102/69/42 +f 111/78/40 115/477/40 95/79/40 +f 103/80/40 99/478/40 116/81/40 +f 112/83/39 108/479/39 101/84/39 +f 114/86/37 81/41/37 85/87/37 +f 110/89/39 85/480/39 87/90/39 +f 109/92/41 105/481/41 75/93/41 +f 109/95/37 73/482/37 77/96/37 +f 116/98/43 120/110/43 118/99/43 +f 111/101/43 117/111/43 119/102/43 +f 113/104/44 123/483/44 121/105/44 +f 110/107/44 122/484/44 124/108/44 +f 124/108/38 122/484/38 118/99/38 +f 121/105/38 123/483/38 119/102/38 +f 121/112/41 117/116/41 92/68/41 +f 96/113/39 119/115/39 123/114/39 +f 104/77/39 118/118/39 122/117/39 +f 124/119/41 120/121/41 100/63/41 +f 106/122/45 125/134/45 127/123/45 +f 112/125/45 128/136/45 126/126/45 +f 109/128/46 131/135/46 129/129/46 +f 107/131/46 130/485/46 132/132/46 +f 125/134/38 129/129/38 131/135/38 +f 132/132/38 130/485/38 126/126/38 +f 102/138/37 126/137/37 130/139/37 +f 132/140/40 128/141/40 104/65/40 +f 86/44/37 127/142/37 131/143/37 +f 129/144/40 125/146/40 88/35/40 +f 56/147/39 136/152/39 135/148/39 +f 53/149/41 134/154/41 133/150/41 +f 55/151/40 133/150/40 136/152/40 +f 54/153/37 135/486/37 134/154/37 +f 151/155/38 152/487/38 139/156/38 +f 152/487/38 137/488/38 139/156/38 +f 137/488/38 138/489/38 139/156/38 +f 139/156/38 140/490/38 141/491/38 +f 141/491/38 142/492/38 143/157/38 +f 143/157/38 144/493/38 145/494/38 +f 145/494/38 146/495/38 147/496/38 +f 147/496/38 148/497/38 149/498/38 +f 149/498/38 150/499/38 151/155/38 +f 139/156/38 141/491/38 143/157/38 +f 143/157/38 145/494/38 151/155/38 +f 145/494/38 147/496/38 151/155/38 +f 147/496/38 149/498/38 151/155/38 +f 154/500/42 153/501/42 168/502/42 +f 168/502/42 167/503/42 154/500/42 +f 167/503/42 166/158/42 154/500/42 +f 166/158/42 165/504/42 164/505/42 +f 164/505/42 163/506/42 166/158/42 +f 163/506/42 162/159/42 166/158/42 +f 162/159/42 161/507/42 158/160/42 +f 161/507/42 160/508/42 158/160/42 +f 160/508/42 159/509/42 158/160/42 +f 158/160/42 157/510/42 156/511/42 +f 156/511/42 155/512/42 154/500/42 +f 158/160/42 156/511/42 154/500/42 +f 154/500/42 166/158/42 158/160/42 +f 70/16/39 170/513/39 172/161/39 +f 71/17/41 171/514/41 169/163/41 +f 69/18/37 169/515/37 170/164/37 +f 72/162/40 172/516/40 171/165/40 +f 173/166/47 181/217/47 182/167/47 +f 50/169/39 175/199/39 176/170/39 +f 51/172/41 173/166/41 174/168/41 +f 52/174/42 176/195/42 173/175/42 +f 49/176/38 174/197/38 175/177/38 +f 180/179/48 188/200/48 185/180/48 +f 65/182/38 178/202/38 179/183/38 +f 66/185/37 179/204/37 180/186/37 +f 67/188/40 177/206/40 178/189/40 +f 68/191/42 180/179/42 177/181/42 +f 183/192/39 195/517/39 196/193/39 +f 176/195/49 184/219/49 181/196/49 +f 174/197/43 182/221/43 183/198/43 +f 175/199/50 183/192/50 184/194/50 +f 188/200/42 192/518/42 189/201/42 +f 178/202/45 186/211/45 187/203/45 +f 179/204/51 187/213/51 188/205/51 +f 177/206/50 185/215/50 186/207/50 +f 203/208/42 207/239/42 208/209/42 +f 186/211/38 190/519/38 191/212/38 +f 187/213/37 191/520/37 192/214/37 +f 185/215/40 189/521/40 190/216/40 +f 181/217/41 193/522/41 194/218/41 +f 184/219/42 196/523/42 193/220/42 +f 182/221/38 194/524/38 195/222/38 +f 199/223/38 229/230/38 230/224/38 +f 202/235/37 197/226/37 200/225/37 +f 197/226/37 205/525/37 203/208/37 +f 228/227/42 227/526/42 201/228/42 +f 229/230/40 199/223/40 201/231/40 +f 204/210/40 206/527/40 198/233/40 +f 198/233/40 201/528/40 199/223/40 +f 202/229/37 200/225/37 230/224/37 +f 201/234/39 198/529/39 197/226/39 +f 200/225/41 203/208/41 204/210/41 +f 206/236/40 204/210/40 208/209/40 +f 205/238/37 209/530/37 207/239/37 +f 214/240/52 218/349/52 215/241/52 +f 64/243/42 214/240/42 211/242/42 +f 61/244/38 212/256/38 213/245/38 +f 62/247/41 213/258/41 214/248/41 +f 63/250/39 211/259/39 212/251/39 +f 217/253/41 283/531/41 284/254/41 +f 212/256/44 216/351/44 217/257/44 +f 213/258/53 217/253/53 218/255/53 +f 211/259/51 215/347/51 216/260/51 +f 219/261/53 223/345/53 224/262/53 +f 60/264/42 222/277/42 219/265/42 +f 57/266/38 220/278/38 221/267/38 +f 58/269/40 221/280/40 222/270/40 +f 59/272/37 219/261/37 220/263/37 +f 226/274/42 280/532/42 277/275/42 +f 222/277/54 226/274/54 223/276/54 +f 220/278/46 224/341/46 225/279/46 +f 221/280/47 225/343/47 226/281/47 +f 237/282/42 241/301/42 242/283/42 +f 233/285/38 247/292/38 248/286/38 +f 236/297/39 231/288/39 234/287/39 +f 231/288/39 239/533/39 237/282/39 +f 246/289/42 245/534/42 235/290/42 +f 247/292/41 233/285/41 235/293/41 +f 238/284/41 240/535/41 232/295/41 +f 232/295/41 235/536/41 233/285/41 +f 236/291/39 234/287/39 248/286/39 +f 235/296/40 232/537/40 231/288/40 +f 234/287/37 237/282/37 238/284/37 +f 240/298/41 238/284/41 242/283/41 +f 239/300/39 243/538/39 241/301/39 +f 254/302/42 253/539/42 256/303/42 +f 252/305/39 255/540/39 256/306/39 +f 249/308/41 253/310/41 254/302/41 +f 251/307/37 256/306/37 253/310/37 +f 250/309/40 254/302/40 255/304/40 +f 262/312/42 261/320/42 264/313/42 +f 260/315/39 263/322/39 264/313/39 +f 257/317/41 261/541/41 262/318/41 +f 259/316/37 264/313/37 261/320/37 +f 258/319/40 262/318/40 263/322/40 +f 265/323/38 271/329/38 272/324/38 +f 270/326/42 269/542/42 267/327/42 +f 271/329/37 265/323/37 267/330/37 +f 268/328/40 266/325/40 272/324/40 +f 267/332/41 275/543/41 276/333/41 +f 266/325/39 274/337/39 273/335/39 +f 273/335/37 275/544/37 267/336/37 +f 268/334/40 276/333/40 274/337/40 +f 285/338/38 291/356/38 292/339/38 +f 224/341/38 278/545/38 279/342/38 +f 225/343/40 279/546/40 280/344/40 +f 223/345/37 277/547/37 278/346/37 +f 215/347/39 281/548/39 282/348/39 +f 218/349/42 284/549/42 281/350/42 +f 216/351/38 282/550/38 283/352/38 +f 290/353/42 289/551/42 287/354/42 +f 291/356/39 285/338/39 287/357/39 +f 288/355/41 286/340/41 292/339/41 +f 287/359/37 295/552/37 296/360/37 +f 286/340/40 294/364/40 293/362/40 +f 293/362/39 295/553/39 287/363/39 +f 288/361/41 296/360/41 294/364/41 +f 312/365/37 310/554/37 306/366/37 +f 303/368/41 301/555/41 297/369/41 +f 300/371/37 304/556/37 303/368/37 +f 302/372/39 304/556/39 300/371/39 +f 301/374/40 302/372/40 298/373/40 +f 309/376/39 313/557/39 312/365/39 +f 311/377/40 313/557/40 309/376/40 +f 310/379/41 311/377/41 307/378/41 +f 330/381/40 328/558/40 324/382/40 +f 321/384/39 319/559/39 315/385/39 +f 318/387/40 322/560/40 321/384/40 +f 320/388/41 322/560/41 318/387/41 +f 319/390/37 320/388/37 316/389/37 +f 327/392/41 331/561/41 330/381/41 +f 329/393/37 331/561/37 327/392/37 +f 328/395/39 329/393/39 325/394/39 +f 310/397/38 312/562/38 302/398/38 +f 314/400/41 310/563/41 301/401/41 +f 302/398/39 312/562/39 313/403/39 +f 304/404/42 313/403/42 314/400/42 +f 319/405/38 321/564/38 311/406/38 +f 323/408/37 319/565/37 310/409/37 +f 311/406/40 321/564/40 322/411/40 +f 313/412/42 322/411/42 323/408/42 +f 328/413/38 330/566/38 320/414/38 +f 332/416/39 328/567/39 319/417/39 +f 320/414/41 330/566/41 331/419/41 +f 322/420/42 331/419/42 332/416/42 +f 329/421/38 328/568/38 301/422/38 +f 301/424/40 328/569/40 332/425/40 +f 331/427/37 329/421/37 303/423/37 +f 305/426/42 332/425/42 331/427/42 +f 333/431/42 334/570/42 335/571/42 +f 335/571/42 336/572/42 333/431/42 +f 336/572/42 337/573/42 333/431/42 +f 337/573/42 338/574/42 339/429/42 +f 339/429/42 340/575/42 341/430/42 +f 341/430/42 342/576/42 343/577/42 +f 343/577/42 344/578/42 341/430/42 +f 344/578/42 333/431/42 341/430/42 +f 337/573/42 339/429/42 333/431/42 +f 347/433/38 346/579/38 345/580/38 +f 345/580/38 356/581/38 347/433/38 +f 356/581/38 355/434/38 347/433/38 +f 355/434/38 354/582/38 353/583/38 +f 353/583/38 352/584/38 351/585/38 +f 351/585/38 350/586/38 349/432/38 +f 349/432/38 348/587/38 347/433/38 +f 355/434/38 353/583/38 351/585/38 +f 351/585/38 349/432/38 355/434/38 +f 358/437/42 357/588/42 359/589/42 +f 359/589/42 360/590/42 358/437/42 +f 360/590/42 361/591/42 358/437/42 +f 361/591/42 362/592/42 363/435/42 +f 363/435/42 364/593/42 365/436/42 +f 365/436/42 366/594/42 367/595/42 +f 367/595/42 368/596/42 365/436/42 +f 368/596/42 358/437/42 365/436/42 +f 361/591/42 363/435/42 358/437/42 +f 375/438/38 371/597/38 369/439/38 +f 374/441/51 372/445/51 371/442/51 +f 373/444/42 370/446/42 372/445/42 +f 377/440/47 369/439/47 370/446/47 +f 380/453/47 377/450/47 378/452/47 +f 381/455/51 376/448/51 375/447/51 +f 379/454/50 378/452/50 376/448/50 +f 382/457/53 375/598/53 377/450/53 +f 378/452/55 373/444/55 374/441/55 +s 1 +f 391/599/56 409/600/53 392/601/53 +f 384/602/50 402/603/57 385/604/57 +f 392/601/53 410/605/58 393/606/58 +f 385/604/57 403/607/39 386/608/39 +f 393/606/58 411/609/41 394/610/41 +f 386/608/39 404/611/59 387/612/59 +f 394/613/41 412/614/60 395/615/60 +f 387/612/59 405/616/51 388/617/51 +f 395/615/60 413/618/47 396/619/47 +f 388/617/51 406/620/61 389/621/61 +f 396/619/47 414/622/62 397/623/62 +f 389/621/61 407/624/37 390/625/37 +f 398/626/40 400/627/63 383/628/63 +f 397/623/62 399/629/40 398/626/40 +f 390/625/37 408/630/56 391/599/56 +f 383/628/63 401/631/50 384/602/50 +f 421/632/37 432/633/64 420/634/64 +f 418/635/41 429/636/65 417/637/65 +f 425/638/66 436/639/39 424/640/39 +f 422/641/67 433/642/37 421/632/37 +f 419/643/68 430/644/41 418/645/41 +f 426/646/69 437/647/66 425/638/66 +f 416/648/70 427/649/40 415/650/40 +f 423/651/71 434/652/67 422/641/67 +f 420/634/64 431/653/68 419/643/68 +f 415/650/40 438/654/69 426/646/69 +f 417/637/65 428/655/70 416/648/70 +f 424/640/39 435/656/71 423/651/71 +f 443/657/68 454/658/41 442/659/41 +f 450/660/69 461/661/66 449/662/66 +f 440/663/70 452/664/40 439/665/40 +f 447/666/71 458/667/67 446/668/67 +f 444/669/64 455/670/68 443/657/68 +f 439/665/40 462/671/69 450/660/69 +f 441/672/65 451/673/70 440/663/70 +f 448/674/39 459/675/71 447/666/71 +f 445/676/37 456/677/64 444/669/64 +f 442/678/41 453/679/65 441/672/65 +f 449/662/66 460/680/39 448/674/39 +f 446/668/67 457/681/37 445/676/37 +f 391/599/56 408/630/56 409/600/53 +f 384/602/50 401/631/50 402/603/57 +f 392/601/53 409/600/53 410/605/58 +f 385/604/57 402/603/57 403/607/39 +f 393/606/58 410/605/58 411/609/41 +f 386/608/39 403/607/39 404/611/59 +f 394/613/41 411/682/41 412/614/60 +f 387/612/59 404/611/59 405/616/51 +f 395/615/60 412/614/60 413/618/47 +f 388/617/51 405/616/51 406/620/61 +f 396/619/47 413/618/47 414/622/62 +f 389/621/61 406/620/61 407/624/37 +f 398/626/40 399/629/40 400/627/63 +f 397/623/62 414/622/62 399/629/40 +f 390/625/37 407/624/37 408/630/56 +f 383/628/63 400/627/63 401/631/50 +f 421/632/37 433/642/37 432/633/64 +f 418/635/41 430/683/41 429/636/65 +f 425/638/66 437/647/66 436/639/39 +f 422/641/67 434/652/67 433/642/37 +f 419/643/68 431/653/68 430/644/41 +f 426/646/69 438/654/69 437/647/66 +f 416/648/70 428/655/70 427/649/40 +f 423/651/71 435/656/71 434/652/67 +f 420/634/64 432/633/64 431/653/68 +f 415/650/40 427/649/40 438/654/69 +f 417/637/65 429/636/65 428/655/70 +f 424/640/39 436/639/39 435/656/71 +f 443/657/68 455/670/68 454/658/41 +f 450/660/69 462/671/69 461/661/66 +f 440/663/70 451/673/70 452/664/40 +f 447/666/71 459/675/71 458/667/67 +f 444/669/64 456/677/64 455/670/68 +f 439/665/40 452/664/40 462/671/69 +f 441/672/65 453/679/65 451/673/70 +f 448/674/39 460/680/39 459/675/71 +f 445/676/37 457/681/37 456/677/64 +f 442/678/41 454/684/41 453/679/65 +f 449/662/66 461/661/66 460/680/39 +f 446/668/67 458/667/67 457/681/37 diff --git a/src/main/resources/assets/hbm/textures/models/machines/solidifier.png b/src/main/resources/assets/hbm/textures/models/machines/solidifier.png new file mode 100644 index 0000000000000000000000000000000000000000..b2afa95c248d0bef1a5bd358a8678afab9345c47 GIT binary patch literal 3223 zcmV;I3~2L-P)-)kJ#7018xQ`%jvElY9iILML7OHe4p54D@O1m(fS*fdQ_ z+z_zxkV2s?1^)wj>3gXA4+WMiTqy!ph)EGhu$wQz}iP#uvAw<|QGKxo*c6Vm( z?ZfPhW`E4gYIbJt-JSCRp`DpCd#|l??woV(xpM)6C@_lX4kU5o#tq)<{L<2r^nEAf zM-|-xf)I%=x&ukf&CQAK0x`x&ZvYP;J`~*rVvLdA0A^-pM0bH0V<-k73XSwn0CItd zJdxf2l3bu`SC@OHNr%NRe!WcT*b#1xA-w@m7Kq3b=?!3*6Jb%Kf2RyR1;z&of{8*Sy#XvPE_UVFdz~YQG)Qj% z1d%7w8^FrSO4m$puX9<@k8e-@|9Bz20T4uqh-KsrV0M;#bs{~K1|0O{a7Q|Gm)t=`q%gVehLT;otfUFn9 zL@B?2jf|jJNN)gH5?20BMXy$?*xcOgk|V~OLdF2SMtK_fi^0 zxD)-g^C29#(#zmtQ=?{U^e( zp%_3u!XtIBQ9G~eg~|e1mK7*^l){gC253~*NN;X#2LJcr&v{>$$^d%B2w6{r#XS;7 zQTf9@e?Q89?dmcQze+}yn4s`afT$QDk2k}OqM{#!%`NZu{QNus1VQtOSuy>Q8Q})- z*6XkGZ@>Mv>-@_vp5aeF{j`7{jR)_)|9;!?<;#}^^+ayQW*&gp#~=AOHa4)avC(#p zXlHBEA+s_iiFk-LU zw%zmm*4B2Ug8CzOp4SU)07SN!rrGm+v)PQjFR6qh&+CZ>;JY}oQuHd$^XJdE{e70bwuACyL;(RQq9THCSfx&wWG-g~Hx{1f2Bi4&r`P-y&_<}kYMsg>h6eSL?>+NDGT zn46o6z5dNN-(=RAH2ltaPiXr^=S{rQw`^PyqNv)XL<11LQFT)LM@zuZA6^0g{AK1Q z06HG#aW5CN-;v)ZT)PB#GuZR<^T9kuo+KJTQX2B{k1&h3-p`4OGD}j(HqZg ziOTc$i>TVAk#&LmC)0cHQ4lPe@C=3qvU%LCr<`I3`DhB#p%eLbX~=B|mT$XnDDN0mkz3GWT7eLFqLQv9hwl=_w!&odt1u$-nTz z3z^IJ5dX8UfV~U=*smh}hwXOG^iZx?CfB7cQ+`21NKLAP16EpbX^xa zJ39c7N*(~Fr=u6PY;SL;lJCm^!lQ7~%y8C-o`@sjsZ=UBcI;SNwk2HuKQ%QK99Jq8 z07xajzP=vo(o9cJr;^u!UhkBD3g=&Wm&d&~(l><9KKm?6Bok;+yxefk`>yfvl|HR} zl1r0DUXR;QA!)M(g4o^N4O|Xje`%zzjP-iGO*Z`dpz?7p&7((;Qpsy?ymoFm_8-_Z zu(!7t`SakxgSN)Dx3}Al*YDg8Eb`EyLjZ7~G)lo;-|0tKZw1aH~q!{2i>}e&S!VtahwCK0Z1bc^q&Pfh`f^Y9+@M@pO5{5 z)zwu1-DS}J@h2aBm`gdd4`qSGvazv&=bvxak#L3w@Y0f;bKJgt8vs(tCrxafJb5ye zybi>#$&@_^m2r_pk*HRyn4O)Ct-bMG9KR?njr`2aOk!h)Ru4MGUojj zd_N(UQmKSyvl$FZj^luH4#rqlFj^{=06;2v-G806>v$uprmEg6t`z{Tf_kITmO4^Y z1qu{6t_wv`Ao_knESz)H>vi0}e?L|(?3c?VuR}pF!UCa@nK78A0bSRjsVWpj3EU8^ zHO1_@E(}8#dw=XdlgOKTy^cnsf#;rkE>gy_EPVg{_ksH%le})*UO?HjZD^VXL)W1w z3K-{THf>B!PQY&3fFE=!`=hU-C=h)=A(m>jio=Hw1BjlLw=4^lN+o!GqD=Ct>$>2a zqcl0`jkKx)RaLAe zb1`h&hG`h6HyU7!LDM{!L)SDf^P+f4%Hd5eh`gT=i)C4D!DZBr?7O?W!JfS`$?LxF z?YJ(~mg`{{25j3#sWb`Kap5?g%fXnJk~AhJf+*V$JVf13h-GSODsq$!e=e8Hfnv%e zuQqKPj^hHY`fS6{QExP$sw#9{-_Nyn@yA^ zC%v30fCtAE7jI0Y?wx%e4_9FeW~|OCB$&JuyYpWa`J5a&dyFyt0R-V zuBoc0aGb+&UFezy4ju%f&88PwYnq07qk(d%1lx9?X=*S!i@cxq2orl;sZ{!^*bUd< z$Rw|_mg@oR@A0a%@+-FOz-Z09GR9yS1{%#KRK=T&VvIrb{W2*-5sx|NZJVUTWnDPu z(#b17x$t9d=sKKM$*7_0!Fo-=3r-nhm@v(tOu=atqnW0GX45NI5Ox0_4*dg!I4-Q6 z#gk7yiQ~tQ2U!?j(frSrWq~mkEN+rXUY{_{mXf(J4X@u?+=aea2UR!0{3{{#P(%J1Qld(!{_002ov JPDHLkV1fh(N+19L literal 0 HcmV?d00001